Lecture 10 Debugging
Lecture 10 Debugging
Debugging
Debugging Process
Psychological Considerations during
Debugging
Debugging Strategies
2
Dr. Asmau Usman Nile University of Nig.
Introduction
Software testing is a process that can be
systematically planned and specified.
Test-case design can be conducted, a
strategy can be defined, and results can be
evaluated against prescribed expectations.
Debugging occurs as a consequence of
successful testing.
That is, when a test case uncovers an error,
debugging is the process that results in the
removal of the error.
The term “debug” general means “get rid of
the bugs”. Sometimes, it also includes
activities related to detecting the presence
of bugs and dealing with them. 10
Dr. Asmau Usman Nile University of Nig.
The Debugging Process
Debugging is not testing but often occurs
as a result of testing.
The debugging process begins with the
execution of a test case.
Results are assessed and a lack of
correspondence between expected and
actual performance is encountered.
In many cases, the noncorresponding
data are a symptom of an underlying
cause as yet hidden.
The debugging process attempts to
match symptom with cause, thereby
leading to error correction.
11
Dr. Asmau Usman Nile University of Nig.
The Debugging Process Cont.,
The debugging process will usually have one of
two outcomes:
(1) the cause will be found and corrected or
(2) the cause will not be found.
In the latter case, the person performing
debugging may suspect a cause, design a test
case to help validate that suspicion, and work
toward error correction in an iterative fashion.
Why is debugging so difficult?
In all likelihood, human psychology has more to
do with an answer than software technology.
14
Dr. Asmau Usman Nile University of Nig.
Backtracking
27
Dr. Asmau Usman Nile University of Nig.
The strategy for testing object-oriented software begins
with tests that exercise the operations within a class and
then moves to thread-based testing for integration.
Threads are sets of classes that respond to an input or
event.
Usebased tests focus on classes that do not collaborate
heavily with other classes.
Web and MobileApps are tested in much the same way
as OO systems.
However, tests are designed to exercise content,
functionality, the interface, navigation, and other
aspects of app performance and security.
Aditionally, MobileApps require specialized testing
approaches that focus on testing the App on multiple
devices and in real world network environments.
Next Topic:
THANKS
Dr. Asmau Usman Nile University of Nig.