SlideShare ist ein Scribd-Unternehmen logo
1 von 181
Downloaden Sie, um offline zu lesen
Sampling, Re-use and Incremental Testing in
Software Product Lines
Myra B. Cohen
myra@cse.unl.edu
University of Nebraska-Lincoln
Agenda
SPL System Testing: the combinatorics
SPL Integration Testing
Summary
Continuous Test Suite Augmentation
Introduction to Software Product Lines
Family-Based Approach to
Development
Nokia
Mobile phones
Boeing BoldStroke Future Combat Systems
Intuit
Philips Philips
Software Product Lines
•  A software product line (SPL) is a set of programs that share a
significant common (managed) set of features satisfying a
market segment or mission developed from a common set of
core assets in a prescribed way
Product 1
Commonality
Variability
..
.Product 2 Product n
Core Assets
Feature Oriented Domain
Analysis
•  SEI FODA Project in Late 1980s
•  Identified features (variability) as the key to software
product lines
•  Identified the need for artifact-independent modeling of the
features in an SPL
• 
•  Introduced the feature diagram which led to what we know
today a the feature model
Feature Models
•  Representation of the features and
dependencies/constraints in an SPL
•  Defines what is (and is not) allowable in
the SPL
•  Can be written as a logic equation and can
use SAT solvers to reason about model
•  Several different notations for feature
models
Software Product Line
Engineering
•  Consists of two parts:
– Domain engineering
•  Determining what the re-usable components/
architecture is for the SPL
•  Defines the commonality and variability of the
SPL
– Application engineering
•  Deriving products from the platform created in
the domain engineering step
•  Makes use of re-use and exploits variability/
commonality
Domain Testing
•  Validate and verify reusable
components
•  No running application exists at this
time - only components
•  This differs from system/application
testing where the entire system is tested
as a unit
What is Variability?
Commonality
The features shared by a set of systems
Variability
The features that differ between some
pair of systems
Examples of Variability
•  Electric bulb can be lit or unlit
•  Software applications support different
languages
•  A triple band mobile phone supports
three different network standards
•  Can load Choco vs. MiniSat to solve
constraints
Mechanisms for
Implementing variability
–  Compile flags
–  Properties files
–  Command-line arguments
–  Inheritance
–  Interface definition (and information hiding)
–  Design patterns (e.g., strategy)
–  Connectors (e.g., in architecture)
Mobile Phone SPL
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Mobile Phone SPL
Display
Type
VP
Testing a Product Line
•  SPL engineering decreases time to market
•  With shorter life cycles, the percentage of
time spent in testing has increased – the new
bottleneck
•  Much of the current work on testing SPLs
focuses on testing individual instances and
reuse of specific test cases
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V V
Camera
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Validating at the Unit Level
Display
Type
VP
V V V
16MC 8MC BW
Validating at the Unit Level
Display
Type
VP
V
16MC
V V V
16MC 8MC BW
Validating at the Unit Level
Display
Type
VP
V
16MC
V
8MC
V V V
16MC 8MC BW
Validating at the Unit Level
Display
Type
VP
V
16MC
V
8MC
V
BW
Focus is on reuse of artifacts during testing
Views testing from the feature level rather
than the system level
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
System Level Testing
Display
Type
VP
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
System Level Testing
Viewer
Type
VP
Test Case: Open email in HTML format
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
System Level Testing
Display
Type
VP
Test Case: Open email in HTML format
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Feature Interactions
Viewer
Type
VP
Failure: caused by interaction of data passed
between 16MC display and textual viewer
NASA Mars Rover: Spirit
Real Interaction Failure
•  NASA Detected failed communications on
two independent channels
•  Determined that the rover was continually
re-booting – risked running out of energy
and/or overheating
•  Fault caused by assumptions made
between two different features: (NASA component
expected third party file system to deallocate memory)
–  when one feature was removed the reboots
stopped
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Possible Interactions
Display
Type
VP
Fault Map of Configurations
V4
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14
C0
C10
C20
C30
C40
C50
C60
F1 F2 F3 F4 F5
C0
C10
C20
C30
C40
C50
C60
Faults
C
o
n
f
I
g
u
r
a
t
I
o
n
s
V V V
16MC 8MC BW
V V
GV TV
V V
2MP 1MP
Viewer
Type
VP
Camera
Type
VP
Phone
VP
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp requires_v_vp
Testing the Interaction Space
Viewer
Type
VP
Number of possible interactions grows
exponentially with number of variation points
Some Other Approaches to
SPL Testing
•  Extended use cases for variability [Bertolino et al., SPFE 2003]
•  Integration testing a SPL based on UML activity
diagrams [Reis et al., FASE 2007]
•  Generate test cases incrementally for a SPL
[Uzuncaova et al., ISSRE 2008]
•  Applying test cases for a subset of products only
[Kim et al., ASE 2010]
•  Applying monitoring properties for a subset of
products only [Kim et al., RV 2010]
Some SPL Resources
•  http://splot-research.org/
•  http://www.isa.us.es/fama/
•  http://sir.unl.edu
Agenda
SPL System Testing: the combinatorics
SPL Integration Testing
Summary
Continuous Test Suite Augmentation
Introduction to Software Product Lines
A Combinatorial Problem
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
A Combinatorial Problem
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
3
A Combinatorial Problem
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
3 x 3
A Combinatorial Problem
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
• 33x22=108 feasible SPL instances
3 x 3 x 3 x 2 x 2
A Combinatorial Problem
• 33x22=108 feasible SPL instances
• 10 features each with 5 values = 510 or
9,765,625 possible instances
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
A Combinatorial Problem
• 33x22=108 feasible SPL instances
• 10 features each with 5 values = 510 or
9,765,625 possible instances
• 4 hours to run test suite = approximately 4,459 years
to test
GCC optimizer: configuration space ~1061
Display Email Viewer Camera Video
Camera
Video
Ringtones
16 Million Colors Graphical 2 Megapixels Yes Yes
8 Million Colors Text 1 Megapixel No No
Black and White None None
Combinatorial Interaction Testing
(CIT)
•  Test all pairs or t-way combinations of
feature-values, where t is a defined
strength of testing
•  Uses a mathematical structure called a
covering array
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
2-way CIT
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
2-way CIT
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
2-way CIT
Combinatorial Interaction Testing
(CIT)
•  Based on statistical design of experiments (DOE)
–  Manufacturing
–  Drug test interactions
–  Chemical interactions
•  For software testing
–  Mandl – compiler testing
–  Brownlie, Prowse, Phadke – OATS system
–  D. Cohen, Dalal, Fredman, Patton, Parelius –
AETG
–  Williams, Probert – network node interfaces
–  Yilmaz, Cohen, Porter- ACE/TAO
Empirical Results on CIT
for System Inputs
•  CIT has been well studied on testing input
parameters for programs
•  [Brownlie, Prowse, Phadke 92], [Burr,Young
98],[Burroughs, Jain, Erickson 94] [Cohen,
Dalal, Fredman, Patton 97], [Dalal, Jain,
Karunanithi, Leaton, Lott 98], [Dunietz, Erlich,
Szablak, Mallows, Iannino 97], [Mandl 85]
$ sort -m -c input.txt
CIT for Configurable
Systems
•  Some studies on configurable
systems
•  [Kuhn, Wallace,Gallo 04]
–  Medical devices, web browsers, data mgt, http server
•  [Yilmaz, Cohen, Porter 04,06]
–  Ace/TAO Corba middleware
•  [Qu, Cohen, Rothermel 08]
CIT vs. Default
Configuration of vim in SIRFaultDetection(%)
020406080100
v2 v3 v4 v5 v6 v7
Version default configuration
How do we Generate the
Samples?
•  Greedy approaches
– AETG, IPOG
– Search-based (simulated annealing, GAs)
•  Use of constraint solvers
Meta-Heuristic Search
∑ -Set of feasible solutions
0 1 1 1 1
1 0 1 0 0
1 0 1 0 0
1 0 1 1 1
0 0 0 1 1
1 1 0 1 0
0 1 1 1 1
1 0 1 0 0
0 0 1 0 0
1 0 1 1 1
0 0 0 0 1
1 1 0 1 0
?
cost(S)
Randomly move through
space
S1 S2
S3 ….. Si
Problems with Approach
•  May get stuck in local optima
Meta-heuristic Algorithms
•  Provide mechanisms to escape local
optima
•  Sometimes the algorithm can accept a
worse choice in the hope we will find a
better route to a good solution
Examples
•  Genetic Algorithms
•  Simulated Annealing
•  Tabu Search
Search Based Software Engineering
•  Meant to simulate the coolng of metal
•  Physical annealing is a process of slowly cooling
a metal, in baths of decreasing temperatures.
•  At each stage the metal molecules are allowed
to come to an equilibrium. Then the bath is
lowered to the next temperature.
•  If the initial temperature is not high enough or if
the cooling is done too quickly the metal will be
brittle.
Simulated Annealing
•  The basic strategy is the same as a hill climb,
but the meta-heuristic creates a gentle decrease
in the probability for making a bad move.
•  At the start of our hill climb we often make a lot
of bad moves.
•  By the time we are close to an optimal solution
we are almost in a pure hill climb (the
probability drops to almost zero)
Simulated Annealing (cont.)
•  Start with a solution S
•  Select a new solution S’ that is a neighbor of S
•  If S’-S ≤ 0 then S’ is accepted
•  Otherwise
–  Accept S’ with a probability
Where T = temperature and B is the Boltzmann
constant (this is a distribution which we won’t
actually use for simulating the process)
Simulated Annealing
€
e
s−s'
kBT
Simulated Annealing
0 1 1 1 1
1 0 1 0 0
1 0 1 0 0
1 0 1 1 1
0 0 0 1 1
1 1 0 1 0
0 1 1 1 1
1 0 1 0 0
0 0 1 0 0
1 0 1 1 1
0 0 0 0 1
1 1 0 1 0
?
Probability of bad choice depends on cooling
schedule
Lower bound L
Binary search for “best” solution
Upper bound U
(L+U)/2
Finding “N”
The Real System
Constraints on Valid Configurations:
__________________________________________________________________________________________________	

