Page 57 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 57
Software Testing and Quality Assurance
Now, let us discuss the three strategies of integration testing.
1. Bottom Up Testing: The bottom up testing is conducted from the sub module to the main
module. In the absence of the main module (when the module is not developed), a temporary
program known as ‘Drivers’ (Drivers are the written code that are used to execute the modules
that are being tested. These drivers act as real modules by sending test-case data to the modules,
reading the results and verifying their correctness) to simulate the main module. This approach
helps in creating easy test conditions and easy observation of test results.
2. Top Down Testing: The top down testing is conducted from the main module to the sub module.
In the absence of the sub module (when the module is not developed), a temporary module
known as ‘Stub’ (Stubs are small pieces of code which act as interface modules by feeding “fake”
data) is used to simulate the sub module. This type of testing boosts the morale of the program
by eliminating the flaws. The top down method of testing relates to testing all the higher-level
modules by using stubs as low-level interface modules. This type of testing is found to be very
useful, as we can quickly run through the numerous test values and also validate the operations
of a module.
3. Umbrella Approach Testing: The umbrella approach testing is a combination of both, the bottom
up and top down testing approaches. This method focuses on testing the modules which have
high degree of user interaction. The input modules are integrated in the bottom up approach and
the output modules are integrated in the top down approach. It is considered to be a beneficial
approach for the early release of GUI (Graphical User Interface) based applications used for
enhancing the functionality.
The umbrella approach of testing ensures:
(a) Early release of limited functionality.
(b) Reduction in the need for stubs and drivers.
The only disadvantage of umbrella approach is that it leads to more regression testing
as it follows a systematic approach of testing.
4.2.3 Data Coverage
Data coverage focuses on data which is tracked completely through the software. It can relate to the
values stored in variables, constants, arrays, and data structures. It includes the keyboard and mouse
input, files, screen input and output and those that are sent to modems, networks, and so on.
In the data coverage method, the code is divided into data and states, relating to program flow which is
similar to black box testing. Hence, it becomes easier to map the white and the black box test cases.
Data coverage deals with the aspect of generating test data sets which cover all the required tests before
the software component is certified as reliable and shipped to the customer.
The statement coverage testing was found to be the cheapest method of testing as it
produced the maximal effect for the smallest number of tests applied, but this was an
ineffective technique as the number of errors uncovered were very less.
The types of data coverage testing are:
1. Data Flow: Data flow involves tracking the data through the software. During the unit testing
phase, tracking is done only in the small modules, as tracking all the modules in a system
becomes a tedious process. When a function is tested at the low level, a debugger along with a
watch variable is used to view the program during execution. However, in the white box testing,
one cannot view the program execution, but can only view the value of the variable at the
beginning and at the end. The dynamic white box testing gives the provision of checking the
50 LOVELY PROFESSIONAL UNIVERSITY