Module - 5 - Integration and Component-Based Softwrae Testing
Module - 5 - Integration and Component-Based Softwrae Testing
Agenda
1. Integration Testing Strategies
2. Testing Components and assemblies
3. System Testing
4. Acceptance Testing
5. Regression Testing
6. Usability Testing
7. Regression Testing Selection Techniques
8. Test Case prioritization and Selective Execution
9. Levels of Testing and Integration Testing
10. Traditional view of testing levels
11. Alternative life cycle models
12. The SATM System
13. Separating Integration and System Testing
14. A Closer look at the SATM System
15. Decomposition Based
16. Call Graph Based
17. Path Based Integrations
Application
QuickTime™ and a
None decompressor
are needed to see this picture.
Adaptor
Component
Recovery testing
◦ checks system’s ability to recover from failures
Security testing
◦ verifies that system protection mechanism prevents
improper penetration or data alteration
Stress testing
◦ program is checked to see how well it deals with
abnormal resource demands
Performance testing
◦ tests the run-time performance of software 19
Acceptance Testing
Making sure the software works correctly for
intended user in his or her normal work
environment.
Alpha test
◦ version of the complete software is tested by customer
under the supervision of the developer at the developer’s
site
Beta test
◦ version of the complete software is tested by customer at
his or her own site without the developer being present
Selection Techniques:
Following are some of the code based techniques, which are used for this
study
Regression testing activities such as test case selection and test case
prioritization are ordinarily based on the criteria which focused around
code coverage, code modifications and test execution costs. The
approach mainly based on the multiple criteria of code coverage which
performs efficient selection of test case. The method mainly aims to
maximize the coverage size by executing the test cases effectively
Many RTS and RTP techniques consider a single criterion for optimization of
test cases. But, the use of a single criterion severely limits the ability of the
resulting regression test suite to locate faults. Harman et al., induce the need
of multiple criteria and provides a list of criteria with different weights.
The two criteria for selection are code coverage and sum coverage of the
program. Code coverage assumes that there exist test cases that effectively
cover the changed area of code of the software. Sum coverage is a new
approach that maximizes the minimum sum of coverage across all software
elements.
The selected test cases are prioritized using a greedy algorithm to maximize
the minimum sum of coverage across all software elements.
Waterfall Spin-offs
• As software design moves into more detail, the added information. The
functional decomposition tree into a unit calling graph.
• The Unit calling graph is the directed graph in which nodes are program
units and edges runs from node A to node B.
• Both the drawings and the adjacency matrix provide insights to the
tester.
Pairwise Integration
Department of ISE BMS Institute of Technology & Mgmt 52
We can let the mathematics carry us still further by borrowing the notion of a
“neighborhood” from topology. (This isn’t too much of a stretch - graph theory
is a branch of topology.) We (informally) define the neighborhood of a node in
a graph to be the set of nodes that are one edge away from the given node.
In a directed graph, this means all the immediate predecessor nodes and all
the immediate successor nodes (notice that these correspond to the set of
stubs and drivers of the node).
Neighbourhoods Integration
Department of ISE BMS Institute of Technology & Mgmt 53
The eleven neighborhoods for the SATM example (based on the
call graph in Figure 4.2) are given in Table 3.
Path Integration testing is defined when a unit test executes, some path
of source statements is traversed.
Suppose that there is a call to another unit along such a path: at that
point, control is passed from the calling unit to the called unit, where
some other path of source statements is traversed.
MM-Path Graph
The suppression choice works well for unit testing, but it is antithetical to
integration testing.
Our second guideline: atomic system functions are an upper limit for MM-
Paths: we don’t want MMPaths to cross ASF boundaries. This means
that ASFs represent the seam between integration and system testing.
They are the largest item to be tested by integration testing, and the
smallest item for system testing. We can test an ASF at both levels.
Again, the digit entry ASF is a good example.
During system testing, the port input event is a physical key press that is
detected by KeySensor and sent to GetPIN as a string variable. (Notice
that KeySensor performs the physical to logical transition.) GetPIN
determines whether a digit key or the cancel key was pressed, and
responds accordingly.