SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Effec%ve	
  Test	
  Execu%on	
  for	
  SPLs	
  
Sabrina	
  Souto	
  	
  
(Supervisor:	
  Marcelo	
  d’Amorim)	
  
	
  
Federal	
  University	
  of	
  Pernambuco	
  -­‐	
  UFPE	
  
General	
  Assump%on	
  
•  We	
  assume	
  that	
  tests	
  are	
  not	
  designed	
  for	
  
one	
  specific	
  product	
  
– A	
  test	
  can	
  run	
  against	
  several	
  products!	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
General	
  Problem	
  
•  Which	
  products	
  to	
  select	
  for	
  running	
  a	
  
par%cular	
  SPL	
  test	
  against?	
  
Soundness	
  
Efficiency	
  
– One	
  can	
  miss	
  fault-­‐revealing	
  
products	
  in	
  this	
  set	
  
	
  
– One	
  can	
  add	
  irrelevant	
  products	
  	
  
	
  	
  	
  	
  in	
  this	
  set	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Previous	
  selec%on	
  strategies	
  
•  Black-­‐box	
  tes6ng	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
(e.g.,	
  CIT,	
  sampling,	
  exhaus%ve…)	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
[Cohen	
  et.	
  al.,	
  ROSETEA	
  2006];	
  [Yilmaz	
  et.	
  al.,	
  TSE	
  2006]	
  ;	
  
[Perrouin	
  et.	
  al.,	
  ICST	
  2010];	
  [Cabral	
  et.	
  al.,	
  SPLC	
  2010]	
  …	
  
•  White-­‐box	
  tes6ng	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
[Reisner	
  et.	
  al.,	
  ICSE	
  2010],	
  [Kim	
  et.	
  al.,	
  ISSRE	
  2012];	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
[Kim	
  et.	
  al.,	
  AOSD	
  2011]	
  …	
  
•  Gray-­‐box	
  tes6ng	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
[Garvin	
  et.	
  al.,	
  ISSRE	
  2011];	
  [Shi	
  et.	
  al.,	
  FASE	
  2012];	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
[Song	
  et.	
  al.,	
  ICSE	
  2012]	
  …	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Hypothesis	
  
Few	
  valid	
  configura%ons	
  are	
  
reachable	
  from	
  individual	
  tests	
  
Substan%ated	
  from	
  results	
  in	
  literature:	
  
[Reisner	
  et.	
  al.,	
  ICSE	
  2010]	
  and	
  [Kim	
  et.	
  al.,	
  AOSD	
  2011]	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Ques%ons	
  (revisited	
  in	
  the	
  end)	
  
•  Is	
  efficiency	
  important	
  in	
  this	
  context?	
  
•  Is	
  combinatorial	
  explosion	
  (scalability)	
  
rela%vely	
  less	
  important	
  for	
  tes%ng?	
  
•  Is	
  soundness	
  important	
  for	
  tes%ng?	
  
	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Ques%ons	
  (revisited	
  in	
  the	
  end)	
  
•  Is	
  efficiency	
  important	
  in	
  this	
  context?	
  
•  Is	
  combinatorial	
  explosion	
  (scalability)	
  
rela%vely	
  less	
  important	
  for	
  tes%ng?	
  
•  Is	
  soundness	
  important	
  for	
  tes%ng?	
  
	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Ques%ons	
  (revisited	
  in	
  the	
  end)	
  
•  Is	
  efficiency	
  important	
  in	
  this	
  context?	
  
•  Is	
  combinatorial	
  explosion	
  (scalability)	
  
rela%vely	
  less	
  important	
  for	
  tes%ng?	
  
•  Is	
  soundness	
  important	
  for	
  tes%ng?	
  
	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Ques%ons	
  (revisited	
  in	
  the	
  end)	
  
•  Is	
  efficiency	
  important	
  in	
  this	
  context?	
  
•  Is	
  combinatorial	
  explosion	
  (scalability)	
  
rela%vely	
  less	
  important	
  for	
  tes%ng?	
  
•  Is	
  soundness	
  important	
  for	
  tes%ng?	
  
Our	
  answer	
  is	
  YES	
  to	
  all	
  ques%ons!	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Symbolic	
  Execu%on	
  of	
  Features	
  –	
  SEF	
  	
  
SEF	
  
Test	
  
Program	
  
schemata	
  
Feature	
  
Model	
  
Configura6ons	
  
Symbolic	
  Execu%on	
  has	
  been	
  
proposed	
  in	
  the	
  70’s	
  
Reisner	
  et	
  al.	
  proposed	
  SEF	
  in	
  
2010	
  (ICSE)	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Program	
  Schemata	
  
#IFDEF FEATURE_1
x = 10;
#ELIF
x = 20;
#ENDIF
static boolean feature1;
if(feature1){x = 10;} else { x = 20;}
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Symbolic	
  Execu%on	
  of	
  Features	
  –	
  SEF	
  	
  
SEF	
  
Test	
  
Program	
  
schemata	
  
Feature	
  
Model	
  
Configura6ons	
  
