SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction

Constraint-based Fitness Function
for Search-based Software Testing

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

Abdelilah Sakti

Yann-Ga¨l Gu´h´neuc
e
e e

Gilles Pesant

Department of Computer and Software Engineering
´
Ecole Polytechnique de Montr´al, Qu´bec, Canada
e
e

May 21, 2013
CPAIOR, Yorktown Heights

Pattern Trace Identification, Detection, and Enhancement in Java
SOftware Cost-effective Change and Evolution Research Lab
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

2 / 14

What is the cost of a programming error ?
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

2 / 14

What is the cost of a programming error ?
Every year inadequate infrastructure software costs the U.S.
economy around 60 billion $.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

2 / 14

What is the cost of a programming error ?
Every year inadequate infrastructure software costs the U.S.
economy around 60 billion $.
Between 1985 and 1987 : the radiotherapy
machine Therac-25 sent to patients a X-ray dose
100 times greater than expected.
At least five deaths ;
Several other patients were severely affected
by radiation.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

What is the cost of a programming error ?
Every year inadequate infrastructure software costs the U.S.
economy around 60 billion $.
Between 1985 and 1987 : the radiotherapy
machine Therac-25 sent to patients a X-ray dose
100 times greater than expected.
At least five deaths ;
Several other patients were severely affected
by radiation.

Only a high quality software can reduce errors cost.
Testing is an important technique for validating and
checking the correctness of software.
Despite that the testing may cost more than 50% of the
budget of critical software, it remains an inevitable
phase in the life cycle of software.

2 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

3 / 14

Software testing
Formal Methods
Is a way of modelling and verifying a software by using
mathematics or logic techniques ;
Aims to prove and argue that a software respect some
properties (e.g., an undesired behaviour will never
occur).
Some complex programmes are difficult or impossible to
model.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

Software testing
Formal Methods
Is a way of modelling and verifying a software by using
mathematics or logic techniques ;
Aims to prove and argue that a software respect some
properties (e.g., an undesired behaviour will never
occur).
Some complex programmes are difficult or impossible to
model.

Informal or Pragmatic Techniques
Performed by executing a real implementation on a
small subset of all possible inputs data that satisfies
some criteria (e.g., all statements, all branches...) ;
Aims to show the presence of errors.

3 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

Software testing
Formal Methods
Is a way of modelling and verifying a software by using
mathematics or logic techniques ;
Aims to prove and argue that a software respect some
properties (e.g., an undesired behaviour will never
occur).
Some complex programmes are difficult or impossible to
model.

Informal or Pragmatic Techniques
Performed by executing a real implementation on a
small subset of all possible inputs data that satisfies
some criteria (e.g., all statements, all branches...) ;
Aims to show the presence of errors.
One main challenge is automating inputs data generation.

3 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

4 / 14

Search Based Software Testing (SBST)
Constraint-based
Fitness Function
for Search-based
Software Testing

Search Based Software Testing (SBST)

Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Fitness Evaluation

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

The Fitness Evaluation is the core of SBST.

4 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing

Search Based Software Testing (SBST)

Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
What is the cost of a
programming error ?
Software testing
Search Based Software
Testing (SBST)

Fitness Evaluation

Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

The Fitness Evaluation is the core of SBST.
An evolution in the fitness evaluation may bring a significant
enhancement to SBST
4 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

5 / 14

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

tinyy == z

tinyy > 0

tinyx == 10

Evaluation
Conclusions

5 / 14

tinyTarget
tinyEND
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

tinyy > 0

tinyx == 10

Evaluation
Conclusions

5 / 14

tinyTarget
tinyEND
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation
Conclusions

5 / 14

tinyTarget
tinyEND
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
3

fSE
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
3+ 90
91

fSE
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
3+ 90
91

fSE
90
91
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
3+ 90
91

fSE
90
91

+ 31
32
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0
Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
3+ 90
91

90
91

+ 31
32

fSE
+0
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0

i2

Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
90
3+ 91 = 3.9890
2 + 21 =2.9545
22

fSE
31
+ 32 +0= 1.9577
+ 21 + 20 =1.9068
22
21

