Combinatorial Interaction Testing for Test Selection in - - PowerPoint PPT Presentation

combinatorial interaction testing for test selection in
SMART_READER_LITE
LIVE PREVIEW

Combinatorial Interaction Testing for Test Selection in - - PowerPoint PPT Presentation

Combinatorial Interaction Testing for Test Selection in Grammar-Based Testing Elke Salecker, Sabine Glesner Technical University of Berlin, Germany Workshop on Combinatorial Testing (CT) 2012 Montreal, Canada Introduction Background Approach


slide-1
SLIDE 1

Combinatorial Interaction Testing for Test Selection in Grammar-Based Testing

Elke Salecker, Sabine Glesner

Technical University of Berlin, Germany

Workshop on Combinatorial Testing (CT) 2012 Montreal, Canada

slide-2
SLIDE 2

Introduction Background Approach Evaluation Conclusions

Motivation

Grammar-based Testing

  • black-box testing approach
  • test data derived from context-free grammar

➠ automatic generation of test data

Elke Salecker, Sabine Glesner 1

slide-3
SLIDE 3

Introduction Background Approach Evaluation Conclusions

Motivation

Grammar-based Testing

  • black-box testing approach
  • test data derived from context-free grammar

➠ automatic generation of test data Problem

  • exhaustive testing of test sets infeasible
  • controlled/random-based enumaration process
  • rule combination coverage not in focus

Elke Salecker, Sabine Glesner 1

slide-4
SLIDE 4

Introduction Background Approach Evaluation Conclusions

Motivation

Grammar-based Testing

  • black-box testing approach
  • test data derived from context-free grammar

➠ automatic generation of test data Problem

  • exhaustive testing of test sets infeasible
  • controlled/random-based enumaration process
  • rule combination coverage not in focus

New Approach ➠ test selection based on combinatorial interaction testing ➠ automatic generation of CIT test specification

Elke Salecker, Sabine Glesner 1

slide-5
SLIDE 5

Introduction Background Approach Evaluation Conclusions

Outline

1 Introduction 2 CIT and Grammars 3 Test Set Generation 4 Evaluation 5 Conclusions

Elke Salecker, Sabine Glesner 2

slide-6
SLIDE 6

Introduction Background Approach Evaluation Conclusions

Combinatorial Interaction Testing

CIT specification: parameters, values P1 P2 P3 P4 a1 b1 c1 d1 a2 b2 c2 d2 a3

Elke Salecker, Sabine Glesner 3

slide-7
SLIDE 7

Introduction Background Approach Evaluation Conclusions

Combinatorial Interaction Testing

CIT specification: parameters, values P1 P2 P3 P4 a1 b1 c1 d1 a2 b2 c2 d2 a3 test case (a1, b1, c1, d2)

Elke Salecker, Sabine Glesner 3

slide-8
SLIDE 8

Introduction Background Approach Evaluation Conclusions

Combinatorial Interaction Testing

CIT specification: parameters, values P1 P2 P3 P4 a1 b1 c1 d1 a2 b2 c2 d2 a3 test case (a1, b1, c1, d2) test set P1 × P2 × P3 × P4, 24 test cases

Elke Salecker, Sabine Glesner 3

slide-9
SLIDE 9

Introduction Background Approach Evaluation Conclusions

Combinatorial Interaction Testing

CIT specification: parameters, values P1 P2 P3 P4 a1 b1 c1 d1 a2 b2 c2 d2 a3 test case (a1, b1, c1, d2) test set P1 × P2 × P3 × P4, 24 test cases coverage criterion (t=2) 1 a3 b1 c1 d2 2 a2 b2 c2 d2 3 a1 b2 c1 d2 4 a1 b1 c2 d1 5 a2 b1 c1 d1 6 a3 b2 c2 d1

Elke Salecker, Sabine Glesner 3

slide-10
SLIDE 10

Introduction Background Approach Evaluation Conclusions

Combinatorial Interaction Testing