(1) Graphical email viewer requires color display	

(2) 2 Megapixel camera requires a color display 	

(3) Graphical email viewer not supported with 2 Megapixel camera	

(4) 8 Million color display does not support a 2 Megapixel camera	

(5) Video camera requires a camera and a color display	

(6) Video ringtones cannot occur with No video camera	

(7) The combination of 16 Million colors, Text and 	

2 Megapixel camera will not be supported
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
Constraints
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
Constraints
“Video Ringtones cannot occur
without video camera
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
Constraints
“Video Ringtones cannot occur
without video camera
Display Email Viewer Camera Video
Camera
Video
Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
Constraints:	

(1) Graphical email viewer requires color display	

(2) 2 Megapixel Camera requires color display	

(3) Graphical email viewer not supported with the 2 Megapixel 	

camera	

Decrease Sample Size
Display Email Viewer Camera Video
Camera
Video
Ringtones
1 16 Million Colors None 2 Megapixels No No
2 16 Million Colors Graphical 1 Megapixel No No
3 8 Million Colors None 1 Megapixel Yes Yes
4 16 Million Colors Graphical None Yes Yes
5 16 Million Colors Text 1 Megapixel Yes No
6 Black and White None 1 Megapixel Yes Yes
7 8 Million Colors Graphical 2 Megapixels Yes Yes
8 Black and White Text 2 Megapixels No Yes
9 8 Million Colors Text None No No
10 Black and White None None No No
Constraints:
_____________________________________________________________________	

(1) Graphical email viewer requires color display	

	

Increase Sample Size
Display Email Viewer Camera Video
Camera
Video
Ringtones
1 16 Million Colors None 2 Megapixels No No
2 16 Million Colors Graphical 1 Megapixel No No
3 8 Million Colors None 1 Megapixel Yes Yes
4 16 Million Colors Graphical None Yes Yes
5 16 Million Colors Text 1 Megapixel Yes No
6 Black and White None 1 Megapixel Yes Yes
7 8 Million Colors Graphical 2 Megapixels Yes Yes
8 Black and White Text 2 Megapixels No Yes
9 8 Million Colors Text None No No
10 Black and White None None No No
Constraints:
_____________________________________________________________________	

(1) Graphical email viewer requires color display	

	

Increase Sample Size
Display Email Viewer Camera Video
Camera
Video
Ringtones
1 16 Million Colors None 2 Megapixels No No
2 16 Million Colors Graphical 1 Megapixel No No
3 8 Million Colors None 1 Megapixel Yes Yes
4 16 Million Colors Graphical None Yes Yes
5 16 Million Colors Text 1 Megapixel Yes No
6 Black and White None 1 Megapixel Yes Yes
7 8 Million Colors Graphical 2 Megapixels Yes Yes
8 Black and White Text 2 Megapixels No Yes
9 8 Million Colors Text None No No
10 Black and White None None No No
Constraints:
_____________________________________________________________________	

(1) Graphical email viewer requires color display	

	

Increase Sample Size
Display Email Viewer Camera Video
Camera
Video
Ringtones
1 16 Million Colors None 2 Megapixels No No
2 16 Million Colors Graphical 1 Megapixel No No
3 8 Million Colors None 1 Megapixel Yes Yes
4 16 Million Colors Graphical None Yes Yes
5 16 Million Colors Text 1 Megapixel Yes No
6 Black and White None 1 Megapixel Yes Yes
7 8 Million Colors Graphical 2 Megapixels Yes Yes
8 Black and White Text 2 Megapixels No Yes
9 8 Million Colors Text None No No
10 Black and White None None No No
Constraints:
_____________________________________________________________________	

(1) Graphical email viewer requires color display	

	

