SlideShare a Scribd company logo
1 of 77
Download to read offline
.lusoftware verification & validation
VVS
Search-Based !
Robustness Testing!
of Data Processing Systems
Daniel Di Nardo, Fabrizio Pastore, 
Andrea Arcuri, Lionel Briand
University of Luxembourg
Interdisciplinary Centre for Security, Reliability and Trust
Software Verification and Validation Lab
Data
Processing
System
Data
Processing
System
Satellite
Data
Processing
System
4
•  Essential component of systems that aggregate and
analyse real-world data
•  Robustness is “the degree to which a system or
component can function correctly in the presence of
invalid inputs or stressful environmental conditions”
Data
Processing
System
Multiple fields
Nested structure w/ different types
Constraints among fields
Huge amount
Valid data
Invalid
data
Accepted
& processed
Discarded
Data
Processing
System
Multiple fields
Nested structure w/ different types
Constraints among fields
Huge amount
Valid data
Invalid
data
Accepted
& processed
Discarded
Contributions
• An evolutionary algorithm to automate robustness testing of
data processing systems
• Use of four fitness functions (model-based and code-based)
that enable the effective generation of robustness test cases
by means of evolutionary algorithms
• An extensive study of the effect of fitness functions and
configuration parameters on the effectiveness of the approach
using an industrial data processing system as case study.
7
Testing Automation Problems
• How to automatically generate test inputs?
• Data mutation methodology [ICST’15]
• How to automatically verify test execution results?
• Modelling methodology [ASE’13]
• How to identify the most effective inputs?
• Best size of inputs? Which data types to consider? !
How many data faults should be present? !
Which constraints should be broken?
• Meta-heuristic search approach [ASE’15]
Testing Automation Problems
• How to automatically generate test inputs?
• Data mutation methodology [ICST’15]
• How to automatically verify test execution results?
• Modelling methodology [ASE’13]
• How to identify the most effective inputs?
• Best size of inputs? Which data types to consider? !
How many data faults should be present? !
Which constraints should be broken?
• Meta-heuristic search approach [ASE’15]
10
Meta-heuristic search approach
Model-based mutation to generate inputs
Model-based validation as oracle
+
Coverage objectives to evaluate inputs
+
Data Modelling Methodology
Input
Output
Modelling using Class Diagrams + OCL Constraints
Software
Under Test
Output
Constraints
Checking
Test Input
Data Model
Violated
Constraints
Model Instance
Field Data
Mutation
Based
Generation
Model-Based Mutation Testing
Generic mutation operators
(reusable across projects)
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Replacement	
  
with	
  Random	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
Generic mutation operators
(reusable across projects)
Configurations for operators
(fit the fault model)
Transmission
 Vcdu
1
1
1
versionNumber : Integer
spaceCraftId : Integer
checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
1..*
A2ribute	
  
Replacement	
  
with	
  Random	
  
Generic mutation operators
(reusable across projects)
Configurations for operators
(fit the fault model)
Transmission
 Vcdu
1
1
1
versionNumber : Integer
spaceCraftId : Integer
checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
1..*
A2ribute	
  
Replacement	
  
with	
  Random	
  
Configuration for mutation operators
is provided by UML stereotypes used
to select mutation targets
!
!
Generic mutation operators
(reusable across projects)
Transmission
 Vcdu
1
1
1
<Identifier> versionNumber : Integer
spaceCraftId : Integer
checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
1..*
A2ribute	
  
Replacement	
  
with	
  Random	
  
Configuration for mutation operators
is provided by UML stereotypes used
to select mutation targets
!
!
Configurations for operators
(fit the fault model)
Generic mutation operators
(reusable across projects)
Transmission
 Vcdu
1
1
1
<Identifier> versionNumber : Integer
spaceCraftId : Integer
checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Replacement	
  
with	
  Random	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
1..*
Configurations for operators
(fit the fault model)
Configuration for mutation operators
is provided by UML stereotypes used
to select mutation targets
!
!
Test Input
Field Data
Mutation
Based
Generation
Test Input
Test Input
Test Input
Test Input
Test Input
Effective
 Small size
By measuring specific objectives.
How to generate an effective and small test suite?
How to evaluate the effectiveness of a test suite?
By means of a meta-heuristic search algorithm.
Generic mutation operators
(reusable across projects)
Configurations for operators
(fit the fault model)
Transmission
 Vcdu
1
1
1
<Identifier> versionNumber : Integer
spaceCraftId : Integer
<Derived> checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Replacement	
  
with	
  Random	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
•  UML stereotypes to select !
mutation targets
•  UML stereotype to identify the !
fields to update!
!

1..*
19
Generic mutation operators
(reusable across projects)
Configurations for operators
(fit the fault model)
Transmission
 Vcdu
1..*
1
1
1
<Identifier> versionNumber : Integer
spaceCraftId : Integer
<Derived> checksum : Integer

Header
Class	
  	
  
Instance	
  
Duplica/on	
  
A2ribute	
  
Replacement	
  
with	
  Random	
  
A2ribute	
  
Bit	
  
Flipping	
  
Class	
  	
  
Instance	
  
Removal	
  
Class	
  	
  
Instances	
  
Swapping	
  
A2ribute	
  
Replacement	
  
Boundary	
  Cond.	
  
•  UML stereotypes to select !
mutation targets
•  UML stereotype to identify the !
fields to update
•  OCL queries to express complex !
target selection criteria
20
How to determine if the
generated test suite is effective?
21
Test Effectiveness Objectives
•  O1: Include input data that covers all the classes of the data model
•  Data has a complex structure
•  O2: Cover all the data faults of a fault model
•  A variety of faults might be present in a system 
•  O3: Cover all the clauses of the input/output constraints
•  Input/output constraints can have multiple conditions under which
a given output is expected
•  O4: Maximise code coverage
•  Implemented features should be fully executed
O1: Cover all the classes of the
data model 
• Coverage of each class of a data model is tracked
• Test input covers a class if it contains at least one instance of
the class
O1: Cover all the classes of the
data model 
Vcdu
ActivePacketZone
1
1
1
versionNumber : Integer
vcFrameCount : Integer
checksum : Integer

Header
1..*
Transmission
Packet
IdlePacketZone
PacketZone
1
1..*
1
 1
O1: Cover all the classes of the
data model 
Objective Targets
 Test Inputs
Inp1
 Inp2
 Inp3
Vcdu
 X
 X
 X
Header
 X
 X
 X
IdlePacketZone
 X
 X
ActivePacketZone
 X
 X
Packet
 X
 X
 X
O2: Cover the fault model
• Attributes and class instances of the input data model can be
mutated in different ways by different mutation operators
• Keep track of which mutation operator(s) have been applied to
a specific class/attribute instance when generating test data
O2: Cover the fault model
Vcdu
Packet
1
1
1
versionNumber : Integer
vcFrameCount : Integer

Header
1..*
O2: Cover the fault model
Vcdu
Packet
1
1
1
versionNumber : Integer
vcFrameCount : Integer

Header
1..*
Header.versionNumber::ReplaceWithRandom
Attribute Instance
 Mutation Operator
O2: Cover the fault model
Vcdu
Packet
1
1
1
versionNumber : Integer
vcFrameCount : Integer

Header
1..*
Header.vcFrameCount::ReplaceWithRandom
O2: Cover the fault model
Vcdu
Packet
1
1
1
versionNumber : Integer
vcFrameCount : Integer

Header
1..*
Packet::InstanceDuplication
Packet::InstanceRemoval
Packet::InstanceSwapping
Class Instance
 Mutation Operator
O2: Cover the fault model
Objective Targets
 Test Inputs
Inp1
 Inp2
 Inp3
Header.versionNumber::ReplaceWithRandom
 X
 X
Header.vcFrameCount::ReplaceWithRandom
 X
Packet::InstanceRemoval
Packet::InstanceDuplication
Packet::InstanceSwapping
 X