90
91

0
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

Motivating Example
tinyx, y, z

1
2

Introduction

3

Motivating
Example

5

Fitness Function
Based on Branch
Hardness

4
6

int sample(int x,int y,int z){
if(y==z)
if(y>0)
if(x==10)
...//Target
}

i1 : (10,−30,60)
i2 : (30, −20, −20)

tinyy == z

i1
tinyy > 0

i2

Critical Branch of i1

tinyx == 10

Evaluation

tinyTarget

Conclusions

tinyEND

Test candidate
i1
i2

5 / 14

fAL
90
3+ 91 = 3.9890
2 + 21 =2.9545
22

fSE
31
+ 32 +0= 1.9577
+ 21 + 20 =1.9068
22
21

90
91

0

Both fitness functions favour i2 over i1 because either they
do not consider non-executed branches or they ignore some
branches’ future.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

6 / 14

Fitness Function Based on Branch Hardness
Combines SBST with static analysis of the
non-executed branches.
Prioritizes branches according to how hard it is to
satisfy them.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

6 / 14

Fitness Function Based on Branch Hardness
Combines SBST with static analysis of the
non-executed branches.
Prioritizes branches according to how hard it is to
satisfy them.
Defines the difficulty to satisfy a constraint in terms of
its arity and its projection tightness (the ratio of the
approximate number of solutions to the size of its
search space).
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

6 / 14

Fitness Function Based on Branch Hardness
Combines SBST with static analysis of the
non-executed branches.
Prioritizes branches according to how hard it is to
satisfy them.
Defines the difficulty to satisfy a constraint in terms of
its arity and its projection tightness (the ratio of the
approximate number of solutions to the size of its
search space).
1. The lower the arity of the constraint, the less freedom
we have to choose some of its variables in order to
evolve the test candidate.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

6 / 14

Fitness Function Based on Branch Hardness
Combines SBST with static analysis of the
non-executed branches.
Prioritizes branches according to how hard it is to
satisfy them.
Defines the difficulty to satisfy a constraint in terms of
its arity and its projection tightness (the ratio of the
approximate number of solutions to the size of its
search space).
1. The lower the arity of the constraint, the less freedom
we have to choose some of its variables in order to
evolve the test candidate.
2. A projection tightness close to 0 will indicate high
constrainedness and hardness to satisfy a constraint.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

7 / 14

Branch-Hardness Metrics
Difficulty Coefficient (DC)
DC is a possible representation of the hardness of a
branch ;
Each constraint has its own DC that is determined
according to its arity and tightness ;
DC(c) = B 2 ·

1
arityc

+ B · (1 − tightness) + 1 .
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness

Branch-Hardness Metrics
Difficulty Coefficient (DC)
DC is a possible representation of the hardness of a
branch ;
Each constraint has its own DC that is determined
according to its arity and tightness ;
DC(c) = B 2 ·

1
arityc

+ B · (1 − tightness) + 1 .

Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

Difficulty Level (DL)
DL is based on DC ranking (r) ;
DL is a representation of a relative hardness level of a
constraint in a set of constraints ;
DL(c, C) =

7 / 14

|C|,
2r−1 · (|C| + 1),

if r = 0
.
if r > 0
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

8 / 14

Branch-Hardness Fitness Functions
DC Fitness Function (fDC )
DC is used as a penalty coefficient for breaking a
constraint ;
The target of this fitness function is determining a
standard-branch-distance.
fDC (i, C) =

c∈C

DC(c) · η(i, c) .
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness

Branch-Hardness Fitness Functions
DC Fitness Function (fDC )
DC is used as a penalty coefficient for breaking a
constraint ;
The target of this fitness function is determining a
standard-branch-distance.
fDC (i, C) =

c∈C

DC(c) · η(i, c) .

Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

DL Fitness Function (fDL )
DL is used as a constant penalty for breaking a
constraint in a set of constraints to satisfy ;
fDL (i, C) =
where (i, c) =

8 / 14

c∈C

(i, c) + η(i, c),