Symbolic	
  Execu%on	
  has	
  been	
  
proposed	
  in	
  the	
  70’s	
  
Reisner	
  et	
  al.	
  proposed	
  SEF	
  in	
  
2010	
  (ICSE)	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Symbolic	
  Execu%on	
  of	
  Features	
  –	
  SEF	
  	
  
[<o1, c1 >, ...]
feature
model
Driver
Test
SAT
solver
test schemata
program
Our	
  goal	
  is	
  to	
  apply	
  SEF	
  to	
  
reach	
  sound	
  and	
  efficient	
  
tes%ng	
  for	
  SPLs	
  
Symbolic	
  Execu%on	
  has	
  been	
  
proposed	
  in	
  the	
  70’s	
  
Reisner	
  et	
  al.	
  proposed	
  SEF	
  in	
  
2010	
  (ICSE)	
  
Insight	
  for	
  efficient	
  
implementa%on	
  is	
  to	
  
par%%on	
  state	
  in	
  two:	
  one	
  
concrete	
  and	
  one	
  symbolic.	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Example	
  
Valid	
  paths:	
  
[2	
  3	
  8	
  6	
  7	
  5]	
  
[2	
  3	
  8	
  -­‐6	
  7	
  5]	
  
Invalid	
  paths:	
  
[-­‐2] 	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  -­‐7]	
  
[2	
  -­‐3	
  8]	
   	
   	
   	
  [2	
  3	
  8	
  6	
  -­‐7]	
  
[2	
  -­‐3	
  -­‐8]	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  7	
  -­‐5]	
  
[2	
  	
  3	
  -­‐8] 	
   	
   	
  [2	
  3	
  8	
  	
  6	
  7	
  -­‐5]	
  
	
  
	
  
Sudoku	
  Feature	
  Model	
   Test1	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Base(2)	
  
Generator(8)	
  
States(3)	
  
Generator(8)	
  
Color(6)	
  
Solver(7)	
   Solver(7)	
  
Undo(8)	
   Undo(8)	
  
X	
  
X	
   X	
   X	
  
X	
   X	
  
X	
   X	
  ✓ ✓
-­‐2	
   2	
  
-­‐3	
   3	
  
8	
  -­‐8	
   8	
   -­‐8	
  
-­‐6	
   6	
  
-­‐7	
   -­‐7	
  7	
   7	
  
5	
   5	
  -­‐5	
  -­‐5	
  
Example	
  
Sudoku	
  Feature	
  Model	
   Test1	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Base(2)	
  
Generator(8)	
  
States(3)	
  
Generator(8)	
  
Color(6)	
  
Solver(7)	
   Solver(7)	
  
Undo(8)	
   Undo(8)	
  
X	
  
X	
   X	
   X	
  
X	
   X	
  
X	
   X	
  ✓ ✓
-­‐2	
   2	
  
-­‐3	
   3	
  
8	
  -­‐8	
   8	
   -­‐8	
  
-­‐6	
   6	
  
-­‐7	
   -­‐7	
  7	
   7	
  
5	
   5	
  -­‐5	
  -­‐5	
  
Valid	
  paths:	
  
[2	
  3	
  8	
  6	
  7	
  5]	
  
[2	
  3	
  8	
  -­‐6	
  7	
  5]	
  
Invalid	
  paths:	
  
[-­‐2] 	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  -­‐7]	
  
[2	
  -­‐3	
  8]	
   	
   	
   	
  [2	
  3	
  8	
  6	
  -­‐7]	
  
[2	
  -­‐3	
  -­‐8]	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  7	
  -­‐5]	
  
[2	
  	
  3	
  -­‐8] 	
   	
   	
  [2	
  3	
  8	
  	
  6	
  7	
  -­‐5]	
  
	
  
	
  
Example	
  
Valid	
  paths:	
  
[2	
  3	
  8	
  6	
  7	
  5]	
  
[2	
  3	
  8	
  -­‐6	
  7	
  5]	
  
Invalid	
  paths:	
  
[-­‐2] 	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  -­‐7]	
  
[2	
  -­‐3	
  8]	
   	
   	
   	
  [2	
  3	
  8	
  6	
  -­‐7]	
  
[2	
  -­‐3	
  -­‐8]	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  7	
  -­‐5]	
  
[2	
  	
  3	
  -­‐8] 	
   	
   	
  [2	
  3	
  8	
  	
  6	
  7	
  -­‐5]	
  
	
  
	
  
Sudoku	
  Feature	
  Model	
   Test1	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Feature	
  
Model	
  
Base(2)	
  
Generator(8)	
  
States(3)	
  
Generator(8)	
  
Color(6)	
  
Solver(7)	
   Solver(7)	
  
Undo(8)	
   Undo(8)	
  
X	
  
X	
   X	
   X	
  
X	
   X	
  
X	
   X	
  ✓ ✓
-­‐2	
   2	
  
-­‐3	
   3	
  
8	
  -­‐8	
   8	
   -­‐8	
  
-­‐6	
   6	
  
-­‐7	
   -­‐7	
  7	
   7	
  
