0% found this document useful (0 votes)
64 views

Debugging Approaches: Debugging Software Under Test by Paul Gichure @gichuremkenya

The document discusses different approaches to debugging software: 1. Brute force method - the most common but least efficient approach where all registers and memory locations are printed and studied to find errors. 2. Back tracking method - popular for small applications, it starts at where a symptom is detected and traces backwards through code to find the cause. It does not scale well to large codebases. 3. Cause elimination - uses induction or deduction to develop a "cause hypothesis" and then uses data to prove or disprove it, or develops a list of all causes and tests to eliminate each one. Initial tests refine data to isolate the bug.

Uploaded by

yonex123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

Debugging Approaches: Debugging Software Under Test by Paul Gichure @gichuremkenya

The document discusses different approaches to debugging software: 1. Brute force method - the most common but least efficient approach where all registers and memory locations are printed and studied to find errors. 2. Back tracking method - popular for small applications, it starts at where a symptom is detected and traces backwards through code to find the cause. It does not scale well to large codebases. 3. Cause elimination - uses induction or deduction to develop a "cause hypothesis" and then uses data to prove or disprove it, or develops a list of all causes and tests to eliminate each one. Initial tests refine data to isolate the bug.

Uploaded by

yonex123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Debugging Approaches

Debugging software under test By; Paul Gichure @GichureMkenya

Introduction
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer system (Software, hardware or a combination), thus making it behave as expected. Process; to start with a problem isolate the source of the problem and then fix it

Debugging Vs Testing
Debugging is carried out by the development team (or developer), after getting the test report from the testing team about defect(s) The purpose of testing is to show that the software works, OR doesnt work, with intention to increase SW quality

Debugging Approaches
Brute Force Method Back Tracking Method Cause Elimination
Each of the above debugging approaches can be supplemented with debugging tools such as debugging compilers, dynamic debugging aids, automatic test case generators, memory dumps and cross reference maps.

1. Brute Force Method


most common and least efficient for isolating the cause of a software error. a printout of all registers and relevant memory locations is obtained and studied. All dumps should be well documented and retained for possible use on subsequent involves using the debugger to step across the code from start to finish until you notice something odd.

2. Back Tracking Method


It is a quite popular approach of debugging which is used effectively in case of small applications. The process starts from the site where a particular symptom gets detected, from there on backward tracing is done across the entire source code till we are able to lay our hands on the site being the cause. Unfortunately, as the number of source lines increases, the number of potential backward paths may become unmanageably large.

3. Cause Elimination
manifested by induction or deduction and introduces the concept of binary partitioning data related to the error occurrence are organized to isolate potential causes. a "cause hypothesis" is devised and the data are used to prove or disprove the hypothesis. Alternatively, a list of all possible causes is developed and tests are conducted to eliminate each. If initial tests indicate that a particular cause hypothesis shows promise, the data are refined in an attempt to isolate the bug.

Thank you

You might also like