2. Software Testing is the process of identifying the accuracy and
quality of the software product and service under test.
Software Testing Plays an Important Role in achieving and
assessing the quality of the Product .
It was born to validate whether the product fulfills the
particular prerequisites, needs, and desires of the client.
At the end of the day, testing executes a framework or
application with a specific end goal to point out bugs,
errors or defects.
3. Validation and Verification are two similar concepts
related to software testing .
The responsibility of testing is to point out the issues of
bugs and give Dev (Developers) a clue to help
them fix it right following the requirements.
4. Software Testing is Important because if there are any bugs
or errors in the software, it can be identified early and
can be solved before delivery of the software product
Properly tested software product ensures reliability, security and
high performance which further results in time saving, cost
effectiveness and customer satisfaction.
Testing is important because software bugs could be expensive or
Software bugs can potentially cause monetary and human
loss, and history is full of such examples.
5. Software Testing is a method to check whether the actual
software product matches expected requirements and to
ensure that software product is Defect free.
According to ANSI/IEEE 1059 standard – A process of
analyzing a software item to detect the differences between
existing and required conditions (i.e., defects) and to
evaluate the features of the software item.
6. James Bach defines the Software testability as how easily
computerprogrma can be tested .
Verification: Is the software being developed in the right
Validation: Is the right software being developed?
Software testing is performed either manually or by using
automated tools to make sure that the software is functioning
in accordance with the user requirements.
10. Characteristics of testable software .
1. Operability “The better it works the more efficiently it can be
The better the software works better way it can be tested .
Bugs defect make an analysis and reporting in overhead in the
testing procedure .if a system is designed and implemented
with quality of work then then relatively very few bugs will
block the execution of the test .
2. Observeability “What you see is what you test ”
The degree to which it is possible to observe the test result
it indicates how easy it is to observe the program behaviour in
terms of its output , effects on the environment and other
software hardware component .
11. 3. Controllability “The better we can control the software , the
testing can be more automated and optimized ”
Controllability defines the degree to which It is possible to
control the state of COMPONENT UNDER TEST (CUT ).
All possible output can be generated through and all code is
executable through some input combinations in software testing.
4. Decomposability “By controlling the scope of testing problems can
be isolated quickly and smarter testing can be performed”
Modular design provide good testability . By testing the individual
modules independently , this can be located and corrected
12. 5. Simplicity “The lesser there is to test, the more quickly we can
test it .”
The program must exhibit functional simplicity , structural
simplicity and code simplicity .
6. Stability “The fewer the changes , the fewer disruption to
7.Understandibility “ The more information we have , the
smarter we will test ”
Debugging is the process of detecting and removing of
existing and potential errors (also called as ‘bugs’) in a
software code that can cause it to behave unexpectedly or
To prevent incorrect operation
of a software or system,
debugging is used to find and
resolve bugs or defects.
16. Debugging Process:
Steps involved in debugging are:
Problem identification and report preparation.
Assigning the report to software engineer to the defect to
verify that it is genuine.
Defect Analysis using modeling, documentations, finding
and testing candidate flaws, etc.
Defect Resolution by making required changes to the
Validation of corrections.
17. Here’s the debugging process:
1. Reproduce the problem.
2. Describe the bug. Try to get as much input from the user
to get the exact reason.
3. Capture the program snapshot when the bug appears.
Try to get all the variable values and states of the program
at that time.
4. Analyse the snapshot based on the state and action.
Based on that try to find the cause of the bug.
5. Fix the existing bug, but also check that any new bug
does not occur.
18. Debugging Tools:
Debugging tool is a computer program that is used to test
and debug other programs.
A lot of public domain software like gdb and dbx are
available for debugging.
They offer console-based command line interfaces. Examples
of automated debugging tools include code based tracers,
profilers, interpreters, etc.
Some of the widely used debuggers are:
1 . Radare2
2 . WinDbg
3 . Valgrind
20. 1. Bruteforce
This is the foremost common technique of debugging
however is that the least economical method. during this
approach, the program is loaded with print statements to
print the intermediate values with the hope that a number of
the written values can facilitate to spot the statement in error.
This involves the developer manually searching through stack-
traces, memory-dumps, log files, and so on, for traces of the
This approach becomes a lot of systematic with the
utilisation of a symbolic program (also known as a source code
debugger), as a result of values of various variables will be
simply checked and breakpoints and watch-points can be
easily set to check the values of variables effortlessly.
21. 2. Backtracking:
This is additionally a reasonably common approach. during this
approach, starting from the statement at which an error symptom
has been discovered, the source code is derived backward till the
error is discovered.
Sadly, because the variety of supply lines to be derived back will
increase, the quantity of potential backward methods will
increase and should become unimaginably large so limiting the
utilization of this approach.
22. 3. Cause Elimination Method:
In this approach, a listing of causes that may presumably have
contributed to the error symptom is developed and tests are
conducted to eliminate every error. A connected technique of
identification of the error from the error symptom is that the
package fault tree analysis.