5	
   5	
  -­‐5	
  -­‐5	
  
Example	
  
Valid	
  paths:	
  
[2	
  3	
  8	
  6	
  7	
  5]	
  
[2	
  3	
  8	
  -­‐6	
  7	
  5]	
  
Invalid	
  paths:	
  
[-­‐2] 	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  -­‐7]	
  
[2	
  -­‐3	
  8]	
   	
   	
   	
  [2	
  3	
  8	
  6	
  -­‐7]	
  
[2	
  -­‐3	
  -­‐8]	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  7	
  -­‐5]	
  
[2	
  	
  3	
  -­‐8] 	
   	
   	
  [2	
  3	
  8	
  	
  6	
  7	
  -­‐5]	
  
	
  
	
  
Sudoku	
  Feature	
  Model	
   Test1	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Feature	
  
Model	
  
Test	
  
Base(2)	
  
Generator(8)	
  
States(3)	
  
Generator(8)	
  
Color(6)	
  
Solver(7)	
   Solver(7)	
  
Undo(8)	
   Undo(8)	
  
X	
  
X	
   X	
   X	
  
X	
   X	
  
X	
   X	
  ✓ ✓
-­‐2	
   2	
  
-­‐3	
   3	
  
8	
  -­‐8	
   8	
   -­‐8	
  
-­‐6	
   6	
  
-­‐7	
   -­‐7	
  7	
   7	
  
5	
   5	
  -­‐5	
  -­‐5	
  
public class SudokuGenerator{ //…!
public Board generate() {!
if(GENERATOR)){!
Board board = new Board(); !
fillBoard(board); !
! makeSolvable(board, 50) ! !
! return board;!
}!
}!
//…!
private void fillBoard(Board board){!
if(GENERATOR)){ !
BoardManager bm = new BoardManager(); !
! //…!
! bm.undo(); !!
//…!
}!
}!
//…!
}!
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
public class Test{ //…!
BoardManager bm;!
SudokuGenerator sGen;!
public static void test1(){!
if(BASE){!
this.bm = new BoardManager();!
if(GENERATOR){!
this.sGen = new SudokuGenerator();!
} !
}!
} //…!
}!
public class BoardManager{ //…!
public BoardManager(){!
if(BASE){// …!
if(STATES){/*…*/} !
!} !
}!
//…!
public void undo(){!
if(UNDO){/*…*/}!
}!
//…!
}!
public class Board { //…!
public Board () {!
if(BASE){ //…!
this.board[i] = new Field();!
} !
}//…!
}!
public class Field{ //…!
public Field() {!
if(BASE){ //…!
if(COLOR){!
! !//…!
! } !
! if(SOLVER){/*…*/} !
} !
}//…!
}!
1	
  
2	
  
3	
  
4	
  
5	
  
6	
  
Example	
  
Valid	
  paths:	
  
[2	
  3	
  8	
  6	
  7	
  5]	
  
[2	
  3	
  8	
  -­‐6	
  7	
  5]	
  
Invalid	
  paths:	
  
[-­‐2] 	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  -­‐7]	
  
[2	
  -­‐3	
  8]	
   	
   	
   	
  [2	
  3	
  8	
  6	
  -­‐7]	
  
[2	
  -­‐3	
  -­‐8]	
   	
   	
   	
  [2	
  3	
  8	
  -­‐6	
  7	
  -­‐5]	
  
[2	
  	
  3	
  -­‐8] 	
   	
   	
  [2	
  3	
  8	
  	
  6	
  7	
  -­‐5]	
  
	
  
	
  
Sudoku	
  Feature	
  Model	
   Test1	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Feature	
  
Model	
  
Test	
  
Base(2)	
  
Generator(8)	
  
States(3)	
  
Generator(8)	
  
Color(6)	
  
Solver(7)	
   Solver(7)	
  
Undo(8)	
   Undo(8)	
  
X	
  
X	
   X	
   X	
  
X	
   X	
  
X	
   X	
  ✓ ✓
-­‐2	
   2	
  
-­‐3	
   3	
  
8	
  -­‐8	
   8	
   -­‐8	
  
-­‐6	
   6	
  
-­‐7	
   -­‐7	
  7	
   7	
  
5	
   5	
  -­‐5	
  -­‐5	
  
Par%%on	
  of	
  configura%on	
  space	
  
…	
  
P1	
  	
  	
  	
  	
  	
  P2	
  
	
  	
  	
  	
  	
  P3 	
  	
  	
  	
  P4	
  
P5	
  
P1	
  	
  	
  	
  	
   	
  	
  	
  P2	
  
	
  	
  	
  	
  	
  	
  	
  P3 	
   	
  	
  
	
   	
  ...Pm	
  
P1	
  
	
  P2
	
  	
  
	
  
P1 	
   	
  P2 	
  	
  
	
  P3 	
  	
  	
  	
  	
  	
  	
  	
  	
  …Pn	
  
P4	
  
P1	
  
	
   	
  P2 	
  	
  
	
  P3 	
   	
  	
  
	
   	
  ...Pm	
  
2n	
  