O3: Cover clauses of constraints
• An input/output constraint shows the output expected under a
given input condition
• The test suite should stress all the conditions under which a
given output is expected
O3: Cover clauses of constraints
context Vcdu inv:

if previousFrameCount < 16777215

then frameCount <> previousFrameCount + 1
else 

previousFrameCount = 16777215 and frameCount <> 0 
endif

implies

VcduEvent.allInstances()èexists(e | e.eventType = COUNTER_JUMP)
O3: Cover clauses of constraints
context Vcdu inv:

if previousFrameCount < 16777215

then frameCount <> previousFrameCount + 1
else 

previousFrameCount = 16777215 and frameCount <> 0 
endif

implies

VcduEvent.allInstances()èexists(e | e.eventType = COUNTER_JUMP)

For each clause, keep track of whether a test input makes the
clause true and/or false.
O3: Cover clauses of constraints
Objective Targets
 Test Inputs
Inp1
 Inp2
 Inp3
True : previousFrameCount < 16777215
 X
 X
 X
True : frameCount <> previousFrameCount + 1
 X
True : previousFrameCount = 16777215
True : frameCount <> 0
 X
 X
 X
False : previousFrameCount < 16777215
False : frameCount <> previousFrameCount + 1
 X
 X
 X
False : previousFrameCount = 16777215
 X
 X
 X
False : frameCount <> 0
O4: Maximize code coverage
• Execute JaCoCo to measure the instructions covered by each
test case
Objective Targets
 Test Inputs
Inp1
 Inp2
 Inp3
SesDaq.java : Instruction 10
 X
 X
 X
SesDaq.java : Instruction 11
 X
…
• Limitation: Requires the execution of the system under test
Evolutionary Algorithm with Archive
How to generate an effective
and small test suite?
Huge amount of test inputs can be generated
Exhaustive test generation not feasible
Sample new chunk
Field Data
With Seeding
No Seeding
Sample new chunk
Field Data
Field data (satellite transmission):
With Seeding
No Seeding
No seeding: frequent packet types selected more often
No seeding: packets randomly selected
Sample new chunk
Field Data
Field data (satellite transmission):
With Seeding
No Seeding
With seeding: all packet types same probability
With seeding: packet types randomly selected
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
filtering
pruning
Assessment
filtering
pruning
Assessment
Put in Archive
Objective 1

Data model
coverage
Vcdu
 X
 X
 X
Header
 X
 X
 X
IdlePacketZone
 X
 X
ActivePacketZone
 X
 X
 X
Packet
 X
 X
 X
Objective 2

Fault model!
coverage
Header.versionNumber::ReplaceWithRandom
 X
 X
Header.vcFrameCount::ReplaceWithRandom
 X
Packet::InstanceRemoval
 X
Packet::InstanceDuplication
Packet::InstanceSwapping
Objective 3

Constraints !
clause !
coverage
True : previousFrameCount < 16777215
 X
 X
 X
True : frameCount <> previousFrameCount + 1
 X
True : previousFrameCount = 16777215
True : frameCount <> 0
 X
 X
 X
False : previousFrameCount < 16777215
False : frameCount <> previousFrameCount + 1
 X
 X
 X
False : previousFrameCount = 16777215
 X
 X
 X
Objective 4
Code cov.
SesDaq.java : Line 10
 X
 X
 X
SesDaq.java : Line 11
 X
Objective 1

Data model
coverage
Vcdu
 X
 X
 X
Header
 X
 X
 X
IdlePacketZone
 X
 X
ActivePacketZone
 X
 X
 X
Packet
 X
 X
 X
Objective 2

Fault model!
coverage
Header.versionNumber::ReplaceWithRandom
 X
 X
Header.vcFrameCount::ReplaceWithRandom
 X
Packet::InstanceRemoval
 X
Packet::InstanceDuplication
Packet::InstanceSwapping
Objective 3

Constraints !
clause !
coverage
True : previousFrameCount < 16777215
 X
 X
 X
True : frameCount <> previousFrameCount + 1
 X
True : previousFrameCount = 16777215
True : frameCount <> 0
 X
 X
 X
False : previousFrameCount < 16777215
False : frameCount <> previousFrameCount + 1
 X
 X
 X
False : previousFrameCount = 16777215
 X
 X
 X
Objective 4
Code cov.
SesDaq.java : Line 10
 X
 X
 X
SesDaq.java : Line 11
 X
Objective 1

Data model
coverage
Vcdu
 X
 X
 X
Header
 X
 X
 X
IdlePacketZone
 X
 X
ActivePacketZone
 X
 X
 X
Packet
 X
 X
 X
Objective 2

Fault model!
coverage
Header.versionNumber::ReplaceWithRandom
 X
 X
Header.vcFrameCount::ReplaceWithRandom
 X
Packet::InstanceRemoval
 X
Packet::InstanceDuplication
Packet::InstanceSwapping
Objective 3

Constraints !
clause !
coverage
True : previousFrameCount < 16777215
 X
 X
 X
True : frameCount <> previousFrameCount + 1
 X
True : previousFrameCount = 16777215
True : frameCount <> 0
 X
 X
 X
False : previousFrameCount < 16777215
False : frameCount <> previousFrameCount + 1
 X
 X
 X
False : previousFrameCount = 16777215
 X
 X
 X
Objective 4
Code cov.
SesDaq.java : Line 10
 X
 X
 X
SesDaq.java : Line 11
 X
Objective Targets
 Test Inputs
Inp1
 Inp2
 Inp3
Objective 1

Data model
coverage
Vcdu
 X
 X
 X
Header
 X
 X
 X
IdlePacketZone
 X
 X
ActivePacketZone
 X
 X
 X
Packet
 X
 X
 X
Objective 2

Fault model
coverage
Header.versionNumber::ReplaceWithRandom
 X
 X
Header.vcFrameCount::ReplaceWithRandom
 X
Packet::InstanceRemoval
 X
Packet::InstanceDuplication
Packet::InstanceSwapping
Objective 3

Constraints !
clause !
coverage
True : previousFrameCount < 16777215
 X
 X
 X
True : frameCount <> previousFrameCount + 1
 X
True : previousFrameCount = 16777215
True : frameCount <> 0
 X
 X
 X
False : previousFrameCount < 16777215
False : frameCount <> previousFrameCount + 1
 X
 X
 X
False : previousFrameCount = 16777215
 X
 X
 X
False : frameCount <> 0
Objective 4
Code Coverage
SesDaq.java : Line 10
 X
 X
 X
SesDaq.java : Line 11
 X
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
filtering
pruning
Assessment
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
Research questions

•  RQ1: How does the search algorithm compare with random and state-of-
the-art approaches?
•  RQ2: How does fitness based on code coverage affect performance?
•  RQ3: How does seeding affect performance?
•  RQ4: What are the configuration parameters that affect performance?
•  RQ5: What configuration should be used in practice?
•  Case study: Satellite DAQ developed by SES
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
Stop after: 50k, 100k, 150k, 200k, 250k
Coverage-fitness: on, off
This leads to 3 × 3 × 3 × 2 × 2 = 108 configurations
108 × 5 = 540 different configurations of search algorithm
Each experiment repeated 5 times to account for
randomness: 540 × 5 = 2700 runs
RQ1: How does the search algorithm compare with random and
state-of-the-art approaches?
Budget (in Cadus)
 Configuration
 Coverage
 # of Tests
50k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23424.4

23424.4

23386.8
28.4

28.4

43.2
100k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23487.8

23487.8
23436.8
31.6
31.6
52.0
150k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23502.0
23502.0
23453.4
34.0
34.0
57.8
200k
 Best: r=0.5,m=0.5,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23519.6
