MODEL-BASED, MUTATION-DRIVEN TEST CASE GENERATION VIA - - PowerPoint PPT Presentation

model based mutation driven test case generation
SMART_READER_LITE
LIVE PREVIEW

MODEL-BASED, MUTATION-DRIVEN TEST CASE GENERATION VIA - - PowerPoint PPT Presentation

MODEL-BASED, MUTATION-DRIVEN TEST CASE GENERATION VIA HEURISTIC-GUIDED BRANCHING SEARCH Andreas Fellner FMCAD Student Forum Wien, October 4th 2017 TEST CASE GENERATION WITH 1 Andreas Fellner TEST CASE GENERATION WITH Abstract Model UML /


slide-1
SLIDE 1

MODEL-BASED, MUTATION-DRIVEN TEST CASE GENERATION VIA HEURISTIC-GUIDED BRANCHING SEARCH FMCAD Student Forum Wien, October 4th 2017 Andreas Fellner

slide-2
SLIDE 2

Andreas Fellner

TEST CASE GENERATION WITH

1

slide-3
SLIDE 3

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B

1

slide-4
SLIDE 4

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System

1

slide-5
SLIDE 5

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Automatic Translation

1

slide-6
SLIDE 6

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Mutated Action Systems Automatic Translation

1

slide-7
SLIDE 7

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Mutated Action Systems Automatic Translation

1

slide-8
SLIDE 8

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Mutated Action Systems Automatic Translation

1

c := c + 1 c := c Original: Mutation:

slide-9
SLIDE 9

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Mutated Action Systems Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 … Original: Mutation: Original: Mutation:

slide-10
SLIDE 10

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Test Cases Mutated Action Systems Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 … Original: Mutation: Original: Mutation:

slide-11
SLIDE 11

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Test Cases Mutated Action Systems Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 … Original: Mutation: Original: Mutation:

Input/Output Sequence

slide-12
SLIDE 12

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Test Cases Mutated Action Systems Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 … Original: Mutation: Original: Mutation:

Input/Output Sequence Branching Search

slide-13
SLIDE 13

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Test Cases Mutated Action Systems Mutants killed / alive / equivalent? Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 … Original: Mutation: Original: Mutation:

Input/Output Sequence Branching Search

slide-14
SLIDE 14

Andreas Fellner

TEST CASE GENERATION WITH

Abstract Model UML / Event-B Executable Model Action System Test Cases Mutated Action Systems Mutants killed / alive / equivalent? Automatic Translation

1

c := c + 1 c := c if false … if signal > 100 …

Mutant Killed:

  • Same Input
  • Different Output

Original: Mutation: Original: Mutation:

Input/Output Sequence Branching Search

slide-15
SLIDE 15

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

slide-16
SLIDE 16

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
slide-17
SLIDE 17

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches

? ! ? ? ! !

slide-18
SLIDE 18

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches

? ? ? ? ! ! ? ? ! !

slide-19
SLIDE 19

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches

? ? ? ? ! ! ? ? ! ! ! ?

slide-20
SLIDE 20

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches

? ? ? ? ! ! ? ? ! ! ! ? ? ? !

slide-21
SLIDE 21

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel

? ? ? ? ! ! ? ? ! ! ! ? ? ? !

slide-22
SLIDE 22

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel

? ? ? ? ! ! ? ? ! ! ! ? ? ? !

slide-23
SLIDE 23

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel

? ? ? ? ! ! ? ? ! ! ! ? ? ? ! ? !

slide-24
SLIDE 24

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-25
SLIDE 25

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-26
SLIDE 26

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-27
SLIDE 27

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-28
SLIDE 28

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches
  • Construct test cases from exploration graph

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-29
SLIDE 29

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches
  • Construct test cases from exploration graph
  • Prune irrelevant exploration steps

? ? ? ? ? ? ? ! ! ! ? ? ! ! ! ? ? ? ! ? !

slide-30
SLIDE 30

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches
  • Construct test cases from exploration graph
  • Prune irrelevant exploration steps

? ? ? ? ? ? ? ! ! ! ? ? ! ! ? ? ! ? !

slide-31
SLIDE 31

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches
  • Construct test cases from exploration graph
  • Prune irrelevant exploration steps

? ? ? ? ? ? ? ! ! ! ? ? ! ! ? !

slide-32
SLIDE 32

Andreas Fellner

BRANCHING SEARCH AND MUTATION KILLING

2

  • Explore model in branches
  • Each branch is explored in parallel
  • Explore mutated models in parallel
  • Only explore relevant parts
  • Set of heuristics guiding branching search
  • Where to start new branches
  • How to expand branches
  • Construct test cases from exploration graph
  • Prune irrelevant exploration steps
  • Map test cases to mutant kills

? ? ? ? ? ? ? ! ! ! ? ? ! ! ? !

slide-33
SLIDE 33

Andreas Fellner Andreas Fellner

  • Model based testing
  • Test high level behavior based on abstract description of the system
  • Mutation testing
  • Connect tests to faults
  • Prune irrelevant test steps
  • Demanding models from industrial context, thus emphasis on scalability
  • Branching Search
  • Fully leverage parallelism
  • Flexibility through set of heuristics
  • Shorter and more effective tests

SUMMARY

3

slide-34
SLIDE 34

Andreas Fellner Andreas Fellner

  • Distance metric based on mutant constraints
  • Designated strong killing algorithm
  • Semi symbolic methods
  • Dynamic symbolic execution
  • Unfoldings, Partial Orders & Petri Nets
  • Static analysis
  • Better estimation of state space
  • Eliminate equivalent mutants

FUTURE WORK

4