There	
  is	
  no	
  dis%nc%on	
  amongst	
  the	
  configura%ons	
  from	
  the	
  same	
  par%%on	
  with	
  
respect	
  to	
  the	
  states	
  they	
  elaborate	
  during	
  the	
  test	
  execu%on.	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Research	
  Ques%ons	
  
•  RQ1:	
  How	
  SEF	
  compares	
  to	
  an	
  ideal	
  sampler?	
  
•  RQ2:	
  What	
  is	
  the	
  impact	
  of	
  further	
  constraining	
  
the	
  model	
  for	
  test	
  execu%on?	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Subjects	
  of	
  Analysis	
  	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
RQ1	
  
How	
  SEF	
  compares	
  to	
  an	
  ideal	
  sampler?	
  
101.1.1
101.2.1
101.3.1
101.4.1
101.5.1
101.6.1
101.7.1
101.8.1
101.9.1
01.10.1
01.11.1
01.12.1
01.13.1
bdb.5.1
jto.1.1
jto.1.2
jto.2.1
jto.3.1
jto.4.1
npd.1.1
npd.2.1
npd.3.1
prv.2.1
prv.3.1
prv.4.1
sdk.1.1
sdk.2.1
sdk.3.1
sdk.4.1
xst.1.1
xst.1.2
xst.1.3
xst.1.4
xst.1.5
xst.1.6
xst.1.7
xst.1.8
xst.1.9
zip.1.1
zip.2.1
time(inseconds)
0.00.20.40.6
running feasible paths
running infeasible paths
solving constraints <	
  1	
  second	
  
gpl.1.1
gpl.1.2
gpl.1.3
gpl.1.4
gpl.1.5
gpl.1.6
gpl.1.7
gpl.1.8
gpl.1.9
jto.1.3
jto.1.4
jto.1.5
jto.1.6
jto.1.7
jto.1.8
jto.1.9
prv.1.1
time(inseconds)
0102030
running feasible paths
running infeasible paths
solving constraints
RQ1	
  
How	
  SEF	
  compares	
  to	
  an	
  ideal	
  sampler?	
  
Average	
  overhead	
  of	
  
SEF	
  compared	
  to	
  an	
  
ideal	
  sampler	
  is	
  of	
  7%	
  	
  
>	
  1	
  second	
  
<	
  1	
  minute	
  
Observa%ons	
  
•  We	
   considered	
   9	
   previously-­‐used	
   SPLs	
   with	
  
exis%ng	
  test	
  cases	
  (We	
  did	
  not	
  generate	
  new)	
  
•  For	
  most	
  SEF	
  runs	
  it	
  took	
  less	
  than	
  1	
  second	
  
•  BerkeleyDB	
  took	
  much	
  longer	
  to	
  run!	
  
– System	
  tests	
  covering	
  most	
  features	
  in	
  each	
  path	
  	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
RQ2	
  
What	
  is	
  the	
  impact	
  of	
  further	
  constraining	
  the	
  
model	
  on	
  SEF?	
  
Can	
  one	
  iden%fy	
  
groups	
  of	
  related	
  
features	
  from	
  
changes	
  and	
  one	
  
test?	
  
Possible	
  Future	
  Work	
  	
  
(I	
  need	
  your	
  help	
  here)	
  
•  Bener	
  understand	
  scalability	
  for	
  SPL	
  tes%ng	
  
– Evaluate	
  the	
  importance	
  of	
  scalability	
  for	
  tes%ng	
  on	
  
a	
  much	
  larger	
  set	
  of	
  SPLs	
  
•  Address	
  scalability	
  (if	
  indeed	
  a	
  big	
  problem)	
  
– Possible	
  Solu%ons:	
  
•  Use	
  composi%onal	
  symbolic	
  execu%on	
  
•  Collapse	
  paths	
  with	
  similar	
  states	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Possible	
  Future	
  Work	
  	
  
(I	
  need	
  your	
  help	
  here)	
  
•  Improve	
  automa%on	
  
– Program	
  schemata	
  genera%on	
  can	
  be	
  imprac%cal	
  
– Possible	
  Solu%on:	
  
•  Generate	
   products	
   on	
   demand	
   and	
   use	
   incremental	
  
compila%on	
  
•  Use	
  Concolic	
  Execu%on	
  of	
  Features	
  (CEF)	
  
•  We	
  can	
  also	
  contribute	
  to	
  find	
  type-­‐errors	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  
Ques%ons	
  Revisited	
  
•  Is	
  efficiency	
  important?	
  
•  Is	
  combinatorial	
  explosion	
  (scalability)	
  
rela%vely	
  less	
  important	
  for	
  tes%ng?	
  
•  Is	
  soundness	
  important	
  for	
  tes%ng?	
  
Our	
  answer	
  was	
  YES	
  to	
  all!	
  
What	
  is	
  your	
  opinion?	
  
Dagstuhl	
  Seminar	
  13091,	
  Sabrina	
  Souto,	
  
sfs@cin.ufpe.br	
  

Más contenido relacionado

Similar a Effective Test Execution for SPLs