0,
if η(i, c) = 0
.
DL(c, C), if η(i, c) = 0
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

9 / 14

Applying fDC on our motivating example
Assume that all domains are equal to [−99, 100].

DC for each branch
1. DC(”y == z”) = 102 · 0.5 + 10 · 0.995 + 1 = 60.95 ;
2. DC(”y > 0”) = 102 · 1 + 10 · 0.5 + 1 = 106 ;
3. DC(”x == 10”) = 102 · 1 + 10 · 0.995 + 1 = 110.95.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness

Applying fDC on our motivating example
Assume that all domains are equal to [−99, 100].

DC for each branch
1. DC(”y == z”) = 102 · 0.5 + 10 · 0.995 + 1 = 60.95 ;
2. DC(”y > 0”) = 102 · 1 + 10 · 0.5 + 1 = 106 ;
3. DC(”x == 10”) = 102 · 1 + 10 · 0.995 + 1 = 110.95.

Overview
Branch-Hardness Metrics
Branch-Hardness Fitness
Functions
Applying fDC on our
motivating example

Evaluation
Conclusions

(fDC ) for each test candidate
90
fDC (i1 , C) = 60.95· 91 +106· 31 +110.95· 0 = 162.9677 ;
32
1

fDC (i2 , C) = 60.95· 0 +106· 21 +110.95· 20 = 206.8485.
1
22
21
Contrary to fAL and fSE this fitness function makes the
adequate choice by choosing the test candidate i1 instead of
i2 .

9 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Subjects and configuration
EA Results
SA Results

Conclusions

10 / 14

Evaluation
Subjects and configuration

analysed meta-heuristics and fitness functions
Two widely used meta-heuristic algorithms are
analysed : Simulated Annealing (SA) and Evolutionary
Algorithm (EA).
fAL and fSE from the literature ;
fSEL a natural combination of fAL and fSE ;
Our fitness functions fDC and fDL .
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Subjects and configuration
EA Results
SA Results

Conclusions

Evaluation
Subjects and configuration

analysed meta-heuristics and fitness functions
Two widely used meta-heuristic algorithms are
analysed : Simulated Annealing (SA) and Evolutionary
Algorithm (EA).
fAL and fSE from the literature ;
fSEL a natural combination of fAL and fSE ;
Our fitness functions fDC and fDL .

Subjects
440 synthetic test targets that were randomly generated.
20 executions for every combination of fitness function
and meta-heuristic algorithm.
If test data was not found after 25000 (respectively
100000) fitness evaluations for EA (respectively SA),
the search was terminated.

10 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing

Evaluation
EA Results

Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

EA: Comparing all fitnesses on 440 test targets
Approach Level
Symbolic Enhanced
Symbolic Enhanced with levels
Difficulty Coefficient
Difficulty Level

Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness

80

60

Evaluation
Subjects and configuration
EA Results

40

SA Results

Conclusions
20

0
0

5000

10000

15000

Evaluations

11 / 14

20000

25000
Constraint-based
Fitness Function
for Search-based
Software Testing

Evaluation
SA Results

Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant

SA: Comparing all fitnesses on 440 test targets
Approach Level
Symbolic Enhanced
Symbolic Enhanced with levels
Difficulty Coefficient
Difficulty Level

Introduction
80

Fitness Function
Based on Branch
Hardness
Evaluation
Subjects and configuration
EA Results
SA Results

Conclusions

Branch Coverage %

Motivating
Example

60

40

20

0
0e+00

2e+04

4e+04

6e+04

Evaluations

12 / 14

8e+04

1e+05
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

13 / 14

Conclusions
Two new metrics to measure the difficulty to satisfy a
constraint in the context of test case generation for
software testing are defined ;
Two new fitness functions for SBST are defined ;
Our new fitness functions are significantly more effective
and efficient than with the largely used fitness functions
from the literature.
The obtained results are promising but more
experiments must be performed.
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

Conclusions
Two new metrics to measure the difficulty to satisfy a
constraint in the context of test case generation for
software testing are defined ;
Two new fitness functions for SBST are defined ;
Our new fitness functions are significantly more effective
and efficient than with the largely used fitness functions
from the literature.
The obtained results are promising but more
experiments must be performed.

