objective of system integration testing (SIT)
to build a “working” version of the system
Intra-system testing
Low-level integration testing with the object of combining the modules together to build a cohensive system
Inter-system testing
a high-level testing phase which requires interfacing independently tested systems
pairwise testing
In pairwise integration, only two interconnected systems in an overall system are tested at a time.
purpose if to ensure that two systems under consideration can function together, assuming that the other systems within the overall environment behave as expected
Integration testing Strategies
Decomposition-based
call graph-based
top down
begin with main
use “stubs” to simulate called functions
replace stubs with real functions one by one
Top down Advantages
SIT engineers continually observe system-level functions as the integration process continue
isolation of interface errors become easier because of incremental nature of the top-down integration
test cases designed to test the integration of module M are reused during the regression tests performed after integrating other modules
Top down Disadvantages
may not be possible to observe meaningful system functions because of an absence of lower level modules and presence of stubs
test case selection and stub design become increasingly difficult when stubs lie far away from the top-level module
Bottom Up
begin with leaves
use “drivers” to emulate functions call the leaves
replace “drivers” with real function later
Bottom up Advantages
one designs the behavior of a test driver by simlifying the bevavior of the actual module
if the low-level modules and their combined functions are often invoked by other modules, then it is more useful to test them first so that meaningful effective integration of other modules can be done
Incremental System Integration Approaches
bottom up
big bang
sandwich
Bottom up Disadvantages
discovery of major faults are detected towards the end of the integration process, because major design decisions are embodies in the top-level modules
test enineers cannot observe system-level functions from a partly integrated system. In fact, they cannot observe system-level functions until the top-level test driver is in place
Big Bang
all modules are individually tested
all modules are put together to construct the entire system which is tested as a whole
Sandwich
system integrated using mix of top-down, bottom-up and big band approaches
hierarchical system is viewed as consisting of three layers
bottom up approach to integrate bottom layers
top down approach to integrate top layers
big bang approacj to integrate mddle layer after top and bottom layers have been integrated
Decomposition Based Integration
in each cycle, a few more modules are integrated with an existing and tested build to generated larger builds
number of SIT cycles and the total integration time are determined by some paramters
Number of SIT cycles and the total integration time are determined by which parameters?
Number of modules in system
relative complexity of the modules (cyclomatic complexity) and interfaces between the modules
number of modules needed to be clustered together in each cycle
wheather modules to be integrated have been adequately tested before
Call graph-base testing
like enlarged unit testing
node is component
edge is message transferred between components
focus on interactions amont these components
use actual components rather than stubs or drivers
two strategies
pairwise integration
path-based
Functionality Tests
tests are designed to verify each of the functionalities
GUI testing are desgined to verigy
look and feel the interfact to the users of an application system
different components such as icon, menu bars, dialog boxes, scroll bars, list boxes, and radio button
GUI can be utilized to test the functionality behind the interface, such as:
accurate response to database queries
usefulness of the on-line help, error messages, tutorials, and user manueal
usability characteristic of the GUI is tested, which includes:
Accessibility: Can users enter, navigate, and exit with rel. ease?
Responsiveness: Can users do what they want and when they want in a way that i clear?
Efficiency: Can users do what they want to with minimum number of steps and time?
Comprehensibility: Do users understand the product structure with a minimum amount of effort?
Interoperability Tests
designed to verigy the ability of the system to inter-operate with third party products
Compatibility Tests
veridy that the system works the same way across different platforms, operating systems, data base management systems
Backwards compartibility tests
verify that the current software build flawlessly works with older versions of platform
Robustness Tests
Robustness: how senstivies a system is to erroneous input and changes its operational environment
verify how gracefully the system behaves in error situations and in changed operational environment
Some type of robustness tests
power cycling: executed to ensure, when there is a power glitch in a deployment environment, the system can recover from the glitch to be bakc in normal operation after power is restored
availibility tests: verify that system gracefully and quicklig recovers from hardware and software failures without adversely impacting the operation of the system
Performance Tests
determine performance of actual system compared to expected one
Scalibility tests
verify the system can scale up to its engineering limits while continuing to meet performance requirments
Major causes of lmititations (scability tests)
data storage limitations
network bandwith limitations
speed limit
Stress Tests
system deliberately stressed by pushing it to and beyond its specific limits
ensures that the system can perform acceptably under worst case conditions under an expected peak load
memory leak, buffer allocation, memory carving
Load and Stability Test
typically involves exercising the system with virtual users and measuring the performance to verify whether the system can support the anticipated load
Security Testing
concern cinfidentiality, integrity, availibility, authentification, authorization, nonreoudiation
testing to validate the ability of the software to withdrand attack (resiliency)
Regulatory Tests
final system shipped to the regulatory bodies int hose countries where the prduct is expected to be marketed
regulatory agencies are usually interested in identifying flaws in software that have potential safety consequences
safety requirements are primarly based on their own published standards
Safety assurance
software in isolation cannot do physical damage
software in context of system and an ambedding environment could be vulnerable
sotware safety: hazard
state of a system of a physical situation which when combines with certain environmental conditions, could lead to an accident that results in death, injury, illness, damage or loss in property, or harm to the environment
two basic tasks performed by safety assurance engineering team
provide methods for identifying, tracking, evaluating adn eliminating hazards associated with a system
ensure that safety is embedded into the design and implementation in a timely and cost effective manner, such that the risk created by the user/operator error is minimized
Regression Tests
First test -> add/delete/modify -> Regression test -> add/delete/modify -> Regression test ->…..
verify that no defect has been introduced into the unchanged portion of a system due to changes made elsewhere in the system with maximized likelihood of uncovering new defects and reduced cost of testing
Test revalidation
unchanged code continious to behave correctly
(Regression) test selection
verify changed and impacted code (corrective)
verify new structure and requirements (progressive)
Test minimization
remove redundant test cases
are test cases obsolete?
Test priorization
rank test cases and run them according to available resources
do not remove test cases from the set
Acceptance tests; three major objectives of acceptance testing
confrm that system meets the agreed upon acceptance criteria
identify and resolve discepacies, if there is any
determine the readiness of the system for cut- over to live operations
Regreesion tests: select modification traversing tests
technique that does not discard any test that will traverse a modifies or impacted statement is known as safe regression test selection technique
Regression test firewall approach
firewall separated the classes that depend on the class that is changed from the rest of the classes
based ont the first-level dependencies of modified components
Zuletzt geändertvor 2 Jahren