Benchmarking Perl Lightning Talk (NPW 2007)
Benchmarking Perl Lightning Talk (NPW 2007)Benchmarking Perl Lightning Talk (NPW 2007)
Benchmarking Perl Lightning Talk (NPW 2007)brian d foy
 
[CVPR2020] Simple but effective image enhancement techniques
[CVPR2020] Simple but effective image enhancement techniques[CVPR2020] Simple but effective image enhancement techniques
[CVPR2020] Simple but effective image enhancement techniquesJaeJun Yoo
 
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
 
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Xavier Llorà
 
Recent and Robust Query Auto-Completion - WWW 2014 Conference Presentation
Recent and Robust Query Auto-Completion - WWW 2014 Conference PresentationRecent and Robust Query Auto-Completion - WWW 2014 Conference Presentation
Recent and Robust Query Auto-Completion - WWW 2014 Conference Presentationstewhir
 
The Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingThe Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingJMP software from SAS
 
Explainable Online Reinforcement Learning for Adaptive Systems
Explainable Online Reinforcement Learning for Adaptive SystemsExplainable Online Reinforcement Learning for Adaptive Systems
Explainable Online Reinforcement Learning for Adaptive SystemsAndreas Metzger
 
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size J. García - Verdugo
 
Masters bioinfo 2013-11-14-15
Masters bioinfo 2013-11-14-15Masters bioinfo 2013-11-14-15
Masters bioinfo 2013-11-14-15Yannick Wurm
 
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...David Dooling
 
IRJET- Optimization of Plastic Injection Molding
IRJET- Optimization of Plastic Injection MoldingIRJET- Optimization of Plastic Injection Molding
IRJET- Optimization of Plastic Injection MoldingIRJET Journal
 
영유아 발달 증진을 위한 모바일 시스템 디자인
영유아 발달 증진을 위한 모바일 시스템 디자인영유아 발달 증진을 위한 모바일 시스템 디자인
영유아 발달 증진을 위한 모바일 시스템 디자인NAVER Engineering
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...David Rosenblum
 
Simple rules for building robust machine learning models
Simple rules for building robust machine learning modelsSimple rules for building robust machine learning models
Simple rules for building robust machine learning modelsKyriakos Chatzidimitriou
 
空英課程 Agile development 2014
空英課程 Agile development 2014空英課程 Agile development 2014
空英課程 Agile development 2014芋頭 烤
 
Shift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaShift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaQA or the Highway
 
Prescriptive Analytics.pptx
Prescriptive Analytics.pptxPrescriptive Analytics.pptx
Prescriptive Analytics.pptxDhruvPatel622666
 
Ae abc general_grenoble_29_juin_25_30_min
Ae abc general_grenoble_29_juin_25_30_minAe abc general_grenoble_29_juin_25_30_min
Ae abc general_grenoble_29_juin_25_30_minMichael Blum
 
Advanced Econometrics L7-8.pptx
Advanced Econometrics L7-8.pptxAdvanced Econometrics L7-8.pptx
Advanced Econometrics L7-8.pptxakashayosha
 

Similar a Effective Test Execution for SPLs (20)

Benchmarking Perl Lightning Talk (NPW 2007)
Benchmarking Perl Lightning Talk (NPW 2007)Benchmarking Perl Lightning Talk (NPW 2007)
Benchmarking Perl Lightning Talk (NPW 2007)
 
[CVPR2020] Simple but effective image enhancement techniques
[CVPR2020] Simple but effective image enhancement techniques[CVPR2020] Simple but effective image enhancement techniques
[CVPR2020] Simple but effective image enhancement techniques
 
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...
 
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
Do not Match, Inherit: Fitness Surrogates for Genetics-Based Machine Learning...
 
Recent and Robust Query Auto-Completion - WWW 2014 Conference Presentation
Recent and Robust Query Auto-Completion - WWW 2014 Conference PresentationRecent and Robust Query Auto-Completion - WWW 2014 Conference Presentation
Recent and Robust Query Auto-Completion - WWW 2014 Conference Presentation
 
The Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for ResamplingThe Bootstrap and Beyond: Using JSL for Resampling
The Bootstrap and Beyond: Using JSL for Resampling
 
Explainable Online Reinforcement Learning for Adaptive Systems
Explainable Online Reinforcement Learning for Adaptive SystemsExplainable Online Reinforcement Learning for Adaptive Systems
Explainable Online Reinforcement Learning for Adaptive Systems
 
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W3 Sample Size
 
Masters bioinfo 2013-11-14-15
Masters bioinfo 2013-11-14-15Masters bioinfo 2013-11-14-15
Masters bioinfo 2013-11-14-15
 
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...
Challenges with Data Quality, Sharing, and Versioning in Next-Generation Sequ...
 
IRJET- Optimization of Plastic Injection Molding
IRJET- Optimization of Plastic Injection MoldingIRJET- Optimization of Plastic Injection Molding
IRJET- Optimization of Plastic Injection Molding
 