Future work
Performing more experiments on real world programs ;
Extending our approach by defining new ways to
compute projection tightness for constraints involving
other data types than integer.
13 / 14
Constraint-based
Fitness Function
for Search-based
Software Testing
Abdelilah Sakti,
Yann-Ga¨l
e
Gu´h´neuc, Gilles
e e
Pesant
Introduction
Motivating
Example
Fitness Function
Based on Branch
Hardness
Evaluation
Conclusions

14 / 14

Thank you
Questions ?

Mais conteúdo relacionado

Mais procurados

AI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOpsAI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOps
Chakkrit (Kla) Tantithamthavorn
 
Towards formulating dynamic model for predicting defects in system testing us...
Towards formulating dynamic model for predicting defects in system testing us...Towards formulating dynamic model for predicting defects in system testing us...
Towards formulating dynamic model for predicting defects in system testing us...
Journal Papers
 
Testing and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and nTesting and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and n
IAEME Publication
 
Automated exam question set generator using utility based agent and learning ...
Automated exam question set generator using utility based agent and learning ...Automated exam question set generator using utility based agent and learning ...
Automated exam question set generator using utility based agent and learning ...
Journal Papers
 
Gui path oriented test generation algorithms paper
Gui path oriented test generation algorithms paperGui path oriented test generation algorithms paper
Gui path oriented test generation algorithms paper
Izzat Alsmadi
 
Model based fault diagnosis techniques 2e
Model based fault diagnosis techniques 2eModel based fault diagnosis techniques 2e
Model based fault diagnosis techniques 2e
Springer
 

Mais procurados (19)

Verification and validation of knowledge bases using test cases generated by ...
Verification and validation of knowledge bases using test cases generated by ...Verification and validation of knowledge bases using test cases generated by ...
Verification and validation of knowledge bases using test cases generated by ...
 
AI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOpsAI-Driven Software Quality Assurance in the Age of DevOps
AI-Driven Software Quality Assurance in the Age of DevOps
 
Towards formulating dynamic model for predicting defects in system testing us...
Towards formulating dynamic model for predicting defects in system testing us...Towards formulating dynamic model for predicting defects in system testing us...
Towards formulating dynamic model for predicting defects in system testing us...
 
Testing and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and nTesting and test case generation by using fuzzy logic and n
Testing and test case generation by using fuzzy logic and n
 
Wcre13b.ppt
Wcre13b.pptWcre13b.ppt
Wcre13b.ppt
 
Automated exam question set generator using utility based agent and learning ...
Automated exam question set generator using utility based agent and learning ...Automated exam question set generator using utility based agent and learning ...
Automated exam question set generator using utility based agent and learning ...
 
Effectiveness of test case
Effectiveness of test caseEffectiveness of test case
Effectiveness of test case
 
SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13
 
Gui path oriented test generation algorithms paper
Gui path oriented test generation algorithms paperGui path oriented test generation algorithms paper
Gui path oriented test generation algorithms paper
 
A survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithmsA survey of fault prediction using machine learning algorithms
A survey of fault prediction using machine learning algorithms
 
JUnit with_mocking
JUnit with_mockingJUnit with_mocking
JUnit with_mocking
 
Integrating goals after prioritization and
Integrating goals after prioritization andIntegrating goals after prioritization and
Integrating goals after prioritization and
 
Wcre13a.ppt
Wcre13a.pptWcre13a.ppt
Wcre13a.ppt
 
Software Testing Outline Performances and Measurements
Software Testing Outline Performances and MeasurementsSoftware Testing Outline Performances and Measurements
Software Testing Outline Performances and Measurements
 
20 54-1-pb
20 54-1-pb20 54-1-pb
20 54-1-pb
 
On the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software TestingOn the application of SAT solvers for Search Based Software Testing
On the application of SAT solvers for Search Based Software Testing
 