CIT specification: parameters, values P1 P2 P3 P4 a1 b1 c1 d1 a2 b2 c2 d2 a3 test case (a1, b1, c1, d2) test set P1 × P2 × P3 × P4, 24 test cases coverage criterion (t=2) 1 a3 b1 c1 d2 2 a2 b2 c2 d2 3 a1 b2 c1 d2 4 a1 b1 c2 d1 5 a2 b1 c1 d1 6 a3 b2 c2 d1 constraints ¬(b1 ∧ c2)

Elke Salecker, Sabine Glesner 3

slide-11
SLIDE 11

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign}

Elke Salecker, Sabine Glesner 4

slide-12
SLIDE 12

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign} rules def: ǫ → Assign((ObjAddr a), r) (lhs → rhs) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c start symbol ǫ

Elke Salecker, Sabine Glesner 4

slide-13
SLIDE 13

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign} rules def: ǫ → Assign((ObjAddr a), r) (lhs → rhs) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c start symbol ǫ derivation sequence of rule applications < add, addimm, r2c >

r

Elke Salecker, Sabine Glesner 4

slide-14
SLIDE 14

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign} rules def: ǫ → Assign((ObjAddr a), r) (lhs → rhs) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c start symbol ǫ derivation sequence of rule applications < add, addimm, r2c >

r Plus r r

Elke Salecker, Sabine Glesner 4

slide-15
SLIDE 15

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign} rules def: ǫ → Assign((ObjAddr a), r) (lhs → rhs) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c start symbol ǫ derivation sequence of rule applications < add, addimm, r2c >

r Plus r r Plus Plus r imm r

Elke Salecker, Sabine Glesner 4

slide-16
SLIDE 16

Introduction Background Approach Evaluation Conclusions

Grammars

nonterminals N = {ǫ, r, imm} terminals Σ = {Const, ObjAddr, Content, Plus, Assign} rules def: ǫ → Assign((ObjAddr a), r) (lhs → rhs) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c start symbol ǫ derivation sequence of rule applications < add, addimm, r2c >

r Plus r r Plus Plus r imm r Plus Plus Const 2 imm r

Elke Salecker, Sabine Glesner 4

slide-17
SLIDE 17

Introduction Background Approach Evaluation Conclusions

Outline

1 Introduction 2 CIT and Grammars 3 Test Set Generation 4 Evaluation 5 Conclusions

Elke Salecker, Sabine Glesner 5

slide-18
SLIDE 18

Introduction Background Approach Evaluation Conclusions

Symmetry in Derivations

r2c r → Const c i2c imm → Const c add r → Plus(r, r) addimm r → Plus(r, imm) derivation: add ⇒ addimm ⇒ r2c ⇒ i2c ⇒ r2c

Plus Plus Const 2 Const 2 Const 4

Elke Salecker, Sabine Glesner 6

slide-19
SLIDE 19

Introduction Background Approach Evaluation Conclusions

Symmetry in Derivations

r2c r → Const c i2c imm → Const c add r → Plus(r, r) addimm r → Plus(r, imm) derivation: add ⇒ addimm ⇒ r2c ⇒ i2c ⇒ r2c

Plus Plus Const 2 Const 2 Const 4

derivation: add ⇒ r2c ⇒ addimm ⇒ r2c ⇒ i2c

Plus Const 4 Plus Const 2 Const 2

Elke Salecker, Sabine Glesner 6

slide-20
SLIDE 20

Introduction Background Approach Evaluation Conclusions

Principle of Specification Generation

Derivations with Fixed Length 1 2 3 4 5 6 1 def add add r2c r2c r2c 2 def add use add r2c r2c 3 def add r2c add r2c r2c . . . 6 def add addimm r2c i2c use 7 def add addimm use i2c use . . . 30 def add use add use use

Elke Salecker, Sabine Glesner 7

slide-21
SLIDE 21

Introduction Background Approach Evaluation Conclusions