23513.4
23465.8
34.6
36.0
60.2
250k
 Best: r=0.5,m=1,n=10

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23538.6
23515.2
23482.6
38.4
36.4
62.4
r, probability of random sampling
m, probably of applying mutation when sampling
n, maximum number of allowed mutations in a test
(Seeding not used)
Best, best configuration for the given search budget
BO, best configuration, on average, over all the search budgets
Rand, random approach
RQ1: How does the search algorithm compare with
random and state-of-the-art approaches?
• Random approach
• Always sample and mutate; do not reuse archived items
• Previous approach (ICST’15)
• Stops test input generation when all attributes have been
mutated at least once by each applicable mutation operator
• Search-based algorithm
• Best overall configuration
• Best configuration for a given budget
RQ1: How does the search algorithm compare with
random and state-of-the-art approaches?
Budget 
 Configuration
 Coverage
 # of Tests
ICST’15
 23283.0
 43.0
50k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Random
23424.4

23424.4

23386.8
28.4

28.4

43.2
100k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23487.8

23487.8
23436.8
31.6
31.6
52.0
150k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23502.0
23502.0
23453.4
34.0
34.0
57.8
200k
 Best: r=0.5,m=0.5,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23519.6
23513.4
23465.8
34.6
36.0
60.2
250k
 Best: r=0.5,m=1,n=10

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23538.6
23515.2
23482.6
38.4
36.4
62.4
Search algorithm achieves better coverage
than both random and the ICST’15
approaches.
Search also generates significantly
smaller test suites.
RQ1: How does the search algorithm compare with
random and state-of-the-art approaches?
Budget 
 Configuration
 Coverage
 # of Tests
ICST’15
 23283.0
 43.0
50k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Random
23424.4

23424.4

23386.8
28.4

28.4

43.2
100k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Random
23487.8

23487.8
23436.8
31.6
31.6
52.0
150k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Random
23502.0
23502.0
23453.4
34.0
34.0
57.8
200k
 Best: r=0.5,m=0.5,n=100

BO: r=0.5,m=1,n=100

Random
23519.6
23513.4
23465.8
34.6
36.0
60.2
250k
 Best: r=0.5,m=1,n=10

BO: r=0.5,m=1,n=100

Random
23538.6
23515.2
23482.6
38.4
36.4
62.4
At the cost of a larger test suite.
With higher search budgets, search can
achieve greater coverage.
RQ1: How does the search algorithm compare with random and
state-of-the-art approaches?
55
Budget 
 Configuration
 Coverage
 # of Tests
ICST’15
 23283.0
 43.0
50k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23424.4

23424.4

23386.8
28.4

28.4

43.2
100k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23487.8

23487.8
23436.8
31.6
31.6
52.0
150k
 Best: r=0.5,m=1,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23502.0
23502.0
23453.4
34.0
34.0
57.8
200k
 Best: r=0.5,m=0.5,n=100

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23519.6
23513.4
23465.8
34.6
36.0
60.2
250k
 Best: r=0.5,m=1,n=10

BO: r=0.5,m=1,n=100

Rand: r=1,m=1,n=1
23538.6
23515.2
23482.6
38.4
36.4
62.4
Search algorithm achieves better coverage
than a random approach.
APT achieved an average coverage of
23283 instructions.
Less than both search and random.
Search also generates
significantly smaller test suites.
RQ2: How does fitness based on code coverage affect
performance?
Budget 
 Code
 Seeding
 Configuration
 Coverage
 # of Tests
 # of Mut.
50k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.5,m=1,n=10
BO: r=0.3,m=0,n=10
23361.4
23424.4
23417.2
23428.4
23401.8
17.0
28.4
21.0
34.2
27.0
4.8
3.6
4.0
3.2
4.3
100k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.3,m=1,n=10

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23404.4
23487.8
23442.2
23487.0
23487.0
16.8
31.6
21.0
33.2
33.2
8.2
4.9
6.4
5.6
5.6
150k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23418.4
23502.0
23447.4
23528.2
23528.2
28.2
34.0
23.4
35.6
35.6
4.0
6.0
7.5
6.5
6.5
200k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=0.5,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23426.0
23519.6
23456.0
23551.0
23551.0
28.0
34.6
23.2
37.2
37.2
4.7
6.7
9.2
7.0
7.0
250k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=10

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23433.2
23538.6
23461.8
23554.4
23554.4
28.6
38.4
23.6
37.2
37.2
5.4
7.1
10.3
7.4
7.4
r, probability of random sampling
m, probably of applying mutation when sampling
n, maximum number of allowed mutations in a test
Best, best configuration for the given search budget
BO, best configuration, on average, over all the search budgets
RQ2: How does fitness based on code coverage affect
performance?
Budget 
 Code
 Seeding
 Configuration
 Coverage
 # of Tests
 # of Mut.
50k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.5,m=1,n=10
BO: r=0.3,m=0,n=10
23361.4
23424.4
23417.2
23428.4
23401.8
17.0
28.4
21.0
34.2
27.0
4.8
3.6
4.0
3.2
4.3
100k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.3,m=1,n=10

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23404.4
23487.8
23442.2
23487.0
23487.0
16.8
31.6
21.0
33.2
33.2
8.2
4.9
6.4
5.6
5.6
150k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23418.4
23502.0
23447.4
23528.2
23528.2
28.2
34.0
23.4
35.6
35.6
4.0
6.0
7.5
6.5
6.5
200k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=0.5,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23426.0
23519.6
23456.0
23551.0
23551.0
28.0
34.6
23.2
37.2
37.2
4.7
6.7
9.2
7.0
7.0
250k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=10

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23433.2
23538.6
23461.8
23554.4
23554.4
28.6
38.4
23.6
37.2
37.2
5.4
7.1
10.3
7.4
7.4
r, probability of random sampling
m, probably of applying mutation when sampling
n, maximum number of allowed mutations in a test
Best, best configuration for the given search budget
BO, best configuration, on average, over all the search budgets
ess

ger
RQ2: How does fitness based on code coverage affect
performance?
• For each search budget:
• Identified the best configuration with/without the code
coverage objective enabled
Code coverage objective results in test suites with
higher code coverage.
At the expense of a larger test suite 
(50% more test cases).
RQ3: How does seeding affect performance?
• For each search budget:
• Identified the best configuration with/without seeding
Seeding is always part of the configurations
that achieve the 
highest code coverage 
or lowest number of test cases 
(for search budgets above 150k).
RQ4: What are the configuration parameters that
affect performance?
RQ3: How does smart seeding affect performance?
Budget 
 Code
 Seeding
 Configuration
 Coverage
 # of Tests
 # of Mut.
50k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.5,m=1,n=10
BO: r=0.3,m=0,n=10
23361.4
23424.4
23417.2
23428.4
23401.8
17.0
28.4
21.0
34.2
27.0
4.8
3.6
4.0
3.2
4.3
100k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.3,m=1,n=10

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23404.4
23487.8
23442.2
23487.0
23487.0
16.8
31.6
21.0
33.2
33.2
8.2
4.9
6.4
5.6
5.6
150k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23418.4
23502.0
23447.4
23528.2
23528.2
28.2
34.0
23.4
35.6
35.6
4.0
6.0
7.5
6.5
6.5
200k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=0.5,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23426.0
23519.6
23456.0
23551.0
23551.0
28.0
34.6
23.2
37.2
37.2
4.7
6.7
9.2
7.0
7.0
250k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=10

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23433.2
23538.6
23461.8
23554.4
23554.4
28.6
38.4
23.6
37.2
37.2
5.4
7.1
10.3
7.4
7.4
r, probability of random sampling
m, probably of applying mutation when sampling
n, maximum number of allowed mutations in a test
Best, best configuration for the given search budget
BO, best configuration, on average, over all the search budgets
RQ3: How does smart seeding affect performance?
Budget 
 Code
 Seeding
 Configuration
 Coverage
 # of Tests
 # of Mut.