Increase Sample Size
Constrained CIT Approach
Initialization
Determine implicit
forbidden constraints
CIT Algorithm
Greedy
Meta- heuristic search
Constraint Checking
Check partial or full configurations
Greedy Worked Well
•  Extended both greedy and meta-
heuristic search algorithms to find
constrained CIT samples
•  Used off the shelf SAT solver
•  Mine information learned during
Boolean propagation to improve
performance of greedy algorithm
M.B. Cohen, M.B. Dwyer and J. Shi, Constructing interaction test suites for
highly-configurable systems in the presence of constraints: a greedy approach,
IEEE Transactions on Software Engineering , 34(5), 2008, pp. 633-650.
Limitations
•  Greedy algorithms tend to:
•  Finish quickly
•  Handle constraints well
•  Meta-heuristic algorithms tend to:
•  Find smaller samples
•  Handle constraints poorly
•  Software product lines may have long test times per
instance and many dependencies:
•  Want a meta-heuristic search algorithm that builds small
samples quickly
Reformulated Simulated
Annealing CIT Algorithm
•  Modified:
– Neighborhood of search
•  Narrows as search progresses
– Global strategy to find minimal size of array
– A set of minor modifications
•  B.J. Garvin, M.B. Cohen, and M.B. Dwyer, Evaluating Improvements to a
Meta-Heuristic Search for Constrained Interaction Testing, Empirical Software
Engineering (EMSE), 16(1), 2011, pp.61-102.
•  CASA tool: http://cse.unl.edu/~citportal/tools/casa/
Major Modifications
•  Original implementation uses two
phases:
(1) Finding minimal size of sample
(2) Finding a valid sample within that size
•  Modifications:
•  New search space (neighborhood)
•  Improved method for finding size (global)
Reduces infeasible search paths (dotted lines)
Original Search Space may lead to
many infeasible solutions
New Search Space provides a more direct
path to feasible solutions
Modified Search Space
(CASA)1
1. Available at: http://www.cse.unl.edu/citportal/tools/casa/
Reduces infeasible search paths (dotted lines)
Original Search Space may lead to
many infeasible solutions
New Search Space provides a more direct
path to feasible solutions
Modified Search Space
(CASA)
Reduces infeasible search paths (dotted lines)
Original Search Space may lead to
many infeasible solutions
New Search Space provides a more direct
path to feasible solutions
Modified Search Space
(CASA)
Modified Global Strategy
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Case Studies (t=2)
Average Size Average Time Break
Even Point
Greedy Old SA New SA Greedy Old SA New SA Greedy vs.
New SA
SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1
SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9
GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7
Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2
Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
Going Beyond CIT
•  CIT is a system testing technique:
– Need to instantiate complete products
– Many interactions are low order
•  CIT is black box:
– Tests may or may not actually trigger
interactions between features
– No consideration of data/control flow
directions
Directed vs. Undirected
Interactions
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
Directed vs. Undirected
Interactions
Display Email Viewer Camera Video V. Ringtones
1 16 Million Colors None 1 Megapixel Yes Yes
2 8 Million Colors Text None No No
3 16 Million Colors Text 2 Megapixels No Yes
4 Black and White None None No Yes
5 8 Million Colors None 2 Megapixels Yes No
6 16 Million Colors Graphical None Yes No
7 Black and White Text 1 Megapixel Yes No
8 8 Million Colors Graphical 1 Megapixel No Yes
9 Black and White Graphical 2 Megapixels Yes Yes
2 ways to test this interaction:
8 million colors à Text
Text à 8 million colors
Directed vs. Undirected
Interactions
Directed vs. Undirected
Interactions
Directed vs. Undirected
Interactions
Agenda
SPL System Testing: the combinatorics
SPL Integration Testing
Summary
Continuous Test Suite Augmentation
Introduction to Software Product Lines
Our Idea
•  Test at the integration level:
•  We can test partial products
•  Incrementally increase strength of interactions
•  Re-use results as we test
•  Reduce the interaction space:
•  Identify only feasible interactions
•  Integrate features using the analysis of feasible
interactions
•  Generate tests to exercise these interactions
(future)
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
J. Shi, Myra B. Cohen and Matthew B. Dwyer, Integration Testing of Software
Product Lines Using Compositional Symbolic Execution, International Conference on
Fundamental Approaches to Software Engineering (FASE), March 2012, pp. 270-284.
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
CFG
PDG
Code: Program Dependency
and Control Flow Graph
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
Interaction trees
CFG
PDG
Feature Model: Defines possible
interaction space
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
CFG
PDG
Feature dependency graph
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
Interaction trees
CFG
PDG
Interaction Trees
Approach
s() {!
…!
v();!
if (c) {!
…!
}!
w();!
…!
}!
f1(){!
…!
}!
f2(){!
…!
}!
f3() !
f4() !
Interaction trees
CFG
PDG
Symbolic Exeuction:
Report Faults/Generate Tests
Interaction Trees
f1
f3 f4
f2
2-way interaction trees
FDG
Interaction Trees
f1
f3 f4
f2
2-way interaction trees
f1 f3
FDG
Interaction Trees
f1
f3 f4
f2
2-way interaction trees
f1 f3
f3 f4
FDG
Interaction Trees
f1
f3 f4
f2
2-way interaction trees
f1 f3
f3 f4
f2 f4
FDG
Interaction Trees
f1
f3 f4
f2
2-way interaction trees 3-way interaction trees
f1 f3
f3 f4
f2 f4
f1 f3 f4
FDG
Interaction Trees
f1
f3 f4
f2
2-way interaction trees 3-way interaction trees
f1 f3
f3 f4
f2 f4
f1 f3 f4
FDG
f2
f4
f3
Interaction Trees
2-way interaction trees
f1 f3 f3 f4 f2 f4
Interaction Trees
2-way interaction trees
3-way interaction trees
f1 f3 f3 f4 f2 f4
f1 f3 f4 f2
f4
f3
Hierarchical Composition
Testing Method
•  Use bounded symbolic execution
•  Obtain summaries from individual
features
•  Use interaction trees to guide
composition of all t-feature summaries
Symbolic Summaries
•  We have three outcomes:
1.  Complete execution of a path (passing
behavior)
2.  Exception (failing behavior)
–  may or may not be feasible to reach in full system
3.  Depth bound is reach (unknown behavior)
In this work we only accumulate type 1.
Results of (Composed)
Summaries
•  Constraints can be collected for each region to
perform test generation (in progress)
sum(f1,f2,f4) = {(f1.x0,f4.ret=f1.x+1), …)
complete
exception
Time out
complete
exception
Time out
Feature 1 Feature 2
Compositional SE
(A0 ∧ B 0, return=A)
Compositional SE
Compositional SE
Case Study
We performed a case study on 2 software
product lines to answer these questions:
•  RQ1: What is the reduction from our dependency
analysis on the number of interactions that should be
tested in an SPL?
•  RQ2: What is the difference in time between using
our compositional symbolic technique versus a
traditional directed technique?
Applications Used
SCARI: Software Defined Radio Reference Model
Applications Used
GPL: Graph Product Line
Applications
SCARI GPL
Method
RQ1:
•  Compared number of (directed/undirected)
interactions
RQ2:
•  Compared directed SE vs. incremental
compositional SE
Method
•  Tools:
– Adapted the IFA in Soot
– Direct SE – use Java PathFinder
– Compositional approach – built a composer
•  Depth:
– 20*t
– Explicit for Direct SE
– Implicit for compositional
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject K UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
532 UI
63840 DI
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
532 UI
63840 DI
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
144 UI
144 DI
532 UI
63840 DI
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
20 UI
525 DI
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
55 – 99.9%
Interaction Reduction
Subject t UI DI Feas
UI
Feas
DI
UI
Red
DI
Red
SCARI 2 188 376 85 85 54.8% 77.4%
3 532 3192 92 92 82.7% 97.1%
4 532 12768 162 162 69.5% 98.7%
5 532 63840 144 144 72.9% 99.8%
GPL 2 288 576 21 27 92.7% 95.3%
3 2024 12144 29 84 98.6% 99.3%
4 9680 232320 31 260 99.7% 99.9%
5 33264 3991680 20 525 99.9% 100.0%
77– 99.99 %
RQ1: Summary
•  We see a reduction of over 50% in
directed and over 75% in undirected
interactions when we use the interaction
trees
Subject t Direct
SE
Comp
SE
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
Compositional vs.
Directed(seconds)
Subject t Direct
SE
Comp
SE
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
Compositional vs.
Directed(seconds)
Subject t Direct
SE
Comp
SE
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
Compositional vs.
Directed(seconds)
Subject t Direct
SE
Comp
SE
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
Compositional vs.
Directed(seconds)
Subject t Direct
SE
Comp
SE
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
Compositional vs.
Directed(seconds)
Same time
Subject t Direct
SE
Our
Tech
SCARI 1 6.75 6.75
2 14.48 9.63
3 17.67 10.06
4 36.09 10.93
5 35.87 11.70
GPL 1 41.77 41.77
2 67.25 56.28
3 184.76 82.00
4 727.34 216.63
5 3887.23 965.92
1/3 of the time
1/4 of the time
Compositional vs.
Directed(seconds)
Compositional vs.
Directed(seconds)
0
5
10
15
20
25
30
35
40
1 2 3 4 5
seconds
t-way interactions
SCARI
Direct SE
Compositional SE
Compositional vs.
Directed(seconds)
0
500
1000
1500
2000
2500
3000
3500
4000
4500
1 2 3 4 5
seconds
t-way interactions
GPL
Direct SE
Compositional SE
RQ2: Summary
•  As we increase the interaction strength
we see a greater reduction in time when
using compositional symbolic execution
•  We reduce the time by a factor of 4 in
the best case
•  We believe this will allow for greater
scalability and testing of higher
strengths
Summary
•  We developed an incremental
compositional symbolic execution
technique for integration testing of SPLs
•  Leverages dependency analysis to
reduce interactions by more than 50%
•  Compositional symbolic execution
reduces time by as much as 75%
Future Directions
•  Use summaries for test generation to
execute specific interaction
•  Characterize areas of behavior to drive
further test generation
•  Extend to other types of SPLs
Agenda
SPL System Testing: the combinatorics
SPL Integration Testing
Summary
Continuous Test Suite Augmentation
Introduction to Software Product Lines
COntinuous TEst Suite
Augmentation
•  CONTESA
Z. Xu, M. B. Cohen, W. Motycka, G. Rothermel, Continuous Test Suite Augmentation
in Software Product Lines, International Software Product Line Conference (SPLC),
August, 2013, (to appear).
Approaches to Testing/
Analyzing SPLS1
•  Feature based
– Focusing on individual features
•  Product based
– Focusing on products
•  Family based
– Testing from family perspective
1. T. Thum, S. Apel, C. Kastner, M. Kuhlemann, I. Schaefer, and G. Saake. Analysis
strategies for software product lines. Technical report, Faukulat fur Informatik,
Otto-von-Guericke-Univeritat, April 2012.
CONTESA
•  Hybrid family/product based approach
•  Aims to cover all code in family by
selecting products to test
•  Leverages ideas/techniques from
regression testing
Software Evolves…
Software Evolves…
Software Evolves…
Test Cases Change Coverage
Tests
Test Cases Change Coverage
Tests
Test Cases Change Coverage
Tests
Test Cases Change Coverage
Tests
We need to add tests to the test
suite
Code-based View
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Code-based View
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Code-based View
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Code-based View
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Code-based View
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Implication
E
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
E
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
int foo (int x, int y)
Implication
E
int foo (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2: if(xy)
T
T
T
F
F
F
E
int foo’ (int x, int y)
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2:if(x=y)
T
T
T
F
F
F
Implication
E
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2:if(x=y)
T
T
T
F
F
F
int foo′ (int x, int y)
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
Implication
E
P1: if(x0)
S1:return
x;
S3:return
x;
P3: if(x3)
X
S2:return
x+2;
S4:return
x+y;
P2:if(x=y)
T
T
T
F
F
F
int foo′ (int x, int y)
Test Suite:
t1=(x = 2, y = 2) t2=(x = 4, y = 4)
t3=(x = 1, y = 0) t4=(x = 4, y = 3)
t5=(x = −1, y = 0)
We need to add tests to the test
suite
1.  Identify affected elements (portions of
the program′ or its specification for
which new tests are needed)
2.  Create or guide the creation of tests
that exercise these elements
Test Suite Augmentation
Test Suite Augmentation
for SPLs
V1 V2 V3 V4 V5 V6
Non-SPL system evolves
Products of an SPL
A
B C
F
D
E
V V V16MC 8MC BW V VGV TV V V
2MP 1MP
Viewer
Type
V
P
Camera
TypeV
P
Phone
V
P
V
Display
V
Email
Viewer
V
Camera
V
Video
Camera
V
Video
Ringtones
requires_v_vp
requires_v_vp
requires_v_vp
Viewer
Type
V
P
p1
p2
p4
P3
p5
p1
p2
p4
P3
p5
p1
p4
P3
p5
p2
p4
Products Identify Targets
Select product 
Test generation
Initial Test Suite
Order Products
Continuous Test
Suite Augmentation
CONTESA Overview
CONTESA
•  Test a single product
•  Use regression impact analysis
(DejaVu) to identify common vs.
variable code between current/next
product
•  Generate tests to cover variable code in
the new product (use a GA)
Two Orders of Testing
Both select product with largest number of
uncovered branches (variable code)
•  Static:
– Determine order at start
•  Dynamic:
– Re-calculate after each product tested
Case Study
•  RQ1: Is continuous test suite augmentation more
effective and efficient than generating test cases
independently for each product?
•  RQ2: Does the order used in continuous test suite
augmentation matter in terms of effectiveness and
efficiency?
Results
Results
Actual Code Coverage
Cumulative Coverage
Summary
•  Continuous test suite augmentation
uses ideas from regression testing to
drive SPL test generation
•  It is a hybrid product and family based
approach
•  Improves both effectiveness and
efficiency over an individual product
based approach
Agenda
SPL System Testing: the combinatorics
SPL Integration Testing
Summary
Continuous Test Suite Augmentation
Introduction to Software Product Lines
Summary of Lecture
•  We have seen how combinatorics
impact SPL testing
•  We have seen some sampling and re-
use techniques
– System and integration level
•  We have seen an augmentation
technique aimed at the entire code-
base
Students and Collaborators
on this work
Isis Cabral
Matthew Dwyer
Brady Garvin
Wayne Motycka
Gregg Rothermel
Xiao Qu
Jiangfan Shi
Zhihong Xu
Sampling, Re-use and Incremental Testing in
Software Product Lines
Myra B. Cohen
myra@cse.unl.edu
University of Nebraska-Lincoln
This work is supported in part by the National Science Foundation through awards CCF-1161767,
CCF-0747009 and by the Air Force Office of Scientific Research through award FA9550-10-1-0406.

Weitere ähnliche Inhalte

Andere mochten auch

How to excel at event marketing with social media
How to excel at event marketing with social mediaHow to excel at event marketing with social media
How to excel at event marketing with social mediaConstant Contact
 
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...PDXTech4Good.org
 
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"mariazelara
 
OSCAR , DUMAR ,JULIAN
OSCAR , DUMAR ,JULIANOSCAR , DUMAR ,JULIAN
OSCAR , DUMAR ,JULIANDumarSantiago
 
Instalacion Paso A Paso De Linux Redhat Es Varsion 4
Instalacion Paso A Paso De Linux Redhat Es Varsion 4Instalacion Paso A Paso De Linux Redhat Es Varsion 4
Instalacion Paso A Paso De Linux Redhat Es Varsion 4Edgar Sandoval
 
Zap restaurant magician PDF
Zap   restaurant magician PDFZap   restaurant magician PDF
Zap restaurant magician PDFZap Enterprises
 
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...HarunyahyaUrdu
 
Periodico Octubre Ultima Edicion
Periodico Octubre Ultima EdicionPeriodico Octubre Ultima Edicion
Periodico Octubre Ultima Edicioncristiandadypatria
 
Respuestas búsquedas del tesoro
Respuestas búsquedas del tesoroRespuestas búsquedas del tesoro
Respuestas búsquedas del tesoroProFees
 
A new way to prevent Botnet Attack
A new way to prevent Botnet AttackA new way to prevent Botnet Attack
A new way to prevent Botnet Attackyennhi2812
 
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) Web
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) WebWorkshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) Web
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) WebAndré Vatter
 
