Software Testing Strategies and Methods
Software Testing Strategies and Methods
Software Testing
Strategies and
Methods
CONTENTS
I. Software Testing Fundamentals
1. Definition of Software Testing
II. Characteristics of Testing Strategies
III. Software Verification and Validation (V&V)
IV. Testing Strategies
1. Unit Testing
2. Integration Testing
V. Alpha and Beta Testing ( Concept and differences)
VI. System Testing
1. Concept of System Testing
VII. Concept of White-box and Black-Box Testing
VIII. Debugging
1. Concept and need of Debugging
2. Characteristics of bugs
IX. Debugging Strategies
1. Concept of Brute Force, Back Tracking, Induction, Deduction
Anuradha Bhatia
Software Engineering
Software Testing Myths and Facts: Just as every field has its myths, so does the
field of Software Testing. Software testing myths have arisen primarily due to the
following:
i. Lack of authoritative facts.
ii. Evolving nature of the industry.
iii. General flaws in human logic.
Some of the myths are explained below, along with their related facts:
Anuradha Bhatia
Software Engineering
To ensure that the product is being built To ensure that the product actually
according to the requirements and meets the user’s needs, and that the
design specifications. In other words, to specifications were correct in the first
ensure that work products meet their place. In other words, to demonstrate
Objective specified requirements. that the product fulfills its intended use
Anuradha Bhatia
Software Engineering
Question Are we building the product right? Are we building the right product?
Reviews
Walkthroughs
Activities Inspections Testing
Anuradha Bhatia
Software Engineering
Advantages
i. Unit testing increases confidence in changing/maintaining code.
ii. If good unit tests are written and if they are run every time any code is
changed, the likelihood of any defects due to the change being promptly
caught is very high.
iii. If unit testing is not in place, the most one can do is hope for the best and
wait till the test results at higher levels of testing are out.
iv. If codes are already made less interdependent to make unit testing
possible, the unintended impact of changes to any code is less.
v. Codes are more reusable. In order to make unit testing possible, codes
need to be modular. This means that codes are easier to reuse.
vi. The cost of fixing a defect detected during unit testing is lesser in
comparison to that of defects detected at higher levels.
vii. Compare the cost (time, effort, destruction, humiliation) of a defect
detected during acceptance testing or say when the software is live.
viii. Debugging is easy. When a test fails, only the latest changes need to be
debugged. With testing at higher levels, changes made over the span of
several days/weeks/months need to be debugged.
2. Integration Testing
(Question: Explain integration testing with diagram and give its
advantages and disadvantages- 6 Marks)
i. Integration Testing is a level of the software testing process where
individual units are combined and tested as a group.
Anuradha Bhatia
Software Engineering
ii. The purpose of this level of testing is to expose faults in the interaction
between integrated units.
iii. Test drivers and test stubs are used to assist in Integration Testing.
2. Beta testing
(Question: Explain beta testing. – 4 Marks)
i. It is also known as field testing.
ii. It takes place at customer’s site.
iii. It sends the system to users who install it and use it under real-world
working conditions.
Anuradha Bhatia
Software Engineering
iv. A beta test is the second phase of software testing in which a sampling of
the intended audience tries the product out.
v. Beta testing can be considered “pre-release testing.
vi. The goal of beta testing is to place your application in the hands of real
users outside of your own engineering team to discover any flaws or issues
from the user’s perspective that you would not want to have in your final,
released version of the application.
vii. Closed beta versions are released to a select group of individuals for a user
test and are invitation only, while
viii. Open betas are from a larger group to the general public and anyone
interested.
ix. The testers report any bugs that they find, and sometimes suggest
additional features they think should be available in the final version.
Anuradha Bhatia
Software Engineering
iii. This method is named so because the software program, in the eyes of the
tester, is like a black box; inside which one cannot see.
iv. Black Box Testing is contrasted with White Box Testing. View Differences
between Black Box Testing and White Box Testing.
v. This method of attempts to find errors in the following categories:
Incorrect or missing functions
Interface errors
Errors in data structures or external database access
Behavior or performance errors
Initialization and termination errors
Anuradha Bhatia
Software Engineering
ii. Tester need not know programming languages or how the software has
been implemented
iii. Tests can be conducted by a body independent from the developers,
allowing for an objective perspective and the avoidance of developer-bias
iv. Test cases can be designed as soon as the specifications are complete
Anuradha Bhatia
Software Engineering
Programming
Knowledge Not Required Required
Implementation
Knowledge Not Required Required
VIII. Debugging
1. Concept and need of Debugging
(Question: Describe the concept and need of debugging in software testing- 6 Marks)
i. Debugging is the process of locating and fixing or bypassing bugs (errors)
in computer program code or the engineering of a hardware device.
Anuradha Bhatia
Software Engineering
2. Characteristics of bugs
(Question: Explain the various characteristics of bugs – 4 Marks)
i. A defect is an error or a bug, in the application which is created.
ii. A programmer while designing and building the software can make
mistakes or error.
iii. These mistakes or errors mean that there are flaws in the software. These
are called defects.
iv. When actual result deviates from the expected result while testing a
software application or product then it results into a defect.
Anuradha Bhatia
Software Engineering
2. Back Tracking
i. It is a quite popular approach of debugging which is used effectively in case
of small applications.
ii. 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.
iii. As the number of source lines increases, the number of potential backward
paths may become unmanageably large.
Anuradha Bhatia
Software Engineering
Anuradha Bhatia