50k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.5,m=1,n=10
BO: r=0.3,m=0,n=10
23361.4
23424.4
23417.2
23428.4
23401.8
17.0
28.4
21.0
34.2
27.0
4.8
3.6
4.0
3.2
4.3
100k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.3,m=1,n=10

Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=10
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23404.4
23487.8
23442.2
23487.0
23487.0
16.8
31.6
21.0
33.2
33.2
8.2
4.9
6.4
5.6
5.6
150k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23418.4
23502.0
23447.4
23528.2
23528.2
28.2
34.0
23.4
35.6
35.6
4.0
6.0
7.5
6.5
6.5
200k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=0.5,n=100

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23426.0
23519.6
23456.0
23551.0
23551.0
28.0
34.6
23.2
37.2
37.2
4.7
6.7
9.2
7.0
7.0
250k
 F
T
F
T
T
0.0
0.0
0.5
0.5
0.5
Best: r=0.8,m=1,n=100
Best: r=0.5,m=1,n=10

Best: r=0.5,m=1,n=100
Best: r=0.3,m=0,n=10
BO: r=0.3,m=0,n=10
23433.2
23538.6
23461.8
23554.4
23554.4
28.6
38.4
23.6
37.2
37.2
5.4
7.1
10.3
7.4
7.4
r, probability of random sampling
m, probably of applying mutation when sampling
n, maximum number of allowed mutations in a test
Best, best configuration for the given search budget
BO, best configuration, on average, over all the search budgets
For search budgets greater than 150k,
smart seeding achieves the highest coverage or
lowest number of test cases.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
Coverage fitness applied in top configurations.
Never by worst ones.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
Coverage fitness applied in top configurations.
Never by worst ones.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
For small search budgets, search achieves better results
when more focused on exploitation (using archived inputs).
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
For small search budgets, search achieves better results
when more focused on exploitation (using archived inputs).
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
For larger search budgets, with no seeding or coverage,
putting more emphasis on exploration (new samples) pays off.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
For larger search budgets, with no seeding or coverage,
putting more emphasis on exploration (new samples) pays off.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
If either seeding OR coverage fitness used, the need
to explore the search landscape decreases.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
If either seeding OR coverage fitness used, the need
to explore the search landscape decreases.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
If either seeding AND coverage fitness used, the need
to explore the search landscape further decreases.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
If either seeding AND coverage fitness used, the need
to explore the search landscape further decreases.
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Constraint
Violations
filtering
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ4: What are the configuration parameters that
affect performance?
Average number of mutations per test input
remains low (~10).
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
Average number of mutations per test input
remains low (~10).
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
Apply a mutation
Put in Archive
Copy from archive
Sample new chunk
Field Data
Test
Inputs
Execute on System
And Validate Results
Constraint
Violations
filtering
pruning
Assessment
p sampling = 0.3, 0.5, 0.8
Max mutations = 1, 10, 100
p seeding = 0, 0.5
p mutation = 0, 0.5, 1
Coverage-fitness: on, off
Stop after: 50k, 100k, 150k, 200k, 250k
RQ5: What configuration should be
used in practice?
RQ5: What configurations should be used in practice?
• Small probability of sampling new test data at random 
• (p=0.3) !

• Do not mutate new inputs immediately when sampled!

• Limit the max number of mutations (max mutations = 10)
• Seeding and code coverage are used
Higher coverage
 Smaller test suites

More Related Content

What's hot

Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...Lionel Briand
 
Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Lionel Briand
 
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...Lionel Briand
 
Improving Fault Localization for Simulink Models using Search-Based Testing a...
Improving Fault Localization for Simulink Models using Search-Based Testing a...Improving Fault Localization for Simulink Models using Search-Based Testing a...
Improving Fault Localization for Simulink Models using Search-Based Testing a...Lionel Briand
 
Testing of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesTesting of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesLionel Briand
 
Automatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case SpecificationsAutomatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case SpecificationsLionel Briand
 
Metamorphic Security Testing for Web Systems
Metamorphic Security Testing for Web SystemsMetamorphic Security Testing for Web Systems
Metamorphic Security Testing for Web SystemsLionel Briand
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynoteShiva Nejati
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsLionel Briand
 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingLionel Briand
 
Change Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsChange Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsLionel Briand
 
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsLionel Briand
 
Automated Vulnerability Testing Using Machine Learning and Metaheuristic Search
Automated Vulnerability Testing Using Machine Learning and Metaheuristic SearchAutomated Vulnerability Testing Using Machine Learning and Metaheuristic Search
Automated Vulnerability Testing Using Machine Learning and Metaheuristic SearchLionel Briand
 
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Lionel Briand
 
Search-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability DetectionSearch-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability DetectionLionel Briand
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Lionel Briand
 
Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningLionel Briand
 
A Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingA Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingLionel Briand
 
Log-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test CasesLog-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test CasesLionel Briand
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniquesFincy V.J
 

What's hot (20)

Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
 
Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!Documented Requirements are not Useless After All!
Documented Requirements are not Useless After All!
 
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...
PUMConf: A Tool to Configure Product Specific Use Case and Domain Models in a...
 
Improving Fault Localization for Simulink Models using Search-Based Testing a...
Improving Fault Localization for Simulink Models using Search-Based Testing a...Improving Fault Localization for Simulink Models using Search-Based Testing a...
Improving Fault Localization for Simulink Models using Search-Based Testing a...
 
Testing of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven StrategiesTesting of Cyber-Physical Systems: Diversity-driven Strategies
Testing of Cyber-Physical Systems: Diversity-driven Strategies
 
Automatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case SpecificationsAutomatic Generation of System Test Cases from Use Case Specifications
Automatic Generation of System Test Cases from Use Case Specifications
 
Metamorphic Security Testing for Web Systems
Metamorphic Security Testing for Web SystemsMetamorphic Security Testing for Web Systems
Metamorphic Security Testing for Web Systems
 
SSBSE 2020 keynote
SSBSE 2020 keynoteSSBSE 2020 keynote
SSBSE 2020 keynote
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
 
Applications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security TestingApplications of Machine Learning and Metaheuristic Search to Security Testing
Applications of Machine Learning and Metaheuristic Search to Security Testing
 
Change Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language RequirementsChange Impact Analysis for Natural Language Requirements
Change Impact Analysis for Natural Language Requirements
 
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
 
Automated Vulnerability Testing Using Machine Learning and Metaheuristic Search
Automated Vulnerability Testing Using Machine Learning and Metaheuristic SearchAutomated Vulnerability Testing Using Machine Learning and Metaheuristic Search
Automated Vulnerability Testing Using Machine Learning and Metaheuristic Search
 
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...Automated and Scalable Solutions for Software Testing: The Essential Role of ...
Automated and Scalable Solutions for Software Testing: The Essential Role of ...
 
Search-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability DetectionSearch-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability Detection
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...
 
Mining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine LearningMining Assumptions for Software Components using Machine Learning
Mining Assumptions for Software Components using Machine Learning
 
A Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingA Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security Testing
 
Log-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test CasesLog-Based Slicing for System-Level Test Cases
Log-Based Slicing for System-Level Test Cases
 
New software testing-techniques
New software testing-techniquesNew software testing-techniques
New software testing-techniques
 

Viewers also liked

AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...
AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...
AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...Carlos Queiroz
 
A Model-Based Framework for Probabilistic Simulation of Legal Policies
A Model-Based Framework for Probabilistic Simulation of Legal PoliciesA Model-Based Framework for Probabilistic Simulation of Legal Policies
A Model-Based Framework for Probabilistic Simulation of Legal PoliciesLionel Briand
 
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAF
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAFAll For The Want of a Horseshoe Nail - An Examination of Causality in DoDAF
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAFINCOSE Colorado Front Range Chapter
 
Consumption analysis method for optimizing reactive compensation at MV
Consumption analysis method for optimizing reactive compensation at MVConsumption analysis method for optimizing reactive compensation at MV
Consumption analysis method for optimizing reactive compensation at MVFrancesc Fornieles Castells
 
Client Presentation Linkedin Neat Solutions Limited
Client Presentation  Linkedin   Neat Solutions LimitedClient Presentation  Linkedin   Neat Solutions Limited
Client Presentation Linkedin Neat Solutions LimitedChurchillN
 
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...Thorne & Derrick International
 