How to Graduate From Email Support
How to Graduate From Email SupportHow to Graduate From Email Support
How to Graduate From Email SupportACA IT-Solutions
 

Andere mochten auch (16)

How to excel at event marketing with social media
How to excel at event marketing with social mediaHow to excel at event marketing with social media
How to excel at event marketing with social media
 
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...
Using Internet & Smartphone Tools to Engage & Support Volunteers (April 2013,...
 
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"
proyecto final IAVA "PAPÁS "AL INFORME COSTANTE DE SUS HIJOS"
 
OSCAR , DUMAR ,JULIAN
OSCAR , DUMAR ,JULIANOSCAR , DUMAR ,JULIAN
OSCAR , DUMAR ,JULIAN
 
Instalacion Paso A Paso De Linux Redhat Es Varsion 4
Instalacion Paso A Paso De Linux Redhat Es Varsion 4Instalacion Paso A Paso De Linux Redhat Es Varsion 4
Instalacion Paso A Paso De Linux Redhat Es Varsion 4
 
Zap restaurant magician PDF
Zap   restaurant magician PDFZap   restaurant magician PDF
Zap restaurant magician PDF
 
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...
Biomimetics ٹیکنالوجی. فطرت کی نقل کرنے کی ٹیکنالوجی کا استعمال کرتے ہوئے کی ...
 
Periodico Octubre Ultima Edicion
Periodico Octubre Ultima EdicionPeriodico Octubre Ultima Edicion
Periodico Octubre Ultima Edicion
 
COB232.pdf
COB232.pdfCOB232.pdf
COB232.pdf
 
Fernando Royuela
Fernando RoyuelaFernando Royuela
Fernando Royuela
 
Respuestas búsquedas del tesoro
Respuestas búsquedas del tesoroRespuestas búsquedas del tesoro
Respuestas búsquedas del tesoro
 
A new way to prevent Botnet Attack
A new way to prevent Botnet AttackA new way to prevent Botnet Attack
A new way to prevent Botnet Attack
 
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) Web
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) WebWorkshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) Web
Workshop: Recherche 2.0 - So funktioniert der Faktencheck im (Social) Web
 
Polonium
PoloniumPolonium
Polonium
 
How to Graduate From Email Support
How to Graduate From Email SupportHow to Graduate From Email Support
How to Graduate From Email Support
 
Edad moderna
Edad modernaEdad moderna
Edad moderna
 