영유아 발달 증진을 위한 모바일 시스템 디자인
영유아 발달 증진을 위한 모바일 시스템 디자인영유아 발달 증진을 위한 모바일 시스템 디자인
영유아 발달 증진을 위한 모바일 시스템 디자인
 
Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...Jogging While Driving, and Other Software Engineering Research Problems (invi...
Jogging While Driving, and Other Software Engineering Research Problems (invi...
 
Simple rules for building robust machine learning models
Simple rules for building robust machine learning modelsSimple rules for building robust machine learning models
Simple rules for building robust machine learning models
 
空英課程 Agile development 2014
空英課程 Agile development 2014空英課程 Agile development 2014
空英課程 Agile development 2014
 
Shift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David LaulusaShift-Left Testing: QA in a DevOps World by David Laulusa
Shift-Left Testing: QA in a DevOps World by David Laulusa
 
Prescriptive Analytics.pptx
Prescriptive Analytics.pptxPrescriptive Analytics.pptx
Prescriptive Analytics.pptx
 
Dialog
DialogDialog
Dialog
 
Ae abc general_grenoble_29_juin_25_30_min
Ae abc general_grenoble_29_juin_25_30_minAe abc general_grenoble_29_juin_25_30_min
Ae abc general_grenoble_29_juin_25_30_min
 
Advanced Econometrics L7-8.pptx
Advanced Econometrics L7-8.pptxAdvanced Econometrics L7-8.pptx
Advanced Econometrics L7-8.pptx
 

Último

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfIndexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfChristalin Nelson
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 

Último (20)

Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfIndexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdf
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 

Effective Test Execution for SPLs

  • 1. Effec%ve  Test  Execu%on  for  SPLs   Sabrina  Souto     (Supervisor:  Marcelo  d’Amorim)     Federal  University  of  Pernambuco  -­‐  UFPE  
  • 2. General  Assump%on   •  We  assume  that  tests  are  not  designed  for   one  specific  product   – A  test  can  run  against  several  products!   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 3. General  Problem   •  Which  products  to  select  for  running  a   par%cular  SPL  test  against?   Soundness   Efficiency   – One  can  miss  fault-­‐revealing   products  in  this  set     – One  can  add  irrelevant  products            in  this  set   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 4. Previous  selec%on  strategies   •  Black-­‐box  tes6ng                                                                                                     (e.g.,  CIT,  sampling,  exhaus%ve…)                                                 [Cohen  et.  al.,  ROSETEA  2006];  [Yilmaz  et.  al.,  TSE  2006]  ;   [Perrouin  et.  al.,  ICST  2010];  [Cabral  et.  al.,  SPLC  2010]  …   •  White-­‐box  tes6ng                                                                                                                   [Reisner  et.  al.,  ICSE  2010],  [Kim  et.  al.,  ISSRE  2012];                           [Kim  et.  al.,  AOSD  2011]  …   •  Gray-­‐box  tes6ng                                                                                                                         [Garvin  et.  al.,  ISSRE  2011];  [Shi  et.  al.,  FASE  2012];                               [Song  et.  al.,  ICSE  2012]  …   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 5. Hypothesis   Few  valid  configura%ons  are   reachable  from  individual  tests   Substan%ated  from  results  in  literature:   [Reisner  et.  al.,  ICSE  2010]  and  [Kim  et.  al.,  AOSD  2011]   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 6. Ques%ons  (revisited  in  the  end)   •  Is  efficiency  important  in  this  context?   •  Is  combinatorial  explosion  (scalability)   rela%vely  less  important  for  tes%ng?   •  Is  soundness  important  for  tes%ng?     Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 7. Ques%ons  (revisited  in  the  end)   •  Is  efficiency  important  in  this  context?   •  Is  combinatorial  explosion  (scalability)   rela%vely  less  important  for  tes%ng?   •  Is  soundness  important  for  tes%ng?     Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 8. Ques%ons  (revisited  in  the  end)   •  Is  efficiency  important  in  this  context?   •  Is  combinatorial  explosion  (scalability)   rela%vely  less  important  for  tes%ng?   •  Is  soundness  important  for  tes%ng?     Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 9. Ques%ons  (revisited  in  the  end)   •  Is  efficiency  important  in  this  context?   •  Is  combinatorial  explosion  (scalability)   rela%vely  less  important  for  tes%ng?   •  Is  soundness  important  for  tes%ng?   Our  answer  is  YES  to  all  ques%ons!   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 10. Symbolic  Execu%on  of  Features  –  SEF     SEF   Test   Program   schemata   Feature   Model   Configura6ons   Symbolic  Execu%on  has  been   proposed  in  the  70’s   Reisner  et  al.  proposed  SEF  in   2010  (ICSE)   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 11. Program  Schemata   #IFDEF FEATURE_1 x = 10; #ELIF x = 20; #ENDIF static boolean feature1; if(feature1){x = 10;} else { x = 20;} Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 12. Symbolic  Execu%on  of  Features  –  SEF     SEF   Test   Program   schemata   Feature   Model   Configura6ons   Symbolic  Execu%on  has  been   proposed  in  the  70’s   Reisner  et  al.  proposed  SEF  in   2010  (ICSE)   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 13. Symbolic  Execu%on  of  Features  –  SEF     [<o1, c1 >, ...] feature model Driver Test SAT solver test schemata program Our  goal  is  to  apply  SEF  to   reach  sound  and  efficient   tes%ng  for  SPLs   Symbolic  Execu%on  has  been   proposed  in  the  70’s   Reisner  et  al.  proposed  SEF  in   2010  (ICSE)   Insight  for  efficient   implementa%on  is  to   par%%on  state  in  two:  one   concrete  and  one  symbolic.   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 14. Example   Valid  paths:   [2  3  8  6  7  5]   [2  3  8  -­‐6  7  5]   Invalid  paths:   [-­‐2]        [2  3  8  -­‐6  -­‐7]   [2  -­‐3  8]        [2  3  8  6  -­‐7]   [2  -­‐3  -­‐8]        [2  3  8  -­‐6  7  -­‐5]   [2    3  -­‐8]      [2  3  8    6  7  -­‐5]       Sudoku  Feature  Model   Test1   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   Base(2)   Generator(8)   States(3)   Generator(8)   Color(6)   Solver(7)   Solver(7)   Undo(8)   Undo(8)   X   X   X   X   X   X   X   X  ✓ ✓ -­‐2   2   -­‐3   3   8  -­‐8   8   -­‐8   -­‐6   6   -­‐7   -­‐7  7   7   5   5  -­‐5  -­‐5  
  • 15. Example   Sudoku  Feature  Model   Test1   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   Base(2)   Generator(8)   States(3)   Generator(8)   Color(6)   Solver(7)   Solver(7)   Undo(8)   Undo(8)   X   X   X   X   X   X   X   X  ✓ ✓ -­‐2   2   -­‐3   3   8  -­‐8   8   -­‐8   -­‐6   6   -­‐7   -­‐7  7   7   5   5  -­‐5  -­‐5   Valid  paths:   [2  3  8  6  7  5]   [2  3  8  -­‐6  7  5]   Invalid  paths:   [-­‐2]        [2  3  8  -­‐6  -­‐7]   [2  -­‐3  8]        [2  3  8  6  -­‐7]   [2  -­‐3  -­‐8]        [2  3  8  -­‐6  7  -­‐5]   [2    3  -­‐8]      [2  3  8    6  7  -­‐5]      
  • 16. Example   Valid  paths:   [2  3  8  6  7  5]   [2  3  8  -­‐6  7  5]   Invalid  paths:   [-­‐2]        [2  3  8  -­‐6  -­‐7]   [2  -­‐3  8]        [2  3  8  6  -­‐7]   [2  -­‐3  -­‐8]        [2  3  8  -­‐6  7  -­‐5]   [2    3  -­‐8]      [2  3  8    6  7  -­‐5]       Sudoku  Feature  Model   Test1   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   Feature   Model   Base(2)   Generator(8)   States(3)   Generator(8)   Color(6)   Solver(7)   Solver(7)   Undo(8)   Undo(8)   X   X   X   X   X   X   X   X  ✓ ✓ -­‐2   2   -­‐3   3   8  -­‐8   8   -­‐8   -­‐6   6   -­‐7   -­‐7  7   7   5   5  -­‐5  -­‐5  
  • 17. Example   Valid  paths:   [2  3  8  6  7  5]   [2  3  8  -­‐6  7  5]   Invalid  paths:   [-­‐2]        [2  3  8  -­‐6  -­‐7]   [2  -­‐3  8]        [2  3  8  6  -­‐7]   [2  -­‐3  -­‐8]        [2  3  8  -­‐6  7  -­‐5]   [2    3  -­‐8]      [2  3  8    6  7  -­‐5]       Sudoku  Feature  Model   Test1   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   Feature   Model   Test   Base(2)   Generator(8)   States(3)   Generator(8)   Color(6)   Solver(7)   Solver(7)   Undo(8)   Undo(8)   X   X   X   X   X   X   X   X  ✓ ✓ -­‐2   2   -­‐3   3   8  -­‐8   8   -­‐8   -­‐6   6   -­‐7   -­‐7  7   7   5   5  -­‐5  -­‐5  
  • 18. public class SudokuGenerator{ //…! public Board generate() {! if(GENERATOR)){! Board board = new Board(); ! fillBoard(board); ! ! makeSolvable(board, 50) ! ! ! return board;! }! }! //…! private void fillBoard(Board board){! if(GENERATOR)){ ! BoardManager bm = new BoardManager(); ! ! //…! ! bm.undo(); !! //…! }! }! //…! }! Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   public class Test{ //…! BoardManager bm;! SudokuGenerator sGen;! public static void test1(){! if(BASE){! this.bm = new BoardManager();! if(GENERATOR){! this.sGen = new SudokuGenerator();! } ! }! } //…! }! public class BoardManager{ //…! public BoardManager(){! if(BASE){// …! if(STATES){/*…*/} ! !} ! }! //…! public void undo(){! if(UNDO){/*…*/}! }! //…! }! public class Board { //…! public Board () {! if(BASE){ //…! this.board[i] = new Field();! } ! }//…! }! public class Field{ //…! public Field() {! if(BASE){ //…! if(COLOR){! ! !//…! ! } ! ! if(SOLVER){/*…*/} ! } ! }//…! }! 1   2   3   4   5   6  
  • 19. Example   Valid  paths:   [2  3  8  6  7  5]   [2  3  8  -­‐6  7  5]   Invalid  paths:   [-­‐2]        [2  3  8  -­‐6  -­‐7]   [2  -­‐3  8]        [2  3  8  6  -­‐7]   [2  -­‐3  -­‐8]        [2  3  8  -­‐6  7  -­‐5]   [2    3  -­‐8]      [2  3  8    6  7  -­‐5]       Sudoku  Feature  Model   Test1   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br   Feature   Model   Test   Base(2)   Generator(8)   States(3)   Generator(8)   Color(6)   Solver(7)   Solver(7)   Undo(8)   Undo(8)   X   X   X   X   X   X   X   X  ✓ ✓ -­‐2   2   -­‐3   3   8  -­‐8   8   -­‐8   -­‐6   6   -­‐7   -­‐7  7   7   5   5  -­‐5  -­‐5  
  • 20. Par%%on  of  configura%on  space   …   P1            P2            P3        P4   P5   P1                P2                P3          ...Pm   P1    P2       P1    P2      P3                  …Pn   P4   P1      P2      P3          ...Pm   2n   There  is  no  dis%nc%on  amongst  the  configura%ons  from  the  same  par%%on  with   respect  to  the  states  they  elaborate  during  the  test  execu%on.   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 21. Research  Ques%ons   •  RQ1:  How  SEF  compares  to  an  ideal  sampler?   •  RQ2:  What  is  the  impact  of  further  constraining   the  model  for  test  execu%on?   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 22. Subjects  of  Analysis     Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 23. RQ1   How  SEF  compares  to  an  ideal  sampler?   101.1.1 101.2.1 101.3.1 101.4.1 101.5.1 101.6.1 101.7.1 101.8.1 101.9.1 01.10.1 01.11.1 01.12.1 01.13.1 bdb.5.1 jto.1.1 jto.1.2 jto.2.1 jto.3.1 jto.4.1 npd.1.1 npd.2.1 npd.3.1 prv.2.1 prv.3.1 prv.4.1 sdk.1.1 sdk.2.1 sdk.3.1 sdk.4.1 xst.1.1 xst.1.2 xst.1.3 xst.1.4 xst.1.5 xst.1.6 xst.1.7 xst.1.8 xst.1.9 zip.1.1 zip.2.1 time(inseconds) 0.00.20.40.6 running feasible paths running infeasible paths solving constraints <  1  second  
  • 24. gpl.1.1 gpl.1.2 gpl.1.3 gpl.1.4 gpl.1.5 gpl.1.6 gpl.1.7 gpl.1.8 gpl.1.9 jto.1.3 jto.1.4 jto.1.5 jto.1.6 jto.1.7 jto.1.8 jto.1.9 prv.1.1 time(inseconds) 0102030 running feasible paths running infeasible paths solving constraints RQ1   How  SEF  compares  to  an  ideal  sampler?   Average  overhead  of   SEF  compared  to  an   ideal  sampler  is  of  7%     >  1  second   <  1  minute  
  • 25. Observa%ons   •  We   considered   9   previously-­‐used   SPLs   with   exis%ng  test  cases  (We  did  not  generate  new)   •  For  most  SEF  runs  it  took  less  than  1  second   •  BerkeleyDB  took  much  longer  to  run!   – System  tests  covering  most  features  in  each  path     Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 26. RQ2   What  is  the  impact  of  further  constraining  the   model  on  SEF?   Can  one  iden%fy   groups  of  related   features  from   changes  and  one   test?  
  • 27. Possible  Future  Work     (I  need  your  help  here)   •  Bener  understand  scalability  for  SPL  tes%ng   – Evaluate  the  importance  of  scalability  for  tes%ng  on   a  much  larger  set  of  SPLs   •  Address  scalability  (if  indeed  a  big  problem)   – Possible  Solu%ons:   •  Use  composi%onal  symbolic  execu%on   •  Collapse  paths  with  similar  states   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 28. Possible  Future  Work     (I  need  your  help  here)   •  Improve  automa%on   – Program  schemata  genera%on  can  be  imprac%cal   – Possible  Solu%on:   •  Generate   products   on   demand   and   use   incremental   compila%on   •  Use  Concolic  Execu%on  of  Features  (CEF)   •  We  can  also  contribute  to  find  type-­‐errors   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br  
  • 29. Ques%ons  Revisited   •  Is  efficiency  important?   •  Is  combinatorial  explosion  (scalability)   rela%vely  less  important  for  tes%ng?   •  Is  soundness  important  for  tes%ng?   Our  answer  was  YES  to  all!   What  is  your  opinion?   Dagstuhl  Seminar  13091,  Sabrina  Souto,   sfs@cin.ufpe.br