Android 6.0 Marshmallow - Top 4 Enterprise Features
Android 6.0 Marshmallow - Top 4 Enterprise FeaturesAndroid 6.0 Marshmallow - Top 4 Enterprise Features
Android 6.0 Marshmallow - Top 4 Enterprise FeaturesRishabh Software
 
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...EnergyTech2015
 
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Annibale Panichella
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLINCOSE Colorado Front Range Chapter
 
Gareth Digby: Systems-Based Approach to Cyber Investigations
Gareth Digby: Systems-Based Approach to Cyber Investigations Gareth Digby: Systems-Based Approach to Cyber Investigations
Gareth Digby: Systems-Based Approach to Cyber Investigations EnergyTech2015
 

Viewers also liked (16)

AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...
AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...
AN INDUSTRIAL EVALUATION OF SysML - the case of a nuclear automation moderniz...
 
A Model-Based Framework for Probabilistic Simulation of Legal Policies
A Model-Based Framework for Probabilistic Simulation of Legal PoliciesA Model-Based Framework for Probabilistic Simulation of Legal Policies
A Model-Based Framework for Probabilistic Simulation of Legal Policies
 
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAF
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAFAll For The Want of a Horseshoe Nail - An Examination of Causality in DoDAF
All For The Want of a Horseshoe Nail - An Examination of Causality in DoDAF
 
Consumption analysis method for optimizing reactive compensation at MV
Consumption analysis method for optimizing reactive compensation at MVConsumption analysis method for optimizing reactive compensation at MV
Consumption analysis method for optimizing reactive compensation at MV
 
Client Presentation Linkedin Neat Solutions Limited
Client Presentation  Linkedin   Neat Solutions LimitedClient Presentation  Linkedin   Neat Solutions Limited
Client Presentation Linkedin Neat Solutions Limited
 
3M Cold Shrink - 3M EC Cold Shrink Cable End Caps
3M Cold Shrink - 3M EC Cold Shrink Cable End Caps3M Cold Shrink - 3M EC Cold Shrink Cable End Caps
3M Cold Shrink - 3M EC Cold Shrink Cable End Caps
 
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...
3M Scotch Professional Quality Electrical Tape - Scotch Coloured Vinyl Electr...
 
Webinario vehiculo electrico y autoconsumo 2015
Webinario vehiculo electrico y autoconsumo 2015Webinario vehiculo electrico y autoconsumo 2015
Webinario vehiculo electrico y autoconsumo 2015
 
Android 6.0 Marshmallow - Top 4 Enterprise Features
Android 6.0 Marshmallow - Top 4 Enterprise FeaturesAndroid 6.0 Marshmallow - Top 4 Enterprise Features
Android 6.0 Marshmallow - Top 4 Enterprise Features
 
Marisol pacheco actividad4.pdf
Marisol pacheco actividad4.pdfMarisol pacheco actividad4.pdf
Marisol pacheco actividad4.pdf
 
Fatim dan yundr (kb implan)
Fatim dan yundr (kb implan)Fatim dan yundr (kb implan)
Fatim dan yundr (kb implan)
 
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...
Mark Walker: Model Based Systems Engineering Initial Stages for Power &AMP; E...
 
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
Parameterizing and Assembling IR-based Solutions for SE Tasks using Genetic A...
 
Vivi dan melly ( bendungan asi )
Vivi dan melly ( bendungan asi )Vivi dan melly ( bendungan asi )
Vivi dan melly ( bendungan asi )
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UML
 
Gareth Digby: Systems-Based Approach to Cyber Investigations
Gareth Digby: Systems-Based Approach to Cyber Investigations Gareth Digby: Systems-Based Approach to Cyber Investigations
Gareth Digby: Systems-Based Approach to Cyber Investigations
 

Similar to Search-Based Robustness Testing of Data Processing Systems

Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingWodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingPablo Gómez Abajo
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017XavierDevroey
 
Leveraging Existing Tests in Automated Test Generation for Web Applications
Leveraging Existing Tests in Automated Test Generation for Web ApplicationsLeveraging Existing Tests in Automated Test Generation for Web Applications
Leveraging Existing Tests in Automated Test Generation for Web ApplicationsSALT Lab @ UBC
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Gwendal Daniel
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsPablo Gómez Abajo
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...Daniel Varro
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Vincent Massol
 
Java Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionJava Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionAlex Su
 
Machine Learning - Dataset Preparation
Machine Learning - Dataset PreparationMachine Learning - Dataset Preparation
Machine Learning - Dataset PreparationAndrew Ferlitsch
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolHenry Muccini
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENEWorkshop
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherencearagozin
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsOrtus Solutions, Corp
 
Declarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data modelsDeclarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data modelsMonal Daxini
 

Similar to Search-Based Robustness Testing of Data Processing Systems (20)

Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation TestingWodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
 
Leveraging Existing Tests in Automated Test Generation for Web Applications
Leveraging Existing Tests in Automated Test Generation for Web ApplicationsLeveraging Existing Tests in Automated Test Generation for Web Applications
Leveraging Existing Tests in Automated Test Generation for Web Applications
 
11 whiteboxtesting
11 whiteboxtesting11 whiteboxtesting
11 whiteboxtesting
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different Domains
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
Testing in a distributed world
Testing in a distributed worldTesting in a distributed world
Testing in a distributed world
 
TDD Training
TDD TrainingTDD Training
TDD Training
 
Java Unit Test and Coverage Introduction
Java Unit Test and Coverage IntroductionJava Unit Test and Coverage Introduction
Java Unit Test and Coverage Introduction
 
SWE-6 TESTING.pptx
SWE-6 TESTING.pptxSWE-6 TESTING.pptx
SWE-6 TESTING.pptx
 
Machine Learning - Dataset Preparation
Machine Learning - Dataset PreparationMachine Learning - Dataset Preparation
Machine Learning - Dataset Preparation
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_school
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the Cloud
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applications
 
Declarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data modelsDeclarative benchmarking of cassandra and it's data models
Declarative benchmarking of cassandra and it's data models
 

More from Lionel Briand

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityLionel Briand
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Lionel Briand
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingLionel Briand
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsLionel Briand
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsLionel Briand
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...Lionel Briand
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Lionel Briand
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsLionel Briand
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingLionel Briand
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Lionel Briand
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyLionel Briand
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Lionel Briand
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationLionel Briand
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Lionel Briand
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...Lionel Briand
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Lionel Briand
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Lionel Briand
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...Lionel Briand
 

More from Lionel Briand (20)

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System Security
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation Testing
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical Systems
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System Logs
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software Testing
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case Prioritization
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...
 

Recently uploaded

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 