Ähnlich wie TAROT2013 Testing School - Myra Cohen presentation

“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...Edge AI and Vision Alliance
 
FutureComm 2010: Video Quality Analysis and Measurement
FutureComm 2010: Video Quality Analysis and MeasurementFutureComm 2010: Video Quality Analysis and Measurement
FutureComm 2010: Video Quality Analysis and MeasurementRADVISION Ltd.
 
Maintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix APIMaintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix APIDaniel Jacobson
 
A Practical Guide to WebRTC
A Practical Guide to WebRTCA Practical Guide to WebRTC
A Practical Guide to WebRTCvline
 
Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8KMS Technology
 
At&t research at trecvid 2009
At&t research at trecvid 2009At&t research at trecvid 2009
At&t research at trecvid 2009Kirill Lazarev
 
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity DisruptionMIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity DisruptionMIPI Alliance
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfSimranjyotSuri
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesJosh Evans
 
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...Alpen-Adria-Universität
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemDatabricks
 
Voice and Video over IP Communications: Assessing and Improving User Experience
Voice and Video over IP Communications: Assessing and Improving User ExperienceVoice and Video over IP Communications: Assessing and Improving User Experience
Voice and Video over IP Communications: Assessing and Improving User ExperienceRADVISION Ltd.
 
Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Wes Yanaga
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsÁkos Horváth
 
SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!Sam Basu
 
Thesis arpan pal_gisfi
Thesis arpan pal_gisfiThesis arpan pal_gisfi
Thesis arpan pal_gisfiArpan Pal
 
Zenoss as Core Element for Video QOS
Zenoss as Core Element for Video QOS Zenoss as Core Element for Video QOS
Zenoss as Core Element for Video QOS Zenoss
 

Ähnlich wie TAROT2013 Testing School - Myra Cohen presentation (20)

“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
“Seamless Deployment of Multimedia and Machine Learning Applications at the E...
 
FutureComm 2010: Video Quality Analysis and Measurement
FutureComm 2010: Video Quality Analysis and MeasurementFutureComm 2010: Video Quality Analysis and Measurement
FutureComm 2010: Video Quality Analysis and Measurement
 
Maintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix APIMaintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix API
 
A Practical Guide to WebRTC
A Practical Guide to WebRTCA Practical Guide to WebRTC
A Practical Guide to WebRTC
 
Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8Developing Apps for Windows Phone 8
Developing Apps for Windows Phone 8
 
At&t research at trecvid 2009
At&t research at trecvid 2009At&t research at trecvid 2009
At&t research at trecvid 2009
 
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity DisruptionMIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
MIPI DevCon 2016: Image Sensor and Display Connectivity Disruption
 
P&M Marketing Plan 2011.ppt
P&M Marketing Plan 2011.pptP&M Marketing Plan 2011.ppt
P&M Marketing Plan 2011.ppt
 
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdfQConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
QConSF2016-JoshEvans-MasteringChaosANetflixGuidetoMicroservices-compressed.pdf
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
 
Kuoll pitch-deck
Kuoll pitch-deckKuoll pitch-deck
Kuoll pitch-deck
 
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...
Video Coding for Large-Scale HTTP Adaptive Streaming Deployments: State of th...
 
Clipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving SystemClipper: A Low-Latency Online Prediction Serving System
Clipper: A Low-Latency Online Prediction Serving System
 
Voice and Video over IP Communications: Assessing and Improving User Experience
Voice and Video over IP Communications: Assessing and Improving User ExperienceVoice and Video over IP Communications: Assessing and Improving User Experience
Voice and Video over IP Communications: Assessing and Improving User Experience
 
Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1Windows Phone 7 Unleashed Session 1
Windows Phone 7 Unleashed Session 1
 
ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!
 
Thesis arpan pal_gisfi
Thesis arpan pal_gisfiThesis arpan pal_gisfi
Thesis arpan pal_gisfi
 
Zenoss as Core Element for Video QOS
Zenoss as Core Element for Video QOS Zenoss as Core Element for Video QOS
Zenoss as Core Element for Video QOS
 

Mehr von Henry Muccini

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design Henry Muccini
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...Henry Muccini
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieHenry Muccini
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileHenry Muccini
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementHenry Muccini
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsHenry Muccini
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsHenry Muccini
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureHenry Muccini
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Henry Muccini
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Henry Muccini
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Henry Muccini
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Henry Muccini
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Henry Muccini
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Henry Muccini
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Henry Muccini
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Henry Muccini
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityHenry Muccini
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical SpacesHenry Muccini
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISHenry Muccini
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureHenry Muccini
 

Mehr von Henry Muccini (20)

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibile
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd management
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of Things
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design Decisions
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building Architecture
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on Sustainability
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical Spaces
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software Architecture
 

