Software Testing Strategies
Software Testing Strategies
Software Testing Strategies
The main objective of software testing is to design the tests in such a way that it
systematically finds different types of errors without taking much time and effort so that
less time is required for the development of the software.
The overall strategy for testing software includes:
Strategic Issues
1. Before testing starts, it’s necessary to identify and specify the requirements of
the product in a quantifiable manner.
Different characteristics quality of the software is there such as maintainability that
means the ability to update and modify, the probability that means to find and
estimate any risk, and usability that means how it can easily be used by the customers
or end-users. All these characteristic qualities should be specified in a particular order
to obtain clear test results without any error.
3. For the software, identifying the user’s category and developing a profile for
each user.
Use cases describe the interactions and communication among different classes of
users and the system to achieve the target. So as to identify the actual requirement of
the users and then testing the actual use of the product.
7. Conduct formal technical reviews to evaluate the nature, quality or ability of the
test strategy and test cases.
The formal technical review helps in detecting any unfilled gap in the testing
approach. Hence, it is necessary to evaluate the ability and quality of the test strategy
and test cases by technical reviewers to improve the quality of software.
8. For the testing process, developing a approach for the continuous development.
As a part of a statistical process control approach, a test strategy that is already
measured should be used for software testing to measure and control the quality
during the development of software.
Test strategies for conventional software
Following are the four strategies for conventional software:
1) Unit testing
2) Integration testing
3) Regression testing
4) Smoke testing
1) Unit testing
Unit testing focus on the smallest unit of software design, i.e module or
software component.
Test strategy conducted on each module interface to access the flow of input
and output.
The local data structure is accessible to verify integrity during execution.
Boundary conditions are tested.
In which all error handling paths are tested.
An Independent path is tested.
Following figure shows the unit testing:
Unit test environment
The unit test environment is as shown in following figure:
Stub Driver
Stub does not accept test case data. Driver accepts test case data.
It replace the modules of the program into Pass the data to the tested components
subprograms and are tested by the next driver. and print the returned result.
2) Integration testing
Integration testing is used for the construction of software architecture.
a. Top-down integration
b. Bottom-up integration
In bottom up integration testing the components are combined from the lowest
level in the program structure.
The low level components are merged into clusters which perform a specific
software sub function.
A control program for testing(driver) coordinate test case input and output.
After these steps are tested in cluster.
The driver is removed and clusters are merged by moving upward on the
program structure.
Following figure shows the bottom up integration:
3) Regression testing
In regression testing the software architecture changes every time when a new
module is added as part of integration testing.
4) smoke testing
The developed software component are translated into code and merge to
complete the product.
Debugging Strategies:
1. Study the system for the larger duration in order to understand the system. It
helps debugger to construct different representations of systems to be
debugging depends on the need. Study of the system is also done actively to
find recent changes made to the software.
2. Backwards analysis of the problem which involves tracing the program
backward from the location of failure message in order to identify the region
of faulty code. A detailed study of the region is conducting to find the cause
of defects.
3. Forward analysis of the program involves tracing the program forwards using
breakpoints or print statements at different points in the program and
studying the results. The region where the wrong outputs are obtained is the
region that needs to be focused to find the defect.
4. Using the past experience of the software debug the software with similar
problems in nature. The success of this approach depends on the expertise
of the debugger.
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:
Radare2
WinDbg
Valgrind