Principle of Specification Generation

Derivations with Fixed Length 1 2 3 4 5 6 1 def add add r2c r2c r2c 2 def add use add r2c r2c 3 def add r2c add r2c r2c . . . 6 def add addimm r2c i2c use 7 def add addimm use i2c use . . . 30 def add use add use use P1 P2 P3 P4 P5 P6 derivation length = number of parameters value of parameter i = rule can be applied in step i constraints for invalid combinations

Elke Salecker, Sabine Glesner 7

slide-22
SLIDE 22

Introduction Background Approach Evaluation Conclusions

CIT Specification Generation

1 Generate compact representation of derivations 2 Calculate value sets 3 Calculate constraints

Elke Salecker, Sabine Glesner 8

slide-23
SLIDE 23

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

Recursive Construction: Base Case derivation length = 1 store for terminal rules lhs nonterminal, rule identifier Recursion derivation length > 1

Elke Salecker, Sabine Glesner 9

slide-24
SLIDE 24

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

Recursive Construction: Base Case derivation length = 1 store for terminal rules lhs nonterminal, rule identifier Recursion derivation length > 1 check remaining rules split overall length for number of nonterminals in rule find smaller derivations store lhs nonterminal, rule identifier, extended pattern

Elke Salecker, Sabine Glesner 9

slide-25
SLIDE 25

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

def: ǫ →Assign((ObjAddr a),r) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅

Elke Salecker, Sabine Glesner 10

slide-26
SLIDE 26

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

def: ǫ →Assign((ObjAddr a),r) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, reg) > 3 r addimm < (1, reg), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,r) >

Elke Salecker, Sabine Glesner 10

slide-27
SLIDE 27

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

def: ǫ →Assign((ObjAddr a),r) add: r → Plus(r, r) addimm: r → Plus(r, imm) use: r → Content(ObjAddr a) r2c: r → Const c r2i: r → imm i2c: imm → Const c L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, reg) > 3 r addimm < (1, reg), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,r) > 4 add < (1, r), (2, r) > < (2, r), (1, r) >

Elke Salecker, Sabine Glesner 10

slide-28
SLIDE 28

Introduction Background Approach Evaluation Conclusions

Generate Value Sets

Recursive Construction: Base Case derivation length = 1 collect rules for length 1 Recursion derivation length > 1 iterate over rules with considered nonterminal extend parameter with rules for each rule iterate over alternatives descend for each nonterminal

Elke Salecker, Sabine Glesner 11

slide-29
SLIDE 29

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

P1 P2 P3 P4

Elke Salecker, Sabine Glesner 12

slide-30
SLIDE 30

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

P1 def P2 P3 P4

Elke Salecker, Sabine Glesner 12

slide-31
SLIDE 31

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

P1 def P2 addimm P3 P4

Elke Salecker, Sabine Glesner 12

slide-32
SLIDE 32

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

P1 def P2 add P3 use, r2c P4

Elke Salecker, Sabine Glesner 12

slide-33
SLIDE 33

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

P1 def P2 addimm P3 use, r2c P4 i2c

Elke Salecker, Sabine Glesner 12

slide-34
SLIDE 34

Introduction Background Approach Evaluation Conclusions

Generate Constraints

Recursive Construction: Base Case derivation length = 1 disjunction of all rules for length 1 Recursion derivation length > 1 iterate over rules with considered nonterminal construct disjunction for each rule iterate over alternatives construct disjunction for each alternative construct conjunction

Elke Salecker, Sabine Glesner 13

slide-35
SLIDE 35

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

Elke Salecker, Sabine Glesner 14

slide-36
SLIDE 36

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

def − → f

Elke Salecker, Sabine Glesner 14

slide-37
SLIDE 37

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

def − → (addimm ∧ f )

Elke Salecker, Sabine Glesner 14

slide-38
SLIDE 38

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

def − → (addimm ∧ ((use ∨ r2c) ∧ f))