Model based fault diagnosis techniques 2e
Model based fault diagnosis techniques 2eModel based fault diagnosis techniques 2e
Model based fault diagnosis techniques 2e
 
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...IRJET -  	  Neural Network based Leaf Disease Detection and Remedy Recommenda...
IRJET - Neural Network based Leaf Disease Detection and Remedy Recommenda...
 
1.basics of software testing
1.basics of software testing 1.basics of software testing
1.basics of software testing
 

Semelhante a Cpaior13.ppt

Development of software defect prediction system using artificial neural network
Development of software defect prediction system using artificial neural networkDevelopment of software defect prediction system using artificial neural network
Development of software defect prediction system using artificial neural network
IJAAS Team
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
Rachel Davis
 
Dipali_Jambhale_7+ Yrs_Testing_Professional
Dipali_Jambhale_7+ Yrs_Testing_ProfessionalDipali_Jambhale_7+ Yrs_Testing_Professional
Dipali_Jambhale_7+ Yrs_Testing_Professional
Dipa Tripathi
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)
James Clause
 

Semelhante a Cpaior13.ppt (20)

Cpaior13.ppt
Cpaior13.pptCpaior13.ppt
Cpaior13.ppt
 
Development of software defect prediction system using artificial neural network
Development of software defect prediction system using artificial neural networkDevelopment of software defect prediction system using artificial neural network
Development of software defect prediction system using artificial neural network
 
Software testing
Software testingSoftware testing
Software testing
 
MIT521 software testing (2012) v2
MIT521   software testing  (2012) v2MIT521   software testing  (2012) v2
MIT521 software testing (2012) v2
 
Generation of Search Based Test Data on Acceptability Testing Principle
Generation of Search Based Test Data on Acceptability Testing PrincipleGeneration of Search Based Test Data on Acceptability Testing Principle
Generation of Search Based Test Data on Acceptability Testing Principle
 
D017642026
D017642026D017642026
D017642026
 
Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)
 
Different Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application TestingDifferent Methodologies For Testing Web Application Testing
Different Methodologies For Testing Web Application Testing
 
Dipali_Jambhale_7+ Yrs_Testing_Professional
Dipali_Jambhale_7+ Yrs_Testing_ProfessionalDipali_Jambhale_7+ Yrs_Testing_Professional
Dipali_Jambhale_7+ Yrs_Testing_Professional
 
Chapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.pptChapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.ppt
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
 
A Complexity Based Regression Test Selection Strategy
A Complexity Based Regression Test Selection StrategyA Complexity Based Regression Test Selection Strategy
A Complexity Based Regression Test Selection Strategy
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)
 
Thesis+of+abdelilah+sakti.ppt
Thesis+of+abdelilah+sakti.pptThesis+of+abdelilah+sakti.ppt
Thesis+of+abdelilah+sakti.ppt
 
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
 
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
 
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
Software Testing: Issues and Challenges of Artificial Intelligence & Machine ...
 
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTINGFROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
FROM THE ART OF SOFTWARE TESTING TO TEST-AS-A-SERVICE IN CLOUD COMPUTING
 
From the Art of Software Testing to Test-as-a-Service in Cloud Computing
From the Art of Software Testing to Test-as-a-Service in Cloud ComputingFrom the Art of Software Testing to Test-as-a-Service in Cloud Computing
From the Art of Software Testing to Test-as-a-Service in Cloud Computing
 
Testing ppt
Testing pptTesting ppt
Testing ppt
 

Mais de Ptidej Team

