Integration Testing
Integration Testing
Wei-Tek Tsai
Department of Computer Science and
Engineering
Arizona State University
Tempe, AZ 85287
Introduction
• Integration testing is critical to ensure the
functional correctness of the integrated system.
• Integration testing can be divided into two
categories:
– Incremental integration testing: incremental testing
expands the set of integrated modules prograessively.
– Non-incremental integration testing: by non-
incremental testing, software modules are combined
and tested randomly.
• Integration testing is often the most time
consuming and expensive part of testing.
2
1
E2E Testing
• Why E2E testing?
– Testing is still the primary means for software quality
assurance.
– Integration and functional testing, considered the most
effective techniques, remain weak.
• Most are principles, lack of techniques
• Restricted to particular application type
– Evaluation and measurement are important to both the
end product and the process that produces it.
E2E Testing
• What is E2E testing?
– Verifies that a set of interconnected systems will
perform correctly.
• Individual subsystems and applications may have been tested
and approved, but unobserved faults may still exist.
– Focuses on system functionality exclusively from the
end user’s point of view.
• Different from integration testing, which can focus on any
subset of systems.
• Assumes that module and integration tests have been
performed and approved.
2
E2E Testing
• Benefits of E2E testing
– Extends test objective from fault detection and prediction to
partition and integration test planning with overall system fault
tolerance.
– Independent of development techniques
– Promotes concurrent engineering
• Can be developed early in the life cycle so that test requirements can
be carried out concurrently with the development process
– Enforces test management
• Data management, project management, change management, and
reuse management
– Improves test productivity and effectiveness
E2E Testing
• A structured and disciplined process
– Test planning: to specify key tasks, as well as the
schedules and resources associated with them
– Test design: to develop test specifications, test
scenarios, test cases, and test schedule
– Test execution: to execute test cases and document
results
– Test results analysis: to analyze test coverage, evaluate
testing, and identify defects
– Re-testing and regression testing: to perform additional
testing on the modified system
6
3
E2E Test Planning
• The major concerns of integration test
planning are to identify the scope of the
integrated system including its system
structure and functionality, to identify the
processes techniques, and tools to conduct
the integration test, and to define the result
evaluation criteria before the actual testing.
4
E2E Test Planning
• Test Working Group
The best way to identify the information
needed for an E2E test is to establish
effective communication by forming a
test-working group.
10
5
E2E Test Design
– The system under test can be specified by a
thin-thread tree with conditions attached. The
thin-thread tree construction is an iterative
process consisting of following activities.
• Identify and specify thin threads
• Identify and specify conditions associated with thin
threads
• Organize thin threads and conditions into trees.
• Perform completeness and consistency checking.
11
12
6
E2E Test Design
• E2E test specification
– The core of E2E testing
– Representations of system requirements
• Usage scenarios from the end user’s point of view
• Detailed descriptions of system behaviors from test
perspective: normal inputs, abnormal inputs, regular cases, and
exception handling
– Semi-formal, hierarchically structured
– Attached with data for test generation
– Traced to other software artifacts
– Two parts: thin threads and conditions
13
14
7
E2E Test Design
– Thin-thread template definition
• ID, name, description, inputs/outputs, pre/post conditions,
components covered, status, agents, and risks
– Thin-thread group
• A collection of thin threads with certain commonalities
• Recursive grouping, forming a tree structure
– Thin-thread tree
• Top-down construction, functional decomposition
• Button-up construction, abstraction and composition
– Thin-thread relationships
• Thin threads with independent execution paths
• Thin threads with covered execution paths
• Thin threads with identical execution paths
15
8
E2E Test Design
– Conditions definition template
• ID, name, description, affected thin threads, etc.
– Condition group
• A collection of conditions with certain commonalities
• Recursive grouping, forming a tree structure
– Condition tree
• Top-down decomposition
• Button-up abstraction and composition
– Condition relationships
• Independent conditions
• Mutually exclusive conditions
• Trigger/Trigger-by conditions
• Related conditions
17
9
E2E Test Design
• Risk Analysis of Thin Threads and Conditions
– It’s important to thoroughly test the most essential
functionality of the integrated system, which will
jeopardize the mission or cause significant harm to the
environment should they fail. Ranking mechanisms can
be used to analyze the relative importance of each thin
thread, so that when the resource is stringent, the test
effort can focus on those important threads first.
19
20
10
E2E Test Design
– One way to estimate the failure probability is to use
Assurance-Based Testing, where the failure probability
and its confidence value can be determined using
mathematical models based on the number of test cases
and passed.
– The risk of a thin thread is dynamic, I.e., its value
changes as the project progresses.
– The risk assignment also depends on the goal of testing.
21
11
E2E Test Execution
• E2E Testing in the Simulated Environment
– Testing in the simulated environment includes there
steps
• Develop or acquire the simulation programs
• Set the parameters of the simulation system as required by the
system under test
• Execute the application system
• Select test cases, generate input data to the system external
interfaces, record the execution results
• Repeat the selection and execution of test cases, recovering the
system and simulator states as necessary, until all the
scheduled test cases have been exercised
23
24
12
E2E Test Execution
• Meeting the Exit Criteria
– All of the scheduled test cases have been
exercised
– Testing coverage requirements have been
achieved
– Certain assurance has been gained.
25
26
13
E2E Test Result Analysis
• Defect Identification and Correction
– A defect is a mistake in the code that when
executed may produce incorrect results.
– To Identify the failures, the outputs of E2E test
are compared against the expected outputs in
the test specification.
– Defects identified during the test should be
prioritized and corrected.
27
14
E2E Test Result Analysis
– The REA process is like a spanning tree, where
the terminal nodes are the parts of software that
depend on the previous parts but do not need to
be changed.
– In particular, the REA process is not specific to
any particular programming language or design
paradigm. Specifically, the REA can be sued to
maintain consistency of the thin-thread tree and
condition tree.
29
15
E2E Test Result Analysis
• Regression Testing
– Regression testing, or rerunning the existing test cases
on the modified software, is commonly used whenever
a software program is modified. One key point is that
regression testing only ensures that those parts that are
supposed to remain unchanged.
– Regression testing should be carried out at multiple
levels, first at the module level, then at the integration
level, and finally at the E2E level.
31
32
16
E2E Test Result Analysis
• Develop New Test Cases
– Reevaluate the thin-thread tree and condition tree with
respect to the modified system or requirements;
reorganize, expand, or cut the thin-thread tree as
necessary
– Reevaluate the test cases with respect to the modified
thin thread and condition tree. New test cases may need
to be developed to:
• Test the faulty areads or features
• Test the modified or new features if their requirements are
changed
33
34
17
References
• [1]. W. T. Tsai, X. Bai, R. Paul, W. Shao, and V. Agarwal, “End to End Integration
Test Design”, to appear in IEEE Proc. of COMPSAC, 2001
• http://149.169.25.9/e2e/E2E_testing.html
• [2]. Assistant Secretary of Defense for Command, Control, Communications, and
Intelligence (ASD C3I) Investment and Acquisition Directorate, “End-to-End
Integration Test Guidebook”, Software Engineering Lab, Department of Computer
Science and Engineering, Arizona State University.
• http://149.169.25.9/e2e/E2E_testing.html
• [3]. X. Bai, W. T. Tsai, R. Paul, K. Feng, L. Yu, “Scenario-Based Business
Modeling”, Department of Computer Science and Engineering, Arizona State
University, Tempe, AZ 85287, 2001.
• http://149.169.25.9/e2e/E2E_testing.html
• [4]. X. Bai, W.T. Tsai, R. Paul, T. Shen and B. Li, “Distributed End-to-End Testing
Management”, to appear in IEEE Proc. EDOC, 2001.
http://149.169.25.9/e2e/E2E_testing.html
• [5]. M. Dyer, “The Cleanroom Approach to Quality Software Development”, Wiley,
New York, New York, 1992.
• http://www.cleansoft.com/cleansoft_overview.html
35
References
• [6]. S. Kirani and W. T. Tsai, “Specification and Verification of Object-Oriented
Programs”, technical report, Department of Computer Science and Engineering,
University of Minnesota, Minneapolis, MN 55455, 1994.
http://www.cs.umn.edu/tech_reports/1994/TR_94-
64_Specification_and_Verification_of_Object-Oriented_Programs.html
• [7]. D. C. Kung, P. Hsia, and J. Gao, “Testing Object-Oriented Software”, IEEE
Computer Society Press, LosAlamitos, CA, 1999.
http://lglwww.epfl.ch/Research/OO_Research/toos/
• [8]. G. J. Myers, “The Art of Software Testing”, New York, Wiley Inter-science,
New York, New York, 1979.
• http://swexpert.com/C9/SE.C9.AUG.00.pdf
• [9]. R.S. Pressman, “Software Engineering: A Practitioner’s Approach”, McGraw
Hill, 5th edition, 2000.
• http://www.mhhe.com/engcs/compsci/pressman/index.mhtml
• [10]. W. T. Tsai, Y. Tu, W. Shao and E. Ebner, “Testing Extensible Design Patterns in
Object-Oriented Frameworks through Hierarchical Scenario Templates”, Proc.
COMPSAC, 1999, pp. 166-171.
• http://asusrl.eas.asu.edu/papers/Design-Pattern-Testing.htm
36
18
References
• [11]. W. T. Tsai, V. Agarwal, B. Huang, R. Paul, “Augmenting Sequence Constraints
in Z and its Application to Testing”, Proc. 3rd IEEE Symposium on Application-
Specific Systems and Software Engineering Technology, 2000, pp. 41-48.
http://asusrl.eas.asu.edu/papers/ZTestToSend3.htm
• [12]. W. T. Tsai, R. Paul, W. Shao, S. Rayadurgam, and J. Li, “Assurance-Based Y2K
Testing”, 1999 Proc. 4 th IEEE International Symposium on High-Assurance Systems
Engineering, pp. 27-34.
• http://asusrl.eas.asu.edu/papers/abt-hase.htm
• [13]. W. T. Tsai, R. Mojdehbakhsh and F. Zhu, “Ensuring System and Software
Reliability in Safety -Critical Applications”, Proceedings of IEEE Application-Specific
Systems and Software Engineering Technology, 1998.
• http://asusrl.eas.asu.edu/papers/REA-asset98.htm
• [14]. W. T. Tsai, R. Paul, W. Shao, S. Rayadurgam, and J. Li, “Assurance-Based
Testing”, Proc. of IEEE High-Assurance Software Engineering (HASE), 1999.
• http://asusrl.eas.asu.edu/abt/pracguide.asp
37
19