Elke Salecker, Sabine Glesner 14

slide-39
SLIDE 39

Introduction Background Approach Evaluation Conclusions

Generate Compact Representation of Derivations

L NT Rule RHS Pattern 1 r use ∅ r2c ∅ imm i2c ∅ 2 r r2i < (1, imm) > ǫ def < (1, r) > 3 r addimm < (1, r), (1, imm) > add < (1, r), (1, r) > ǫ def < (2,reg) > 4 r addimm < (2, r), (1, imm) > add < (1, r), (2, r) > < (2, r), (1, r) > ǫ def < (3,r) >

def − → (addimm ∧ ((use ∨ r2c) ∧ i2c))

Elke Salecker, Sabine Glesner 14

slide-40
SLIDE 40

Introduction Background Approach Evaluation Conclusions

Outline

1 Introduction 2 CIT and Grammars 3 Test Set Generation 4 Evaluation 5 Conclusions

Elke Salecker, Sabine Glesner 15

slide-41
SLIDE 41

Introduction Background Approach Evaluation Conclusions

Size of Parameters

P1 P2 P3 P4 P5 P6 G1 Spec3 5 17 9 Spec4 10 38 26 13 Spec5 10 43 38 26 13 Spec6 12 55 47 38 26 13 G2 Spec3 5 21 13 Spec4 10 44 30 20 Spec5 10 53 47 32 20 Spec6 12 88 67 54 32 20

G1 86 rules 12 initial rules G2 110 rules 12 initial rules ➠ generation within seconds

Elke Salecker, Sabine Glesner 16

slide-42
SLIDE 42

Introduction Background Approach Evaluation Conclusions

Size of Test Sets

G1 G2 G3 G4 L 5 (1) 6 (2) 6 (1) 7 (2) 6 Spec 1 23 42 24 42 1 22 3 52 23 3 52 Derivations 64 128 144 288 TCases(ACTS) 16 25 13 22 8 Spec 1 23 44 24 44 1 22 3 54 23 3 54 Derivations 640 1280 2160 4320 TCases(ACTS) 22 32 17 28 10 Spec 1 23 46 24 46 1 22 3 56 23 3 56 Derivations 7168 14336 36288

  • TCases(ACTS)

32 38 24 30

Elke Salecker, Sabine Glesner 17

slide-43
SLIDE 43

Introduction Background Approach Evaluation Conclusions

Size of Test Sets

G1 G2 G3 G4 L 5 (1) 6 (2) 6 (1) 7 (2) 6 Spec 1 23 42 24 42 1 22 3 52 23 3 52 Derivations 64 128 144 288 TCases(ACTS) 16 25 13 22 8 Spec 1 23 44 24 44 1 22 3 54 23 3 54 Derivations 640 1280 2160 4320 TCases(ACTS) 22 32 17 28 10 Spec 1 23 46 24 46 1 22 3 56 23 3 56 Derivations 7168 14336 36288

  • TCases(ACTS)

32 38 24 30

  • significant reduction
  • generation failed for case study grammars

Elke Salecker, Sabine Glesner 17

slide-44
SLIDE 44

Introduction Background Approach Evaluation Conclusions

Conclusion and Future Work

Conclusion

  • new approach for grammar-based testing
  • criterion guarantees t-wise rule coverage
  • test selection based on combinatorial interaction testing
  • CIT specification automatically generated
  • very encouraging results regarding test set size

Elke Salecker, Sabine Glesner 18

slide-45
SLIDE 45

Introduction Background Approach Evaluation Conclusions

Conclusion and Future Work

Conclusion

  • new approach for grammar-based testing
  • criterion guarantees t-wise rule coverage
  • test selection based on combinatorial interaction testing
  • CIT specification automatically generated
  • very encouraging results regarding test set size

Future Work

  • enhancement of constraint generation
  • combination with alternative approach for grammar-based

testing

  • comprehensive case study for compiler back ends

Elke Salecker, Sabine Glesner 18