Recently uploaded (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 

Search-Based Robustness Testing of Data Processing Systems

  • 1. .lusoftware verification & validation VVS Search-Based ! Robustness Testing! of Data Processing Systems Daniel Di Nardo, Fabrizio Pastore, Andrea Arcuri, Lionel Briand University of Luxembourg Interdisciplinary Centre for Security, Reliability and Trust Software Verification and Validation Lab
  • 4. Data Processing System 4 •  Essential component of systems that aggregate and analyse real-world data •  Robustness is “the degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions”
  • 5. Data Processing System Multiple fields Nested structure w/ different types Constraints among fields Huge amount Valid data Invalid data Accepted & processed Discarded
  • 6. Data Processing System Multiple fields Nested structure w/ different types Constraints among fields Huge amount Valid data Invalid data Accepted & processed Discarded
  • 7. Contributions • An evolutionary algorithm to automate robustness testing of data processing systems • Use of four fitness functions (model-based and code-based) that enable the effective generation of robustness test cases by means of evolutionary algorithms • An extensive study of the effect of fitness functions and configuration parameters on the effectiveness of the approach using an industrial data processing system as case study. 7
  • 8. Testing Automation Problems • How to automatically generate test inputs? • Data mutation methodology [ICST’15] • How to automatically verify test execution results? • Modelling methodology [ASE’13] • How to identify the most effective inputs? • Best size of inputs? Which data types to consider? ! How many data faults should be present? ! Which constraints should be broken? • Meta-heuristic search approach [ASE’15]
  • 9. Testing Automation Problems • How to automatically generate test inputs? • Data mutation methodology [ICST’15] • How to automatically verify test execution results? • Modelling methodology [ASE’13] • How to identify the most effective inputs? • Best size of inputs? Which data types to consider? ! How many data faults should be present? ! Which constraints should be broken? • Meta-heuristic search approach [ASE’15]
  • 10. 10 Meta-heuristic search approach Model-based mutation to generate inputs Model-based validation as oracle + Coverage objectives to evaluate inputs +
  • 11. Data Modelling Methodology Input Output Modelling using Class Diagrams + OCL Constraints
  • 12. Software Under Test Output Constraints Checking Test Input Data Model Violated Constraints Model Instance Field Data Mutation Based Generation Model-Based Mutation Testing
  • 13. Generic mutation operators (reusable across projects) Class     Instance   Duplica/on   A2ribute   Replacement   with  Random   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.  
  • 14. Generic mutation operators (reusable across projects) Configurations for operators (fit the fault model) Transmission Vcdu 1 1 1 versionNumber : Integer spaceCraftId : Integer checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   1..* A2ribute   Replacement   with  Random  
  • 15. Generic mutation operators (reusable across projects) Configurations for operators (fit the fault model) Transmission Vcdu 1 1 1 versionNumber : Integer spaceCraftId : Integer checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   1..* A2ribute   Replacement   with  Random   Configuration for mutation operators is provided by UML stereotypes used to select mutation targets ! !
  • 16. Generic mutation operators (reusable across projects) Transmission Vcdu 1 1 1 <Identifier> versionNumber : Integer spaceCraftId : Integer checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   1..* A2ribute   Replacement   with  Random   Configuration for mutation operators is provided by UML stereotypes used to select mutation targets ! ! Configurations for operators (fit the fault model)
  • 17. Generic mutation operators (reusable across projects) Transmission Vcdu 1 1 1 <Identifier> versionNumber : Integer spaceCraftId : Integer checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Replacement   with  Random   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   1..* Configurations for operators (fit the fault model) Configuration for mutation operators is provided by UML stereotypes used to select mutation targets ! !
  • 18. Test Input Field Data Mutation Based Generation Test Input Test Input Test Input Test Input Test Input Effective Small size By measuring specific objectives. How to generate an effective and small test suite? How to evaluate the effectiveness of a test suite? By means of a meta-heuristic search algorithm.
  • 19. Generic mutation operators (reusable across projects) Configurations for operators (fit the fault model) Transmission Vcdu 1 1 1 <Identifier> versionNumber : Integer spaceCraftId : Integer <Derived> checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Replacement   with  Random   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   •  UML stereotypes to select ! mutation targets •  UML stereotype to identify the ! fields to update! ! 1..* 19
  • 20. Generic mutation operators (reusable across projects) Configurations for operators (fit the fault model) Transmission Vcdu 1..* 1 1 1 <Identifier> versionNumber : Integer spaceCraftId : Integer <Derived> checksum : Integer Header Class     Instance   Duplica/on   A2ribute   Replacement   with  Random   A2ribute   Bit   Flipping   Class     Instance   Removal   Class     Instances   Swapping   A2ribute   Replacement   Boundary  Cond.   •  UML stereotypes to select ! mutation targets •  UML stereotype to identify the ! fields to update •  OCL queries to express complex ! target selection criteria 20
  • 21. How to determine if the generated test suite is effective? 21
  • 22. Test Effectiveness Objectives •  O1: Include input data that covers all the classes of the data model •  Data has a complex structure •  O2: Cover all the data faults of a fault model •  A variety of faults might be present in a system •  O3: Cover all the clauses of the input/output constraints •  Input/output constraints can have multiple conditions under which a given output is expected •  O4: Maximise code coverage •  Implemented features should be fully executed
  • 23. O1: Cover all the classes of the data model • Coverage of each class of a data model is tracked • Test input covers a class if it contains at least one instance of the class
  • 24. O1: Cover all the classes of the data model Vcdu ActivePacketZone 1 1 1 versionNumber : Integer vcFrameCount : Integer checksum : Integer Header 1..* Transmission Packet IdlePacketZone PacketZone 1 1..* 1 1
  • 25. O1: Cover all the classes of the data model Objective Targets Test Inputs Inp1 Inp2 Inp3 Vcdu X X X Header X X X IdlePacketZone X X ActivePacketZone X X Packet X X X
  • 26. O2: Cover the fault model • Attributes and class instances of the input data model can be mutated in different ways by different mutation operators • Keep track of which mutation operator(s) have been applied to a specific class/attribute instance when generating test data
  • 27. O2: Cover the fault model Vcdu Packet 1 1 1 versionNumber : Integer vcFrameCount : Integer Header 1..*
  • 28. O2: Cover the fault model Vcdu Packet 1 1 1 versionNumber : Integer vcFrameCount : Integer Header 1..* Header.versionNumber::ReplaceWithRandom Attribute Instance Mutation Operator
  • 29. O2: Cover the fault model Vcdu Packet 1 1 1 versionNumber : Integer vcFrameCount : Integer Header 1..* Header.vcFrameCount::ReplaceWithRandom
  • 30. O2: Cover the fault model Vcdu Packet 1 1 1 versionNumber : Integer vcFrameCount : Integer Header 1..* Packet::InstanceDuplication Packet::InstanceRemoval Packet::InstanceSwapping Class Instance Mutation Operator
  • 31. O2: Cover the fault model Objective Targets Test Inputs Inp1 Inp2 Inp3 Header.versionNumber::ReplaceWithRandom X X Header.vcFrameCount::ReplaceWithRandom X Packet::InstanceRemoval Packet::InstanceDuplication Packet::InstanceSwapping X
  • 32. O3: Cover clauses of constraints • An input/output constraint shows the output expected under a given input condition • The test suite should stress all the conditions under which a given output is expected
  • 33. O3: Cover clauses of constraints context Vcdu inv: if previousFrameCount < 16777215 then frameCount <> previousFrameCount + 1 else previousFrameCount = 16777215 and frameCount <> 0 endif implies VcduEvent.allInstances()èexists(e | e.eventType = COUNTER_JUMP)
  • 34. O3: Cover clauses of constraints context Vcdu inv: if previousFrameCount < 16777215 then frameCount <> previousFrameCount + 1 else previousFrameCount = 16777215 and frameCount <> 0 endif implies VcduEvent.allInstances()èexists(e | e.eventType = COUNTER_JUMP) For each clause, keep track of whether a test input makes the clause true and/or false.
  • 35. O3: Cover clauses of constraints Objective Targets Test Inputs Inp1 Inp2 Inp3 True : previousFrameCount < 16777215 X X X True : frameCount <> previousFrameCount + 1 X True : previousFrameCount = 16777215 True : frameCount <> 0 X X X False : previousFrameCount < 16777215 False : frameCount <> previousFrameCount + 1 X X X False : previousFrameCount = 16777215 X X X False : frameCount <> 0
  • 36. O4: Maximize code coverage • Execute JaCoCo to measure the instructions covered by each test case Objective Targets Test Inputs Inp1 Inp2 Inp3 SesDaq.java : Instruction 10 X X X SesDaq.java : Instruction 11 X … • Limitation: Requires the execution of the system under test
  • 37. Evolutionary Algorithm with Archive How to generate an effective and small test suite? Huge amount of test inputs can be generated Exhaustive test generation not feasible
  • 38. Sample new chunk Field Data With Seeding No Seeding
  • 39. Sample new chunk Field Data Field data (satellite transmission): With Seeding No Seeding No seeding: frequent packet types selected more often No seeding: packets randomly selected
  • 40. Sample new chunk Field Data Field data (satellite transmission): With Seeding No Seeding With seeding: all packet types same probability With seeding: packet types randomly selected
  • 41. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data filtering pruning Assessment
  • 43. Objective 1 Data model coverage Vcdu X X X Header X X X IdlePacketZone X X ActivePacketZone X X X Packet X X X Objective 2 Fault model! coverage Header.versionNumber::ReplaceWithRandom X X Header.vcFrameCount::ReplaceWithRandom X Packet::InstanceRemoval X Packet::InstanceDuplication Packet::InstanceSwapping Objective 3 Constraints ! clause ! coverage True : previousFrameCount < 16777215 X X X True : frameCount <> previousFrameCount + 1 X True : previousFrameCount = 16777215 True : frameCount <> 0 X X X False : previousFrameCount < 16777215 False : frameCount <> previousFrameCount + 1 X X X False : previousFrameCount = 16777215 X X X Objective 4 Code cov. SesDaq.java : Line 10 X X X SesDaq.java : Line 11 X
  • 44. Objective 1 Data model coverage Vcdu X X X Header X X X IdlePacketZone X X ActivePacketZone X X X Packet X X X Objective 2 Fault model! coverage Header.versionNumber::ReplaceWithRandom X X Header.vcFrameCount::ReplaceWithRandom X Packet::InstanceRemoval X Packet::InstanceDuplication Packet::InstanceSwapping Objective 3 Constraints ! clause ! coverage True : previousFrameCount < 16777215 X X X True : frameCount <> previousFrameCount + 1 X True : previousFrameCount = 16777215 True : frameCount <> 0 X X X False : previousFrameCount < 16777215 False : frameCount <> previousFrameCount + 1 X X X False : previousFrameCount = 16777215 X X X Objective 4 Code cov. SesDaq.java : Line 10 X X X SesDaq.java : Line 11 X
  • 45. Objective 1 Data model coverage Vcdu X X X Header X X X IdlePacketZone X X ActivePacketZone X X X Packet X X X Objective 2 Fault model! coverage Header.versionNumber::ReplaceWithRandom X X Header.vcFrameCount::ReplaceWithRandom X Packet::InstanceRemoval X Packet::InstanceDuplication Packet::InstanceSwapping Objective 3 Constraints ! clause ! coverage True : previousFrameCount < 16777215 X X X True : frameCount <> previousFrameCount + 1 X True : previousFrameCount = 16777215 True : frameCount <> 0 X X X False : previousFrameCount < 16777215 False : frameCount <> previousFrameCount + 1 X X X False : previousFrameCount = 16777215 X X X Objective 4 Code cov. SesDaq.java : Line 10 X X X SesDaq.java : Line 11 X
  • 46. Objective Targets Test Inputs Inp1 Inp2 Inp3 Objective 1 Data model coverage Vcdu X X X Header X X X IdlePacketZone X X ActivePacketZone X X X Packet X X X Objective 2 Fault model coverage Header.versionNumber::ReplaceWithRandom X X Header.vcFrameCount::ReplaceWithRandom X Packet::InstanceRemoval X Packet::InstanceDuplication Packet::InstanceSwapping Objective 3 Constraints ! clause ! coverage True : previousFrameCount < 16777215 X X X True : frameCount <> previousFrameCount + 1 X True : previousFrameCount = 16777215 True : frameCount <> 0 X X X False : previousFrameCount < 16777215 False : frameCount <> previousFrameCount + 1 X X X False : previousFrameCount = 16777215 X X X False : frameCount <> 0 Objective 4 Code Coverage SesDaq.java : Line 10 X X X SesDaq.java : Line 11 X
  • 47. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data filtering pruning Assessment Test Inputs Execute on System And Validate Results Constraint Violations
  • 48. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment
  • 49. Research questions •  RQ1: How does the search algorithm compare with random and state-of- the-art approaches? •  RQ2: How does fitness based on code coverage affect performance? •  RQ3: How does seeding affect performance? •  RQ4: What are the configuration parameters that affect performance? •  RQ5: What configuration should be used in practice? •  Case study: Satellite DAQ developed by SES
  • 50. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p seeding = 0, 0.5 p mutation = 0, 0.5, 1 p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 Stop after: 50k, 100k, 150k, 200k, 250k Coverage-fitness: on, off This leads to 3 × 3 × 3 × 2 × 2 = 108 configurations 108 × 5 = 540 different configurations of search algorithm Each experiment repeated 5 times to account for randomness: 540 × 5 = 2700 runs
  • 51. RQ1: How does the search algorithm compare with random and state-of-the-art approaches? Budget (in Cadus) Configuration Coverage # of Tests 50k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23424.4
 23424.4
 23386.8 28.4
 28.4
 43.2 100k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23487.8
 23487.8 23436.8 31.6 31.6 52.0 150k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23502.0 23502.0 23453.4 34.0 34.0 57.8 200k Best: r=0.5,m=0.5,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23519.6 23513.4 23465.8 34.6 36.0 60.2 250k Best: r=0.5,m=1,n=10
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23538.6 23515.2 23482.6 38.4 36.4 62.4 r, probability of random sampling m, probably of applying mutation when sampling n, maximum number of allowed mutations in a test (Seeding not used) Best, best configuration for the given search budget BO, best configuration, on average, over all the search budgets Rand, random approach
  • 52. RQ1: How does the search algorithm compare with random and state-of-the-art approaches? • Random approach • Always sample and mutate; do not reuse archived items • Previous approach (ICST’15) • Stops test input generation when all attributes have been mutated at least once by each applicable mutation operator • Search-based algorithm • Best overall configuration • Best configuration for a given budget
  • 53. RQ1: How does the search algorithm compare with random and state-of-the-art approaches? Budget Configuration Coverage # of Tests ICST’15 23283.0 43.0 50k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Random 23424.4
 23424.4
 23386.8 28.4
 28.4
 43.2 100k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23487.8
 23487.8 23436.8 31.6 31.6 52.0 150k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23502.0 23502.0 23453.4 34.0 34.0 57.8 200k Best: r=0.5,m=0.5,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23519.6 23513.4 23465.8 34.6 36.0 60.2 250k Best: r=0.5,m=1,n=10
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23538.6 23515.2 23482.6 38.4 36.4 62.4 Search algorithm achieves better coverage than both random and the ICST’15 approaches. Search also generates significantly smaller test suites.
  • 54. RQ1: How does the search algorithm compare with random and state-of-the-art approaches? Budget Configuration Coverage # of Tests ICST’15 23283.0 43.0 50k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Random 23424.4
 23424.4
 23386.8 28.4
 28.4
 43.2 100k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Random 23487.8
 23487.8 23436.8 31.6 31.6 52.0 150k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Random 23502.0 23502.0 23453.4 34.0 34.0 57.8 200k Best: r=0.5,m=0.5,n=100
 BO: r=0.5,m=1,n=100
 Random 23519.6 23513.4 23465.8 34.6 36.0 60.2 250k Best: r=0.5,m=1,n=10
 BO: r=0.5,m=1,n=100
 Random 23538.6 23515.2 23482.6 38.4 36.4 62.4 At the cost of a larger test suite. With higher search budgets, search can achieve greater coverage.
  • 55. RQ1: How does the search algorithm compare with random and state-of-the-art approaches? 55 Budget Configuration Coverage # of Tests ICST’15 23283.0 43.0 50k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23424.4
 23424.4
 23386.8 28.4
 28.4
 43.2 100k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23487.8
 23487.8 23436.8 31.6 31.6 52.0 150k Best: r=0.5,m=1,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23502.0 23502.0 23453.4 34.0 34.0 57.8 200k Best: r=0.5,m=0.5,n=100
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23519.6 23513.4 23465.8 34.6 36.0 60.2 250k Best: r=0.5,m=1,n=10
 BO: r=0.5,m=1,n=100
 Rand: r=1,m=1,n=1 23538.6 23515.2 23482.6 38.4 36.4 62.4 Search algorithm achieves better coverage than a random approach. APT achieved an average coverage of 23283 instructions. Less than both search and random. Search also generates significantly smaller test suites.
  • 56. RQ2: How does fitness based on code coverage affect performance? Budget Code Seeding Configuration Coverage # of Tests # of Mut. 50k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.5,m=1,n=10 BO: r=0.3,m=0,n=10 23361.4 23424.4 23417.2 23428.4 23401.8 17.0 28.4 21.0 34.2 27.0 4.8 3.6 4.0 3.2 4.3 100k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.3,m=1,n=10
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23404.4 23487.8 23442.2 23487.0 23487.0 16.8 31.6 21.0 33.2 33.2 8.2 4.9 6.4 5.6 5.6 150k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23418.4 23502.0 23447.4 23528.2 23528.2 28.2 34.0 23.4 35.6 35.6 4.0 6.0 7.5 6.5 6.5 200k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=0.5,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23426.0 23519.6 23456.0 23551.0 23551.0 28.0 34.6 23.2 37.2 37.2 4.7 6.7 9.2 7.0 7.0 250k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=10
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23433.2 23538.6 23461.8 23554.4 23554.4 28.6 38.4 23.6 37.2 37.2 5.4 7.1 10.3 7.4 7.4 r, probability of random sampling m, probably of applying mutation when sampling n, maximum number of allowed mutations in a test Best, best configuration for the given search budget BO, best configuration, on average, over all the search budgets
  • 57. RQ2: How does fitness based on code coverage affect performance? Budget Code Seeding Configuration Coverage # of Tests # of Mut. 50k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.5,m=1,n=10 BO: r=0.3,m=0,n=10 23361.4 23424.4 23417.2 23428.4 23401.8 17.0 28.4 21.0 34.2 27.0 4.8 3.6 4.0 3.2 4.3 100k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.3,m=1,n=10
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23404.4 23487.8 23442.2 23487.0 23487.0 16.8 31.6 21.0 33.2 33.2 8.2 4.9 6.4 5.6 5.6 150k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23418.4 23502.0 23447.4 23528.2 23528.2 28.2 34.0 23.4 35.6 35.6 4.0 6.0 7.5 6.5 6.5 200k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=0.5,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23426.0 23519.6 23456.0 23551.0 23551.0 28.0 34.6 23.2 37.2 37.2 4.7 6.7 9.2 7.0 7.0 250k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=10
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23433.2 23538.6 23461.8 23554.4 23554.4 28.6 38.4 23.6 37.2 37.2 5.4 7.1 10.3 7.4 7.4 r, probability of random sampling m, probably of applying mutation when sampling n, maximum number of allowed mutations in a test Best, best configuration for the given search budget BO, best configuration, on average, over all the search budgets ess ger
  • 58. RQ2: How does fitness based on code coverage affect performance? • For each search budget: • Identified the best configuration with/without the code coverage objective enabled Code coverage objective results in test suites with higher code coverage. At the expense of a larger test suite (50% more test cases).
  • 59. RQ3: How does seeding affect performance? • For each search budget: • Identified the best configuration with/without seeding Seeding is always part of the configurations that achieve the highest code coverage or lowest number of test cases (for search budgets above 150k).
  • 60. RQ4: What are the configuration parameters that affect performance?
  • 61. RQ3: How does smart seeding affect performance? Budget Code Seeding Configuration Coverage # of Tests # of Mut. 50k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.5,m=1,n=10 BO: r=0.3,m=0,n=10 23361.4 23424.4 23417.2 23428.4 23401.8 17.0 28.4 21.0 34.2 27.0 4.8 3.6 4.0 3.2 4.3 100k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.3,m=1,n=10
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23404.4 23487.8 23442.2 23487.0 23487.0 16.8 31.6 21.0 33.2 33.2 8.2 4.9 6.4 5.6 5.6 150k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23418.4 23502.0 23447.4 23528.2 23528.2 28.2 34.0 23.4 35.6 35.6 4.0 6.0 7.5 6.5 6.5 200k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=0.5,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23426.0 23519.6 23456.0 23551.0 23551.0 28.0 34.6 23.2 37.2 37.2 4.7 6.7 9.2 7.0 7.0 250k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=10
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23433.2 23538.6 23461.8 23554.4 23554.4 28.6 38.4 23.6 37.2 37.2 5.4 7.1 10.3 7.4 7.4 r, probability of random sampling m, probably of applying mutation when sampling n, maximum number of allowed mutations in a test Best, best configuration for the given search budget BO, best configuration, on average, over all the search budgets
  • 62. RQ3: How does smart seeding affect performance? Budget Code Seeding Configuration Coverage # of Tests # of Mut. 50k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.5,m=1,n=10 BO: r=0.3,m=0,n=10 23361.4 23424.4 23417.2 23428.4 23401.8 17.0 28.4 21.0 34.2 27.0 4.8 3.6 4.0 3.2 4.3 100k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.3,m=1,n=10
 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=10 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23404.4 23487.8 23442.2 23487.0 23487.0 16.8 31.6 21.0 33.2 33.2 8.2 4.9 6.4 5.6 5.6 150k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23418.4 23502.0 23447.4 23528.2 23528.2 28.2 34.0 23.4 35.6 35.6 4.0 6.0 7.5 6.5 6.5 200k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=0.5,n=100
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23426.0 23519.6 23456.0 23551.0 23551.0 28.0 34.6 23.2 37.2 37.2 4.7 6.7 9.2 7.0 7.0 250k F T F T T 0.0 0.0 0.5 0.5 0.5 Best: r=0.8,m=1,n=100 Best: r=0.5,m=1,n=10
 Best: r=0.5,m=1,n=100 Best: r=0.3,m=0,n=10 BO: r=0.3,m=0,n=10 23433.2 23538.6 23461.8 23554.4 23554.4 28.6 38.4 23.6 37.2 37.2 5.4 7.1 10.3 7.4 7.4 r, probability of random sampling m, probably of applying mutation when sampling n, maximum number of allowed mutations in a test Best, best configuration for the given search budget BO, best configuration, on average, over all the search budgets For search budgets greater than 150k, smart seeding achieves the highest coverage or lowest number of test cases.
  • 63. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? Coverage fitness applied in top configurations. Never by worst ones.
  • 64. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k Coverage fitness applied in top configurations. Never by worst ones.
  • 65. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? For small search budgets, search achieves better results when more focused on exploitation (using archived inputs).
  • 66. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k For small search budgets, search achieves better results when more focused on exploitation (using archived inputs).
  • 67. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? For larger search budgets, with no seeding or coverage, putting more emphasis on exploration (new samples) pays off.
  • 68. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k For larger search budgets, with no seeding or coverage, putting more emphasis on exploration (new samples) pays off.
  • 69. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? If either seeding OR coverage fitness used, the need to explore the search landscape decreases.
  • 70. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k If either seeding OR coverage fitness used, the need to explore the search landscape decreases.
  • 71. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? If either seeding AND coverage fitness used, the need to explore the search landscape further decreases.
  • 72. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k If either seeding AND coverage fitness used, the need to explore the search landscape further decreases.
  • 73. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Constraint Violations filtering p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ4: What are the configuration parameters that affect performance? Average number of mutations per test input remains low (~10).
  • 74. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment Average number of mutations per test input remains low (~10). p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k
  • 75. Apply a mutation Put in Archive Copy from archive Sample new chunk Field Data Test Inputs Execute on System And Validate Results Constraint Violations filtering pruning Assessment p sampling = 0.3, 0.5, 0.8 Max mutations = 1, 10, 100 p seeding = 0, 0.5 p mutation = 0, 0.5, 1 Coverage-fitness: on, off Stop after: 50k, 100k, 150k, 200k, 250k RQ5: What configuration should be used in practice?
  • 76. RQ5: What configurations should be used in practice? • Small probability of sampling new test data at random • (p=0.3) ! • Do not mutate new inputs immediately when sampled! • Limit the max number of mutations (max mutations = 10) • Seeding and code coverage are used
  • 77. Higher coverage Smaller test suites