Mais de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Cpaior13.ppt

  • 1. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Constraint-based Fitness Function for Search-based Software Testing Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions Abdelilah Sakti Yann-Ga¨l Gu´h´neuc e e e Gilles Pesant Department of Computer and Software Engineering ´ Ecole Polytechnique de Montr´al, Qu´bec, Canada e e May 21, 2013 CPAIOR, Yorktown Heights Pattern Trace Identification, Detection, and Enhancement in Java SOftware Cost-effective Change and Evolution Research Lab
  • 2. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 2 / 14 What is the cost of a programming error ?
  • 3. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 2 / 14 What is the cost of a programming error ? Every year inadequate infrastructure software costs the U.S. economy around 60 billion $.
  • 4. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 2 / 14 What is the cost of a programming error ? Every year inadequate infrastructure software costs the U.S. economy around 60 billion $. Between 1985 and 1987 : the radiotherapy machine Therac-25 sent to patients a X-ray dose 100 times greater than expected. At least five deaths ; Several other patients were severely affected by radiation.
  • 5. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions What is the cost of a programming error ? Every year inadequate infrastructure software costs the U.S. economy around 60 billion $. Between 1985 and 1987 : the radiotherapy machine Therac-25 sent to patients a X-ray dose 100 times greater than expected. At least five deaths ; Several other patients were severely affected by radiation. Only a high quality software can reduce errors cost. Testing is an important technique for validating and checking the correctness of software. Despite that the testing may cost more than 50% of the budget of critical software, it remains an inevitable phase in the life cycle of software. 2 / 14
  • 6. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 3 / 14 Software testing Formal Methods Is a way of modelling and verifying a software by using mathematics or logic techniques ; Aims to prove and argue that a software respect some properties (e.g., an undesired behaviour will never occur). Some complex programmes are difficult or impossible to model.
  • 7. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions Software testing Formal Methods Is a way of modelling and verifying a software by using mathematics or logic techniques ; Aims to prove and argue that a software respect some properties (e.g., an undesired behaviour will never occur). Some complex programmes are difficult or impossible to model. Informal or Pragmatic Techniques Performed by executing a real implementation on a small subset of all possible inputs data that satisfies some criteria (e.g., all statements, all branches...) ; Aims to show the presence of errors. 3 / 14
  • 8. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions Software testing Formal Methods Is a way of modelling and verifying a software by using mathematics or logic techniques ; Aims to prove and argue that a software respect some properties (e.g., an undesired behaviour will never occur). Some complex programmes are difficult or impossible to model. Informal or Pragmatic Techniques Performed by executing a real implementation on a small subset of all possible inputs data that satisfies some criteria (e.g., all statements, all branches...) ; Aims to show the presence of errors. One main challenge is automating inputs data generation. 3 / 14
  • 9. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 4 / 14 Search Based Software Testing (SBST)
  • 10. Constraint-based Fitness Function for Search-based Software Testing Search Based Software Testing (SBST) Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Fitness Evaluation Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions The Fitness Evaluation is the core of SBST. 4 / 14
  • 11. Constraint-based Fitness Function for Search-based Software Testing Search Based Software Testing (SBST) Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction What is the cost of a programming error ? Software testing Search Based Software Testing (SBST) Fitness Evaluation Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions The Fitness Evaluation is the core of SBST. An evolution in the fitness evaluation may bring a significant enhancement to SBST 4 / 14
  • 12. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness Evaluation Conclusions 5 / 14 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target }
  • 13. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } tinyy == z tinyy > 0 tinyx == 10 Evaluation Conclusions 5 / 14 tinyTarget tinyEND
  • 14. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z tinyy > 0 tinyx == 10 Evaluation Conclusions 5 / 14 tinyTarget tinyEND
  • 15. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation Conclusions 5 / 14 tinyTarget tinyEND
  • 16. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 3 fSE
  • 17. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 3+ 90 91 fSE
  • 18. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 3+ 90 91 fSE 90 91
  • 19. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 3+ 90 91 fSE 90 91 + 31 32
  • 20. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 3+ 90 91 90 91 + 31 32 fSE +0
  • 21. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 i2 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 90 3+ 91 = 3.9890 2 + 21 =2.9545 22 fSE 31 + 32 +0= 1.9577 + 21 + 20 =1.9068 22 21 90 91 0
  • 22. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Motivating Example tinyx, y, z 1 2 Introduction 3 Motivating Example 5 Fitness Function Based on Branch Hardness 4 6 int sample(int x,int y,int z){ if(y==z) if(y>0) if(x==10) ...//Target } i1 : (10,−30,60) i2 : (30, −20, −20) tinyy == z i1 tinyy > 0 i2 Critical Branch of i1 tinyx == 10 Evaluation tinyTarget Conclusions tinyEND Test candidate i1 i2 5 / 14 fAL 90 3+ 91 = 3.9890 2 + 21 =2.9545 22 fSE 31 + 32 +0= 1.9577 + 21 + 20 =1.9068 22 21 90 91 0 Both fitness functions favour i2 over i1 because either they do not consider non-executed branches or they ignore some branches’ future.
  • 23. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 6 / 14 Fitness Function Based on Branch Hardness Combines SBST with static analysis of the non-executed branches. Prioritizes branches according to how hard it is to satisfy them.
  • 24. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 6 / 14 Fitness Function Based on Branch Hardness Combines SBST with static analysis of the non-executed branches. Prioritizes branches according to how hard it is to satisfy them. Defines the difficulty to satisfy a constraint in terms of its arity and its projection tightness (the ratio of the approximate number of solutions to the size of its search space).
  • 25. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 6 / 14 Fitness Function Based on Branch Hardness Combines SBST with static analysis of the non-executed branches. Prioritizes branches according to how hard it is to satisfy them. Defines the difficulty to satisfy a constraint in terms of its arity and its projection tightness (the ratio of the approximate number of solutions to the size of its search space). 1. The lower the arity of the constraint, the less freedom we have to choose some of its variables in order to evolve the test candidate.
  • 26. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 6 / 14 Fitness Function Based on Branch Hardness Combines SBST with static analysis of the non-executed branches. Prioritizes branches according to how hard it is to satisfy them. Defines the difficulty to satisfy a constraint in terms of its arity and its projection tightness (the ratio of the approximate number of solutions to the size of its search space). 1. The lower the arity of the constraint, the less freedom we have to choose some of its variables in order to evolve the test candidate. 2. A projection tightness close to 0 will indicate high constrainedness and hardness to satisfy a constraint.
  • 27. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 7 / 14 Branch-Hardness Metrics Difficulty Coefficient (DC) DC is a possible representation of the hardness of a branch ; Each constraint has its own DC that is determined according to its arity and tightness ; DC(c) = B 2 · 1 arityc + B · (1 − tightness) + 1 .
  • 28. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Branch-Hardness Metrics Difficulty Coefficient (DC) DC is a possible representation of the hardness of a branch ; Each constraint has its own DC that is determined according to its arity and tightness ; DC(c) = B 2 · 1 arityc + B · (1 − tightness) + 1 . Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions Difficulty Level (DL) DL is based on DC ranking (r) ; DL is a representation of a relative hardness level of a constraint in a set of constraints ; DL(c, C) = 7 / 14 |C|, 2r−1 · (|C| + 1), if r = 0 . if r > 0
  • 29. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 8 / 14 Branch-Hardness Fitness Functions DC Fitness Function (fDC ) DC is used as a penalty coefficient for breaking a constraint ; The target of this fitness function is determining a standard-branch-distance. fDC (i, C) = c∈C DC(c) · η(i, c) .
  • 30. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Branch-Hardness Fitness Functions DC Fitness Function (fDC ) DC is used as a penalty coefficient for breaking a constraint ; The target of this fitness function is determining a standard-branch-distance. fDC (i, C) = c∈C DC(c) · η(i, c) . Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions DL Fitness Function (fDL ) DL is used as a constant penalty for breaking a constraint in a set of constraints to satisfy ; fDL (i, C) = where (i, c) = 8 / 14 c∈C (i, c) + η(i, c), 0, if η(i, c) = 0 . DL(c, C), if η(i, c) = 0
  • 31. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions 9 / 14 Applying fDC on our motivating example Assume that all domains are equal to [−99, 100]. DC for each branch 1. DC(”y == z”) = 102 · 0.5 + 10 · 0.995 + 1 = 60.95 ; 2. DC(”y > 0”) = 102 · 1 + 10 · 0.5 + 1 = 106 ; 3. DC(”x == 10”) = 102 · 1 + 10 · 0.995 + 1 = 110.95.
  • 32. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Applying fDC on our motivating example Assume that all domains are equal to [−99, 100]. DC for each branch 1. DC(”y == z”) = 102 · 0.5 + 10 · 0.995 + 1 = 60.95 ; 2. DC(”y > 0”) = 102 · 1 + 10 · 0.5 + 1 = 106 ; 3. DC(”x == 10”) = 102 · 1 + 10 · 0.995 + 1 = 110.95. Overview Branch-Hardness Metrics Branch-Hardness Fitness Functions Applying fDC on our motivating example Evaluation Conclusions (fDC ) for each test candidate 90 fDC (i1 , C) = 60.95· 91 +106· 31 +110.95· 0 = 162.9677 ; 32 1 fDC (i2 , C) = 60.95· 0 +106· 21 +110.95· 20 = 206.8485. 1 22 21 Contrary to fAL and fSE this fitness function makes the adequate choice by choosing the test candidate i1 instead of i2 . 9 / 14
  • 33. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Evaluation Subjects and configuration EA Results SA Results Conclusions 10 / 14 Evaluation Subjects and configuration analysed meta-heuristics and fitness functions Two widely used meta-heuristic algorithms are analysed : Simulated Annealing (SA) and Evolutionary Algorithm (EA). fAL and fSE from the literature ; fSEL a natural combination of fAL and fSE ; Our fitness functions fDC and fDL .
  • 34. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Evaluation Subjects and configuration EA Results SA Results Conclusions Evaluation Subjects and configuration analysed meta-heuristics and fitness functions Two widely used meta-heuristic algorithms are analysed : Simulated Annealing (SA) and Evolutionary Algorithm (EA). fAL and fSE from the literature ; fSEL a natural combination of fAL and fSE ; Our fitness functions fDC and fDL . Subjects 440 synthetic test targets that were randomly generated. 20 executions for every combination of fitness function and meta-heuristic algorithm. If test data was not found after 25000 (respectively 100000) fitness evaluations for EA (respectively SA), the search was terminated. 10 / 14
  • 35. Constraint-based Fitness Function for Search-based Software Testing Evaluation EA Results Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant EA: Comparing all fitnesses on 440 test targets Approach Level Symbolic Enhanced Symbolic Enhanced with levels Difficulty Coefficient Difficulty Level Introduction Motivating Example Fitness Function Based on Branch Hardness 80 60 Evaluation Subjects and configuration EA Results 40 SA Results Conclusions 20 0 0 5000 10000 15000 Evaluations 11 / 14 20000 25000
  • 36. Constraint-based Fitness Function for Search-based Software Testing Evaluation SA Results Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant SA: Comparing all fitnesses on 440 test targets Approach Level Symbolic Enhanced Symbolic Enhanced with levels Difficulty Coefficient Difficulty Level Introduction 80 Fitness Function Based on Branch Hardness Evaluation Subjects and configuration EA Results SA Results Conclusions Branch Coverage % Motivating Example 60 40 20 0 0e+00 2e+04 4e+04 6e+04 Evaluations 12 / 14 8e+04 1e+05
  • 37. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 13 / 14 Conclusions Two new metrics to measure the difficulty to satisfy a constraint in the context of test case generation for software testing are defined ; Two new fitness functions for SBST are defined ; Our new fitness functions are significantly more effective and efficient than with the largely used fitness functions from the literature. The obtained results are promising but more experiments must be performed.
  • 38. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions Conclusions Two new metrics to measure the difficulty to satisfy a constraint in the context of test case generation for software testing are defined ; Two new fitness functions for SBST are defined ; Our new fitness functions are significantly more effective and efficient than with the largely used fitness functions from the literature. The obtained results are promising but more experiments must be performed. Future work Performing more experiments on real world programs ; Extending our approach by defining new ways to compute projection tightness for constraints involving other data types than integer. 13 / 14
  • 39. Constraint-based Fitness Function for Search-based Software Testing Abdelilah Sakti, Yann-Ga¨l e Gu´h´neuc, Gilles e e Pesant Introduction Motivating Example Fitness Function Based on Branch Hardness Evaluation Conclusions 14 / 14 Thank you Questions ?