Kürzlich hochgeladen

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Kürzlich hochgeladen (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

TAROT2013 Testing School - Myra Cohen presentation

  • 1. Sampling, Re-use and Incremental Testing in Software Product Lines Myra B. Cohen myra@cse.unl.edu University of Nebraska-Lincoln
  • 2. Agenda SPL System Testing: the combinatorics SPL Integration Testing Summary Continuous Test Suite Augmentation Introduction to Software Product Lines
  • 3. Family-Based Approach to Development Nokia Mobile phones Boeing BoldStroke Future Combat Systems Intuit Philips Philips
  • 4. Software Product Lines •  A software product line (SPL) is a set of programs that share a significant common (managed) set of features satisfying a market segment or mission developed from a common set of core assets in a prescribed way Product 1 Commonality Variability .. .Product 2 Product n Core Assets
  • 5. Feature Oriented Domain Analysis •  SEI FODA Project in Late 1980s •  Identified features (variability) as the key to software product lines •  Identified the need for artifact-independent modeling of the features in an SPL •  •  Introduced the feature diagram which led to what we know today a the feature model
  • 6. Feature Models •  Representation of the features and dependencies/constraints in an SPL •  Defines what is (and is not) allowable in the SPL •  Can be written as a logic equation and can use SAT solvers to reason about model •  Several different notations for feature models
  • 7. Software Product Line Engineering •  Consists of two parts: – Domain engineering •  Determining what the re-usable components/ architecture is for the SPL •  Defines the commonality and variability of the SPL – Application engineering •  Deriving products from the platform created in the domain engineering step •  Makes use of re-use and exploits variability/ commonality
  • 8. Domain Testing •  Validate and verify reusable components •  No running application exists at this time - only components •  This differs from system/application testing where the entire system is tested as a unit
  • 9. What is Variability? Commonality The features shared by a set of systems Variability The features that differ between some pair of systems
  • 10. Examples of Variability •  Electric bulb can be lit or unlit •  Software applications support different languages •  A triple band mobile phone supports three different network standards •  Can load Choco vs. MiniSat to solve constraints
  • 11. Mechanisms for Implementing variability –  Compile flags –  Properties files –  Command-line arguments –  Inheritance –  Interface definition (and information hiding) –  Design patterns (e.g., strategy) –  Connectors (e.g., in architecture)
  • 13. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 14. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 15. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 16. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 17. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 18. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 19. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 20. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Mobile Phone SPL Display Type VP
  • 21. Testing a Product Line •  SPL engineering decreases time to market •  With shorter life cycles, the percentage of time spent in testing has increased – the new bottleneck •  Much of the current work on testing SPLs focuses on testing individual instances and reuse of specific test cases
  • 22. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V V Camera Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Validating at the Unit Level Display Type VP
  • 23. V V V 16MC 8MC BW Validating at the Unit Level Display Type VP V 16MC
  • 24. V V V 16MC 8MC BW Validating at the Unit Level Display Type VP V 16MC V 8MC
  • 25. V V V 16MC 8MC BW Validating at the Unit Level Display Type VP V 16MC V 8MC V BW Focus is on reuse of artifacts during testing Views testing from the feature level rather than the system level
  • 26. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp System Level Testing Display Type VP
  • 27. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp System Level Testing Viewer Type VP Test Case: Open email in HTML format
  • 28. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp System Level Testing Display Type VP Test Case: Open email in HTML format
  • 29. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Feature Interactions Viewer Type VP Failure: caused by interaction of data passed between 16MC display and textual viewer
  • 31. Real Interaction Failure •  NASA Detected failed communications on two independent channels •  Determined that the rover was continually re-booting – risked running out of energy and/or overheating •  Fault caused by assumptions made between two different features: (NASA component expected third party file system to deallocate memory) –  when one feature was removed the reboots stopped
  • 32. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Possible Interactions Display Type VP
  • 33. Fault Map of Configurations V4 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 C0 C10 C20 C30 C40 C50 C60 F1 F2 F3 F4 F5 C0 C10 C20 C30 C40 C50 C60 Faults C o n f I g u r a t I o n s
  • 34. V V V 16MC 8MC BW V V GV TV V V 2MP 1MP Viewer Type VP Camera Type VP Phone VP V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Testing the Interaction Space Viewer Type VP Number of possible interactions grows exponentially with number of variation points
  • 35. Some Other Approaches to SPL Testing •  Extended use cases for variability [Bertolino et al., SPFE 2003] •  Integration testing a SPL based on UML activity diagrams [Reis et al., FASE 2007] •  Generate test cases incrementally for a SPL [Uzuncaova et al., ISSRE 2008] •  Applying test cases for a subset of products only [Kim et al., ASE 2010] •  Applying monitoring properties for a subset of products only [Kim et al., RV 2010]
  • 36. Some SPL Resources •  http://splot-research.org/ •  http://www.isa.us.es/fama/ •  http://sir.unl.edu
  • 37. Agenda SPL System Testing: the combinatorics SPL Integration Testing Summary Continuous Test Suite Augmentation Introduction to Software Product Lines
  • 38. A Combinatorial Problem Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None
  • 39. A Combinatorial Problem Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None 3
  • 40. A Combinatorial Problem Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None 3 x 3
  • 41. A Combinatorial Problem Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None • 33x22=108 feasible SPL instances 3 x 3 x 3 x 2 x 2
  • 42. A Combinatorial Problem • 33x22=108 feasible SPL instances • 10 features each with 5 values = 510 or 9,765,625 possible instances Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None
  • 43. A Combinatorial Problem • 33x22=108 feasible SPL instances • 10 features each with 5 values = 510 or 9,765,625 possible instances • 4 hours to run test suite = approximately 4,459 years to test GCC optimizer: configuration space ~1061 Display Email Viewer Camera Video Camera Video Ringtones 16 Million Colors Graphical 2 Megapixels Yes Yes 8 Million Colors Text 1 Megapixel No No Black and White None None
  • 44. Combinatorial Interaction Testing (CIT) •  Test all pairs or t-way combinations of feature-values, where t is a defined strength of testing •  Uses a mathematical structure called a covering array
  • 45. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes 2-way CIT
  • 46. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes 2-way CIT
  • 47. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes 2-way CIT
  • 48. Combinatorial Interaction Testing (CIT) •  Based on statistical design of experiments (DOE) –  Manufacturing –  Drug test interactions –  Chemical interactions •  For software testing –  Mandl – compiler testing –  Brownlie, Prowse, Phadke – OATS system –  D. Cohen, Dalal, Fredman, Patton, Parelius – AETG –  Williams, Probert – network node interfaces –  Yilmaz, Cohen, Porter- ACE/TAO
  • 49. Empirical Results on CIT for System Inputs •  CIT has been well studied on testing input parameters for programs •  [Brownlie, Prowse, Phadke 92], [Burr,Young 98],[Burroughs, Jain, Erickson 94] [Cohen, Dalal, Fredman, Patton 97], [Dalal, Jain, Karunanithi, Leaton, Lott 98], [Dunietz, Erlich, Szablak, Mallows, Iannino 97], [Mandl 85] $ sort -m -c input.txt
  • 50. CIT for Configurable Systems •  Some studies on configurable systems •  [Kuhn, Wallace,Gallo 04] –  Medical devices, web browsers, data mgt, http server •  [Yilmaz, Cohen, Porter 04,06] –  Ace/TAO Corba middleware •  [Qu, Cohen, Rothermel 08]
  • 51. CIT vs. Default Configuration of vim in SIRFaultDetection(%) 020406080100 v2 v3 v4 v5 v6 v7 Version default configuration
  • 52. How do we Generate the Samples? •  Greedy approaches – AETG, IPOG – Search-based (simulated annealing, GAs) •  Use of constraint solvers
  • 53. Meta-Heuristic Search ∑ -Set of feasible solutions 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 ? cost(S) Randomly move through space S1 S2 S3 ….. Si
  • 54. Problems with Approach •  May get stuck in local optima
  • 55. Meta-heuristic Algorithms •  Provide mechanisms to escape local optima •  Sometimes the algorithm can accept a worse choice in the hope we will find a better route to a good solution
  • 56. Examples •  Genetic Algorithms •  Simulated Annealing •  Tabu Search Search Based Software Engineering
  • 57.
  • 58.
  • 59. •  Meant to simulate the coolng of metal •  Physical annealing is a process of slowly cooling a metal, in baths of decreasing temperatures. •  At each stage the metal molecules are allowed to come to an equilibrium. Then the bath is lowered to the next temperature. •  If the initial temperature is not high enough or if the cooling is done too quickly the metal will be brittle. Simulated Annealing
  • 60. •  The basic strategy is the same as a hill climb, but the meta-heuristic creates a gentle decrease in the probability for making a bad move. •  At the start of our hill climb we often make a lot of bad moves. •  By the time we are close to an optimal solution we are almost in a pure hill climb (the probability drops to almost zero) Simulated Annealing (cont.)
  • 61. •  Start with a solution S •  Select a new solution S’ that is a neighbor of S •  If S’-S ≤ 0 then S’ is accepted •  Otherwise –  Accept S’ with a probability Where T = temperature and B is the Boltzmann constant (this is a distribution which we won’t actually use for simulating the process) Simulated Annealing € e s−s' kBT
  • 62. Simulated Annealing 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 ? Probability of bad choice depends on cooling schedule
  • 63. Lower bound L Binary search for “best” solution Upper bound U (L+U)/2 Finding “N”
  • 64. The Real System Constraints on Valid Configurations: __________________________________________________________________________________________________ (1) Graphical email viewer requires color display (2) 2 Megapixel camera requires a color display (3) Graphical email viewer not supported with 2 Megapixel camera (4) 8 Million color display does not support a 2 Megapixel camera (5) Video camera requires a camera and a color display (6) Video ringtones cannot occur with No video camera (7) The combination of 16 Million colors, Text and 2 Megapixel camera will not be supported
  • 65. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes Constraints
  • 66. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes Constraints “Video Ringtones cannot occur without video camera
  • 67. Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes Constraints “Video Ringtones cannot occur without video camera
  • 68. Display Email Viewer Camera Video Camera Video Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes Constraints: (1) Graphical email viewer requires color display (2) 2 Megapixel Camera requires color display (3) Graphical email viewer not supported with the 2 Megapixel camera Decrease Sample Size
  • 69. Display Email Viewer Camera Video Camera Video Ringtones 1 16 Million Colors None 2 Megapixels No No 2 16 Million Colors Graphical 1 Megapixel No No 3 8 Million Colors None 1 Megapixel Yes Yes 4 16 Million Colors Graphical None Yes Yes 5 16 Million Colors Text 1 Megapixel Yes No 6 Black and White None 1 Megapixel Yes Yes 7 8 Million Colors Graphical 2 Megapixels Yes Yes 8 Black and White Text 2 Megapixels No Yes 9 8 Million Colors Text None No No 10 Black and White None None No No Constraints: _____________________________________________________________________ (1) Graphical email viewer requires color display Increase Sample Size
  • 70. Display Email Viewer Camera Video Camera Video Ringtones 1 16 Million Colors None 2 Megapixels No No 2 16 Million Colors Graphical 1 Megapixel No No 3 8 Million Colors None 1 Megapixel Yes Yes 4 16 Million Colors Graphical None Yes Yes 5 16 Million Colors Text 1 Megapixel Yes No 6 Black and White None 1 Megapixel Yes Yes 7 8 Million Colors Graphical 2 Megapixels Yes Yes 8 Black and White Text 2 Megapixels No Yes 9 8 Million Colors Text None No No 10 Black and White None None No No Constraints: _____________________________________________________________________ (1) Graphical email viewer requires color display Increase Sample Size
  • 71. Display Email Viewer Camera Video Camera Video Ringtones 1 16 Million Colors None 2 Megapixels No No 2 16 Million Colors Graphical 1 Megapixel No No 3 8 Million Colors None 1 Megapixel Yes Yes 4 16 Million Colors Graphical None Yes Yes 5 16 Million Colors Text 1 Megapixel Yes No 6 Black and White None 1 Megapixel Yes Yes 7 8 Million Colors Graphical 2 Megapixels Yes Yes 8 Black and White Text 2 Megapixels No Yes 9 8 Million Colors Text None No No 10 Black and White None None No No Constraints: _____________________________________________________________________ (1) Graphical email viewer requires color display Increase Sample Size
  • 72. Display Email Viewer Camera Video Camera Video Ringtones 1 16 Million Colors None 2 Megapixels No No 2 16 Million Colors Graphical 1 Megapixel No No 3 8 Million Colors None 1 Megapixel Yes Yes 4 16 Million Colors Graphical None Yes Yes 5 16 Million Colors Text 1 Megapixel Yes No 6 Black and White None 1 Megapixel Yes Yes 7 8 Million Colors Graphical 2 Megapixels Yes Yes 8 Black and White Text 2 Megapixels No Yes 9 8 Million Colors Text None No No 10 Black and White None None No No Constraints: _____________________________________________________________________ (1) Graphical email viewer requires color display Increase Sample Size
  • 73. Constrained CIT Approach Initialization Determine implicit forbidden constraints CIT Algorithm Greedy Meta- heuristic search Constraint Checking Check partial or full configurations
  • 74. Greedy Worked Well •  Extended both greedy and meta- heuristic search algorithms to find constrained CIT samples •  Used off the shelf SAT solver •  Mine information learned during Boolean propagation to improve performance of greedy algorithm M.B. Cohen, M.B. Dwyer and J. Shi, Constructing interaction test suites for highly-configurable systems in the presence of constraints: a greedy approach, IEEE Transactions on Software Engineering , 34(5), 2008, pp. 633-650.
  • 75. Limitations •  Greedy algorithms tend to: •  Finish quickly •  Handle constraints well •  Meta-heuristic algorithms tend to: •  Find smaller samples •  Handle constraints poorly •  Software product lines may have long test times per instance and many dependencies: •  Want a meta-heuristic search algorithm that builds small samples quickly
  • 76. Reformulated Simulated Annealing CIT Algorithm •  Modified: – Neighborhood of search •  Narrows as search progresses – Global strategy to find minimal size of array – A set of minor modifications •  B.J. Garvin, M.B. Cohen, and M.B. Dwyer, Evaluating Improvements to a Meta-Heuristic Search for Constrained Interaction Testing, Empirical Software Engineering (EMSE), 16(1), 2011, pp.61-102. •  CASA tool: http://cse.unl.edu/~citportal/tools/casa/
  • 77. Major Modifications •  Original implementation uses two phases: (1) Finding minimal size of sample (2) Finding a valid sample within that size •  Modifications: •  New search space (neighborhood) •  Improved method for finding size (global)
  • 78. Reduces infeasible search paths (dotted lines) Original Search Space may lead to many infeasible solutions New Search Space provides a more direct path to feasible solutions Modified Search Space (CASA)1 1. Available at: http://www.cse.unl.edu/citportal/tools/casa/
  • 79. Reduces infeasible search paths (dotted lines) Original Search Space may lead to many infeasible solutions New Search Space provides a more direct path to feasible solutions Modified Search Space (CASA)
  • 80. Reduces infeasible search paths (dotted lines) Original Search Space may lead to many infeasible solutions New Search Space provides a more direct path to feasible solutions Modified Search Space (CASA)
  • 82. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 83. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 84. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 85. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 86. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 87. Case Studies (t=2) Average Size Average Time Break Even Point Greedy Old SA New SA Greedy Old SA New SA Greedy vs. New SA SPINs 27.0 20.2 19.4 0.2 414.9 8.6 1.1 SPINv 42.5 33.2 36.8 11.3 4010.7 102.1 15.9 GCC 24.7 19.8 21.1 204.0 36,801.4 1902.0 471.7 Apac 42.6 32.6 32.3 76.4 23,589.1 109.1 3.2 Bugz 21.8 16.0 16.2 1.9 58.0 9.1 1.3
  • 88. Going Beyond CIT •  CIT is a system testing technique: – Need to instantiate complete products – Many interactions are low order •  CIT is black box: – Tests may or may not actually trigger interactions between features – No consideration of data/control flow directions
  • 89. Directed vs. Undirected Interactions Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes
  • 90. Directed vs. Undirected Interactions Display Email Viewer Camera Video V. Ringtones 1 16 Million Colors None 1 Megapixel Yes Yes 2 8 Million Colors Text None No No 3 16 Million Colors Text 2 Megapixels No Yes 4 Black and White None None No Yes 5 8 Million Colors None 2 Megapixels Yes No 6 16 Million Colors Graphical None Yes No 7 Black and White Text 1 Megapixel Yes No 8 8 Million Colors Graphical 1 Megapixel No Yes 9 Black and White Graphical 2 Megapixels Yes Yes 2 ways to test this interaction: 8 million colors à Text Text à 8 million colors
  • 94. Agenda SPL System Testing: the combinatorics SPL Integration Testing Summary Continuous Test Suite Augmentation Introduction to Software Product Lines
  • 95. Our Idea •  Test at the integration level: •  We can test partial products •  Incrementally increase strength of interactions •  Re-use results as we test •  Reduce the interaction space: •  Identify only feasible interactions •  Integrate features using the analysis of feasible interactions •  Generate tests to exercise these interactions (future)
  • 96. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! J. Shi, Myra B. Cohen and Matthew B. Dwyer, Integration Testing of Software Product Lines Using Compositional Symbolic Execution, International Conference on Fundamental Approaches to Software Engineering (FASE), March 2012, pp. 270-284.
  • 97. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! CFG PDG Code: Program Dependency and Control Flow Graph
  • 98. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! Interaction trees CFG PDG Feature Model: Defines possible interaction space
  • 99. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! CFG PDG Feature dependency graph
  • 100. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! Interaction trees CFG PDG Interaction Trees
  • 101. Approach s() {! …! v();! if (c) {! …! }! w();! …! }! f1(){! …! }! f2(){! …! }! f3() ! f4() ! Interaction trees CFG PDG Symbolic Exeuction: Report Faults/Generate Tests
  • 102. Interaction Trees f1 f3 f4 f2 2-way interaction trees FDG
  • 103. Interaction Trees f1 f3 f4 f2 2-way interaction trees f1 f3 FDG
  • 104. Interaction Trees f1 f3 f4 f2 2-way interaction trees f1 f3 f3 f4 FDG
  • 105. Interaction Trees f1 f3 f4 f2 2-way interaction trees f1 f3 f3 f4 f2 f4 FDG
  • 106. Interaction Trees f1 f3 f4 f2 2-way interaction trees 3-way interaction trees f1 f3 f3 f4 f2 f4 f1 f3 f4 FDG
  • 107. Interaction Trees f1 f3 f4 f2 2-way interaction trees 3-way interaction trees f1 f3 f3 f4 f2 f4 f1 f3 f4 FDG f2 f4 f3
  • 108. Interaction Trees 2-way interaction trees f1 f3 f3 f4 f2 f4
  • 109. Interaction Trees 2-way interaction trees 3-way interaction trees f1 f3 f3 f4 f2 f4 f1 f3 f4 f2 f4 f3
  • 111. Testing Method •  Use bounded symbolic execution •  Obtain summaries from individual features •  Use interaction trees to guide composition of all t-feature summaries
  • 112. Symbolic Summaries •  We have three outcomes: 1.  Complete execution of a path (passing behavior) 2.  Exception (failing behavior) –  may or may not be feasible to reach in full system 3.  Depth bound is reach (unknown behavior) In this work we only accumulate type 1.
  • 113. Results of (Composed) Summaries •  Constraints can be collected for each region to perform test generation (in progress) sum(f1,f2,f4) = {(f1.x0,f4.ret=f1.x+1), …) complete exception Time out complete exception Time out Feature 1 Feature 2
  • 114. Compositional SE (A0 ∧ B 0, return=A)
  • 117. Case Study We performed a case study on 2 software product lines to answer these questions: •  RQ1: What is the reduction from our dependency analysis on the number of interactions that should be tested in an SPL? •  RQ2: What is the difference in time between using our compositional symbolic technique versus a traditional directed technique?
  • 118. Applications Used SCARI: Software Defined Radio Reference Model
  • 121. Method RQ1: •  Compared number of (directed/undirected) interactions RQ2: •  Compared directed SE vs. incremental compositional SE
  • 122. Method •  Tools: – Adapted the IFA in Soot – Direct SE – use Java PathFinder – Compositional approach – built a composer •  Depth: – 20*t – Explicit for Direct SE – Implicit for compositional
  • 123. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 124. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 125. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 126. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 127. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 128. Interaction Reduction Subject K UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 532 UI 63840 DI
  • 129. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 532 UI 63840 DI
  • 130. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 144 UI 144 DI 532 UI 63840 DI
  • 131. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 20 UI 525 DI
  • 132. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0%
  • 133. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 55 – 99.9%
  • 134. Interaction Reduction Subject t UI DI Feas UI Feas DI UI Red DI Red SCARI 2 188 376 85 85 54.8% 77.4% 3 532 3192 92 92 82.7% 97.1% 4 532 12768 162 162 69.5% 98.7% 5 532 63840 144 144 72.9% 99.8% GPL 2 288 576 21 27 92.7% 95.3% 3 2024 12144 29 84 98.6% 99.3% 4 9680 232320 31 260 99.7% 99.9% 5 33264 3991680 20 525 99.9% 100.0% 77– 99.99 %
  • 135. RQ1: Summary •  We see a reduction of over 50% in directed and over 75% in undirected interactions when we use the interaction trees
  • 136. Subject t Direct SE Comp SE SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 Compositional vs. Directed(seconds)
  • 137. Subject t Direct SE Comp SE SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 Compositional vs. Directed(seconds)
  • 138. Subject t Direct SE Comp SE SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 Compositional vs. Directed(seconds)
  • 139. Subject t Direct SE Comp SE SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 Compositional vs. Directed(seconds)
  • 140. Subject t Direct SE Comp SE SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 Compositional vs. Directed(seconds) Same time
  • 141. Subject t Direct SE Our Tech SCARI 1 6.75 6.75 2 14.48 9.63 3 17.67 10.06 4 36.09 10.93 5 35.87 11.70 GPL 1 41.77 41.77 2 67.25 56.28 3 184.76 82.00 4 727.34 216.63 5 3887.23 965.92 1/3 of the time 1/4 of the time Compositional vs. Directed(seconds)
  • 142. Compositional vs. Directed(seconds) 0 5 10 15 20 25 30 35 40 1 2 3 4 5 seconds t-way interactions SCARI Direct SE Compositional SE
  • 143. Compositional vs. Directed(seconds) 0 500 1000 1500 2000 2500 3000 3500 4000 4500 1 2 3 4 5 seconds t-way interactions GPL Direct SE Compositional SE
  • 144. RQ2: Summary •  As we increase the interaction strength we see a greater reduction in time when using compositional symbolic execution •  We reduce the time by a factor of 4 in the best case •  We believe this will allow for greater scalability and testing of higher strengths
  • 145. Summary •  We developed an incremental compositional symbolic execution technique for integration testing of SPLs •  Leverages dependency analysis to reduce interactions by more than 50% •  Compositional symbolic execution reduces time by as much as 75%
  • 146. Future Directions •  Use summaries for test generation to execute specific interaction •  Characterize areas of behavior to drive further test generation •  Extend to other types of SPLs
  • 147. Agenda SPL System Testing: the combinatorics SPL Integration Testing Summary Continuous Test Suite Augmentation Introduction to Software Product Lines
  • 148. COntinuous TEst Suite Augmentation •  CONTESA Z. Xu, M. B. Cohen, W. Motycka, G. Rothermel, Continuous Test Suite Augmentation in Software Product Lines, International Software Product Line Conference (SPLC), August, 2013, (to appear).
  • 149. Approaches to Testing/ Analyzing SPLS1 •  Feature based – Focusing on individual features •  Product based – Focusing on products •  Family based – Testing from family perspective 1. T. Thum, S. Apel, C. Kastner, M. Kuhlemann, I. Schaefer, and G. Saake. Analysis strategies for software product lines. Technical report, Faukulat fur Informatik, Otto-von-Guericke-Univeritat, April 2012.
  • 150. CONTESA •  Hybrid family/product based approach •  Aims to cover all code in family by selecting products to test •  Leverages ideas/techniques from regression testing
  • 154. Test Cases Change Coverage Tests
  • 155. Test Cases Change Coverage Tests
  • 156. Test Cases Change Coverage Tests
  • 157. Test Cases Change Coverage Tests We need to add tests to the test suite
  • 158. Code-based View E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 159. Code-based View E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 160. Code-based View E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 161. Code-based View E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 162. Code-based View E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 163. Implication E P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F E P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F int foo (int x, int y)
  • 164. Implication E int foo (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2: if(xy) T T T F F F E int foo’ (int x, int y) P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2:if(x=y) T T T F F F
  • 165. Implication E P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2:if(x=y) T T T F F F int foo′ (int x, int y) Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0)
  • 166. Implication E P1: if(x0) S1:return x; S3:return x; P3: if(x3) X S2:return x+2; S4:return x+y; P2:if(x=y) T T T F F F int foo′ (int x, int y) Test Suite: t1=(x = 2, y = 2) t2=(x = 4, y = 4) t3=(x = 1, y = 0) t4=(x = 4, y = 3) t5=(x = −1, y = 0) We need to add tests to the test suite
  • 167. 1.  Identify affected elements (portions of the program′ or its specification for which new tests are needed) 2.  Create or guide the creation of tests that exercise these elements Test Suite Augmentation
  • 168. Test Suite Augmentation for SPLs V1 V2 V3 V4 V5 V6 Non-SPL system evolves Products of an SPL A B C F D E V V V16MC 8MC BW V VGV TV V V 2MP 1MP Viewer Type V P Camera TypeV P Phone V P V Display V Email Viewer V Camera V Video Camera V Video Ringtones requires_v_vp requires_v_vp requires_v_vp Viewer Type V P
  • 169. p1 p2 p4 P3 p5 p1 p2 p4 P3 p5 p1 p4 P3 p5 p2 p4 Products Identify Targets Select product Test generation Initial Test Suite Order Products Continuous Test Suite Augmentation CONTESA Overview
  • 170. CONTESA •  Test a single product •  Use regression impact analysis (DejaVu) to identify common vs. variable code between current/next product •  Generate tests to cover variable code in the new product (use a GA)
  • 171. Two Orders of Testing Both select product with largest number of uncovered branches (variable code) •  Static: – Determine order at start •  Dynamic: – Re-calculate after each product tested
  • 172. Case Study •  RQ1: Is continuous test suite augmentation more effective and efficient than generating test cases independently for each product? •  RQ2: Does the order used in continuous test suite augmentation matter in terms of effectiveness and efficiency?
  • 177. Summary •  Continuous test suite augmentation uses ideas from regression testing to drive SPL test generation •  It is a hybrid product and family based approach •  Improves both effectiveness and efficiency over an individual product based approach
  • 178. Agenda SPL System Testing: the combinatorics SPL Integration Testing Summary Continuous Test Suite Augmentation Introduction to Software Product Lines
  • 179. Summary of Lecture •  We have seen how combinatorics impact SPL testing •  We have seen some sampling and re- use techniques – System and integration level •  We have seen an augmentation technique aimed at the entire code- base
  • 180. Students and Collaborators on this work Isis Cabral Matthew Dwyer Brady Garvin Wayne Motycka Gregg Rothermel Xiao Qu Jiangfan Shi Zhihong Xu
  • 181. Sampling, Re-use and Incremental Testing in Software Product Lines Myra B. Cohen myra@cse.unl.edu University of Nebraska-Lincoln This work is supported in part by the National Science Foundation through awards CCF-1161767, CCF-0747009 and by the Air Force Office of Scientific Research through award FA9550-10-1-0406.