Efficient and Effective Mutation Testing: Supporting the - - PowerPoint PPT Presentation

efficient and effective mutation testing supporting the
SMART_READER_LITE
LIVE PREVIEW

Efficient and Effective Mutation Testing: Supporting the - - PowerPoint PPT Presentation

Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects Gregory M. Kapfhammer Department of Computer Science Allegheny College http://www.cs.allegheny.edu/ gkapfham/


slide-1
SLIDE 1

Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

Gregory M. Kapfhammer†

Department of Computer Science Allegheny College

http://www.cs.allegheny.edu/∼gkapfham/

University of Delhi – May 2, 2012

†Joint with Ren´

e Just and Franz Schweiggert (University of Ulm) and Jonathan Miller Kauffman (Allegheny College)

slide-2
SLIDE 2

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Presenter Introduction: Gregory M. Kapfhammer

test

testing

software

suites

prioritization

components coverage empirically regression suite

applications evaluating

algorithm analysis data effectiveness empirical genetic performance understanding using

approach commercialofftheshelf comparison comprehensive constrained creation databasecentric environments execution finding framework identifying interactive java methods multiplots mutation party prioritized reduction relational study third timeaware towards

105 adequacy approaches array automatically building call challenges chapter communication compare compressing computer conditional cost cots covering creating criteria database databaseaware databasedriven databases declarative dependable detection devices distributed distributing duringsearchbased dynamic efficiency efficient engineering environment evaluate examination executing experimental family flow forward frameworks free generation greedy gui hamiltonian handbook heaps implementation improve incorporating increase information initial intranode invariant javaspace javaspacebased kernel knapsack linux measurement memory method monitoring
  • perators
paths poster potential preliminary primitives prioritizations prioritizers prioritizing problematic receive remote reports resource resourceconstrained results role runtime science searchbased selection solutions solvers space studies studying supported synthetic techniques transmission transparently trees tuple unstructured wrappers

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-3
SLIDE 3

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Inspiration and Motivation

The magic of myth and legend has come true in

  • ur time. One types the correct incantation on

a keyboard, and a display screen comes to life, showing things that never were nor could be. Frederick P . Brooks, Jr.

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-4
SLIDE 4

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Inspiration and Motivation

The magic of myth and legend has come true in

  • ur time. One types the correct incantation on

a keyboard, and a display screen comes to life, showing things that never were nor could be. Frederick P . Brooks, Jr. In reference to software!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-5
SLIDE 5

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Inspiration and Motivation

I believe the hard part of building software to be the specification, design, and testing of this con- ceptual construct, not the labor of representing it and testing the fidelity of the representation. Frederick P . Brooks, Jr.

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-6
SLIDE 6

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Inspiration and Motivation

I believe the hard part of building software to be the specification, design, and testing of this con- ceptual construct, not the labor of representing it and testing the fidelity of the representation. Frederick P . Brooks, Jr. What happens if the “incantation” is incorrect?

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-7
SLIDE 7

Introduction Mutation Analysis Empirical Evaluation Conclusion Important Points

Inspiration and Motivation

I believe the hard part of building software to be the specification, design, and testing of this con- ceptual construct, not the labor of representing it and testing the fidelity of the representation. Frederick P . Brooks, Jr. How do we efficiently and effectively test software?

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-8
SLIDE 8

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-9
SLIDE 9

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Input

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-10
SLIDE 10

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Input Output

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-11
SLIDE 11

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-12
SLIDE 12

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-13
SLIDE 13

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-14
SLIDE 14

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-15
SLIDE 15

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-16
SLIDE 16

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-17
SLIDE 17

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output Test Verdict

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-18
SLIDE 18

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output Test Verdict Expected Output Output

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-19
SLIDE 19

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output Test Verdict Expected Output Output Test Verdict The test case passes and the code is correct!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-20
SLIDE 20

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output Test Verdict Expected Output Output

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-21
SLIDE 21

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Case?

Method Under Test Test Set Up Input Output Test Clean Up Test Oracle Expected Output Test Verdict Expected Output Output Test Verdict The test case fails and a defect is found!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-22
SLIDE 22

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-23
SLIDE 23

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-24
SLIDE 24

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-25
SLIDE 25

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-26
SLIDE 26

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-27
SLIDE 27

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-28
SLIDE 28

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-29
SLIDE 29

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-30
SLIDE 30

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-31
SLIDE 31

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-32
SLIDE 32

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-33
SLIDE 33

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-34
SLIDE 34

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-35
SLIDE 35

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

B2 B2 B2 B2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-36
SLIDE 36

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

B2 B2 B2 B2 B2 B2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-37
SLIDE 37

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

B2 B2 B2 B2 B2 B2 B2 B2 B2 B2

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-38
SLIDE 38

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-39
SLIDE 39

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

How Good is Test Suite T?

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-40
SLIDE 40

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

How Good is Test Suite T? Coverage Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-41
SLIDE 41

Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing

What is a Test Suite?

T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 Test Suite T = T1, T2, . . . , T9, T10 R1 R2 R3 R4 R5 R6 F1 F2 F3 F4 B1 B2

Requirements R = {R1, . . . , R6}, Features F = {F1, . . . , F4}, Bug Fixes B = {B1, B2}

How Good is Test Suite T? Coverage Analysis Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-42
SLIDE 42

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10)

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-43
SLIDE 43

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10)

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-44
SLIDE 44

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) Implemented

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-45
SLIDE 45

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) Implemented Potential Fault

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-46
SLIDE 46

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-47
SLIDE 47

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-48
SLIDE 48

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 0

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-49
SLIDE 49

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 0 false false

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-50
SLIDE 50

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 15

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-51
SLIDE 51

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 15 true true

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-52
SLIDE 52

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-53
SLIDE 53

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10 false true

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-54
SLIDE 54

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10 false true Can the tests differentiate between implemented and potential fault?

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-55
SLIDE 55

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10 false true If yes, then the tests are adequate!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-56
SLIDE 56

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10 false true If no, then the tests must be improved!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-57
SLIDE 57

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Conceptual Faults

if(a > 10) if(a >= 10) a true false a true false a = 10 false true Purposefully insert faults in order to implement quality software!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-58
SLIDE 58

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-59
SLIDE 59

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-60
SLIDE 60

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-61
SLIDE 61

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-62
SLIDE 62

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator Methodically inject small syntactical faults into the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-63
SLIDE 63

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator Methodically inject small syntactical faults into the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-64
SLIDE 64

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator Methodically inject small syntactical faults into the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-65
SLIDE 65

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator Methodically inject small syntactical faults into the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-66
SLIDE 66

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Mutation Operator Mutation Operator Mutation Operator Mutation Operator

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-67
SLIDE 67

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-68
SLIDE 68

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-69
SLIDE 69

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-70
SLIDE 70

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-71
SLIDE 71

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-72
SLIDE 72

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-73
SLIDE 73

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-74
SLIDE 74

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-75
SLIDE 75

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-76
SLIDE 76

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test The test suite cannot kill the mutant – either a test suite weakness or an equivalent mutant!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-77
SLIDE 77

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Overview of Mutation Analysis

Test Case T1 Test Case T2 Test Case T3 Test Case T4 Execute the test suite after enabling a single mutant in the program under test Repeat this process for all of the test cases and mutants – calculate mutation score when finished

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-78
SLIDE 78

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-79
SLIDE 79

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-80
SLIDE 80

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-81
SLIDE 81

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-82
SLIDE 82

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation Syntax Tree Transformation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-83
SLIDE 83

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation Syntax Tree Transformation Expressions and Statements

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-84
SLIDE 84

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation Syntax Tree Transformation Expressions and Statements Compiler Integrated

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-85
SLIDE 85

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation Syntax Tree Transformation Expressions and Statements Compiler Integrated Comprehensive Empirical Study

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-86
SLIDE 86

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Contributions of this Presentation

Efficient Mutation Analysis Challenges Solutions Conditional Mutation Syntax Tree Transformation Expressions and Statements Compiler Integrated Comprehensive Empirical Study Efficient Technique - Fully Integrated into the Java 6 SE Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-87
SLIDE 87

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-88
SLIDE 88

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

Methodically inject small syntactical faults into the program under test

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-89
SLIDE 89

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-90
SLIDE 90

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

= ⇒ = ⇒

  • y = a - x;
  • y = a + x;
  • y = a / x;
  • if(b < a)
  • if(b != a)
  • if(b == a)

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-91
SLIDE 91

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

Unbiased and powerful method for assessing

  • racles and

input values

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-92
SLIDE 92

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Understanding Mutation Analysis

public int eval(int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max(int a, int b){ int max = a; if(b>a){ max=b; } return max; }

Unbiased and powerful method for assessing

  • racles and

input values Useful method for fault seeding during the empirical study

  • f testing

techniques

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-93
SLIDE 93

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-94
SLIDE 94

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-95
SLIDE 95

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-96
SLIDE 96

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-97
SLIDE 97

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-98
SLIDE 98

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-99
SLIDE 99

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-100
SLIDE 100

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation Mutation Analysis Tests

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-101
SLIDE 101

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation Mutation Analysis Tests Results

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-102
SLIDE 102

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation Mutation Analysis Tests Results Individually Executing the Mutants is Too Expensive

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-103
SLIDE 103

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Mutation Analysis Challenges

Mutant Generation Mutation Operators Program Mutants Often Yields a Substantial Num- ber of Mutants High Time Over- head for Generation Mutation Analysis Tests Results Individually Executing the Mutants is Too Expensive Prior Solutions?

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-104
SLIDE 104

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-105
SLIDE 105

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-106
SLIDE 106

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-107
SLIDE 107

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Sampling Selection

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-108
SLIDE 108

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Do Smarter

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-109
SLIDE 109

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Do Smarter Distributed Weak Mutation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-110
SLIDE 110

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Do Smarter Do Faster

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-111
SLIDE 111

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Do Smarter Do Faster Compiler Integrated Bytecode Transformation Mutant Schemata

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-112
SLIDE 112

Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts

Prior Work in Mutation Analysis

Improving Mutation Analysis Offutt and Untch Do Fewer Do Smarter Do Faster Higher Order Mutation Jia and Harman

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-113
SLIDE 113

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Conditional Mutation

Conditional Mutation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-114
SLIDE 114

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Conditional Mutation

Conditional Mutation Encapsulates all mutants within the same block

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-115
SLIDE 115

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Conditional Mutation

Conditional Mutation Encapsulates all mutants within the same block Can be inte- grated within the compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-116
SLIDE 116

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Conditional Mutation

Conditional Mutation Encapsulates all mutants within the same block Transforms the abstract syntax tree (AST) Can be inte- grated within the compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-117
SLIDE 117

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Conditional Mutation

Conditional Mutation Encapsulates all mutants within the same block Transforms the abstract syntax tree (AST) Stmt → Conditional Stmt (if-then-else, switch) Expr → Conditional Expr (conditional operator ?:) Can be inte- grated within the compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-118
SLIDE 118

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Transforming the AST

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; }

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-119
SLIDE 119

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Transforming the AST

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; }

ASSIGN IDENT y BINARY ∗ a x

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-120
SLIDE 120

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Transforming the AST

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; }

ASSIGN IDENT y BINARY ∗ a x

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-121
SLIDE 121

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Transforming the AST

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; }

ASSIGN IDENT y BINARY ∗ a x

= ⇒ = ⇒

ASSIGN IDENT y COND-EXPR THEN BINARY + a x COND (M NO ==2) ELSE COND-EXPR THEN BINARY

  • a

x COND (M NO ==1) ELSE BINARY ∗ a x

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-122
SLIDE 122

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-123
SLIDE 123

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-124
SLIDE 124

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-125
SLIDE 125

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = (M_NO==1)? a - x : a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-126
SLIDE 126

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = (M_NO==2)? a + x : (M_NO==1)? a - x : a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-127
SLIDE 127

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = (M_NO==3)? a / x : (M_NO==2)? a + x : (M_NO==1)? a - x : a * x ; y += b; return y; } 1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-128
SLIDE 128

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Source Code View of Inserting Mutants

public int eval(int x){ int a=3, b=1, y; y = (M_NO==3)? a / x : (M_NO==2)? a + x : (M_NO==1)? a - x : a * x ; y += b; return y; }

Mutants that are not ex- ecuted cannot be killed

1 Define mutation operators MOP(x ∗ y) = {x − y, x + y, x/y} 2 Determine whether current expression or statement is

affected by mutation

3 Apply mutation operators

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-129
SLIDE 129

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Collecting and Using Mutation Coverage

public int eval(int x){ int a=3, b=1, y; y = (M_NO==3)? a / x : (M_NO==2)? a + x : (M_NO==1)? a - x : a * x ; y += b; return y; }

Mutants that are not ex- ecuted cannot be killed

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-130
SLIDE 130

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Collecting and Using Mutation Coverage

public int eval(int x){ int a=3, b=1, y; y = (M_NO==3)? a / x : (M_NO==2)? a + x : (M_NO==1)? a - x : (M_NO==0 && COVERED(1,3))? a * x : a * x ; y += b; return y; }

Mutants that are not ex- ecuted cannot be killed Determine covered mutants with addi- tional instrumentation

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-131
SLIDE 131

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Collecting and Using Mutation Coverage

public int eval(int x){ int a=3, b=1, y; y = (M_NO==3)? a / x : (M_NO==2)? a + x : (M_NO==1)? a - x : (M_NO==0 && COVERED(1,3))? a * x : a * x ; y += b; return y; }

Mutants that are not ex- ecuted cannot be killed Determine covered mutants with addi- tional instrumentation Only execute and investi- gate the covered mutants

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-132
SLIDE 132

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-133
SLIDE 133

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler Enhanced the Standard Java Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-134
SLIDE 134

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler Enhanced the Standard Java Compiler Source Files

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-135
SLIDE 135

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler Enhanced the Standard Java Compiler Source Files Common Compiler Options

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-136
SLIDE 136

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler Enhanced the Standard Java Compiler Source Files Common Compiler Options Domain Specific Language

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-137
SLIDE 137

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Compiler

MAJOR’s Compiler Enhanced the Standard Java Compiler Source Files Common Compiler Options Domain Specific Language Bytecode with Embedded Mutants

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-138
SLIDE 138

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Integration into the Java Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-139
SLIDE 139

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Integration into the Java Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-140
SLIDE 140

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Integration into the Java Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-141
SLIDE 141

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Integration into the Java Compiler

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-142
SLIDE 142

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Domain Specific Language

// variable declaration listCOR={&&, ||, ==, !=}; // Define replacement list BIN(+)<"org"> -> {-,*}; BIN(*)<"org"> -> {/,%}; // Define own operator myOp{ BIN(&&) -> listCOR; BIN(||) -> listCOR; COR; LVR; } // Enable built-in operator AOR AOR<"org">; // Enable operator myOp myOp<"java.lang.System@println">;

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-143
SLIDE 143

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Domain Specific Language

// variable declaration listCOR={&&, ||, ==, !=}; // Define replacement list BIN(+)<"org"> -> {-,*}; BIN(*)<"org"> -> {/,%}; // Define own operator myOp{ BIN(&&) -> listCOR; BIN(||) -> listCOR; COR; LVR; } // Enable built-in operator AOR AOR<"org">; // Enable operator myOp myOp<"java.lang.System@println">;

Specify mutation

  • perators in detail

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-144
SLIDE 144

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Domain Specific Language

// variable declaration listCOR={&&, ||, ==, !=}; // Define replacement list BIN(+)<"org"> -> {-,*}; BIN(*)<"org"> -> {/,%}; // Define own operator myOp{ BIN(&&) -> listCOR; BIN(||) -> listCOR; COR; LVR; } // Enable built-in operator AOR AOR<"org">; // Enable operator myOp myOp<"java.lang.System@println">;

Specify mutation

  • perators in detail

Define own mutation

  • perator groups

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-145
SLIDE 145

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

MAJOR’s Domain Specific Language

// variable declaration listCOR={&&, ||, ==, !=}; // Define replacement list BIN(+)<"org"> -> {-,*}; BIN(*)<"org"> -> {/,%}; // Define own operator myOp{ BIN(&&) -> listCOR; BIN(||) -> listCOR; COR; LVR; } // Enable built-in operator AOR AOR<"org">; // Enable operator myOp myOp<"java.lang.System@println">;

Specify mutation

  • perators in detail

Define own mutation

  • perator groups

Enable operators for a specific package, class, or method

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-146
SLIDE 146

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Optimized Mutation Analysis Process

1 Embed and compile all mutants 2 Run test suite on instrumented program 3 Sort tests according to their runtime 4 Perform mutation analysis with reordered test suite

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-147
SLIDE 147

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Optimized Mutation Analysis Process

1 Embed and compile all mutants 2 Run test suite on instrumented program 3 Sort tests according to their runtime 4 Perform mutation analysis with reordered test suite

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-148
SLIDE 148

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Optimized Mutation Analysis Process

1 Embed and compile all mutants 2 Run test suite on instrumented program 3 Sort tests according to their runtime 4 Perform mutation analysis with reordered test suite

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-149
SLIDE 149

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis with MAJOR

Optimized Mutation Analysis Process

1 Embed and compile all mutants 2 Run test suite on instrumented program 3 Sort tests according to their runtime 4 Perform mutation analysis with reordered test suite

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-150
SLIDE 150

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Mutant Generation and Compilation

1 2 3 4 5 6 7 8 9 10 11 12 20000 40000 60000 80000 100000 120000 140000 Compiler runtime in seconds Number of mutants apache ant jfreechart itext java pathfinder commons math commons lang numerics4j

Overhead for generating and compiling mutants is negligible

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-151
SLIDE 151

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Mutant Generation and Compilation

1 2 3 4 5 6 7 8 9 10 11 12 20000 40000 60000 80000 100000 120000 140000 Compiler runtime in seconds Number of mutants apache ant jfreechart itext java pathfinder commons math commons lang numerics4j

Overhead for generating and compiling mutants is negligible

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-152
SLIDE 152

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Time and Space Overhead

Application Mutants Runtime of test suite Memory consumption

  • riginal

instrumented

  • riginal

instrumented wcs wcs+cov aspectj 406,382 4.3 4.8 5.0 559 813 apache ant 60,258 331.0 335.0 346.0 237 293 jfreechart 68,782 15.0 18.0 23.0 220 303 itext 124,184 5.1 5.6 6.3 217 325 java pathfinder 37,331 17.0 22.0 29.0 182 217 commons math 67,895 67.0 83.0 98.0 153 225 commons lang 25,783 10.3 11.8 14.8 104 149 numerics4j 5,869 1.2 1.3 1.6 73 90

  • Runtime overhead is application dependent
  • Larger for CPU-bound applications
  • Small for I/O-bound applications
  • Even for large projects, applicable on commodity workstations

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-153
SLIDE 153

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Time and Space Overhead

Application Mutants Runtime of test suite Memory consumption

  • riginal

instrumented

  • riginal

instrumented wcs wcs+cov aspectj 406,382 4.3 4.8 5.0 559 813 apache ant 60,258 331.0 335.0 346.0 237 293 jfreechart 68,782 15.0 18.0 23.0 220 303 itext 124,184 5.1 5.6 6.3 217 325 java pathfinder 37,331 17.0 22.0 29.0 182 217 commons math 67,895 67.0 83.0 98.0 153 225 commons lang 25,783 10.3 11.8 14.8 104 149 numerics4j 5,869 1.2 1.3 1.6 73 90

  • Runtime overhead is application dependent
  • Larger for CPU-bound applications
  • Small for I/O-bound applications
  • Even for large projects, applicable on commodity workstations

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-154
SLIDE 154

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Time and Space Overhead

Application Mutants Runtime of test suite Memory consumption

  • riginal

instrumented

  • riginal

instrumented wcs wcs+cov aspectj 406,382 4.3 4.8 5.0 559 813 apache ant 60,258 331.0 335.0 346.0 237 293 jfreechart 68,782 15.0 18.0 23.0 220 303 itext 124,184 5.1 5.6 6.3 217 325 java pathfinder 37,331 17.0 22.0 29.0 182 217 commons math 67,895 67.0 83.0 98.0 153 225 commons lang 25,783 10.3 11.8 14.8 104 149 numerics4j 5,869 1.2 1.3 1.6 73 90

  • Runtime overhead is application dependent
  • Larger for CPU-bound applications
  • Small for I/O-bound applications
  • Even for large projects, applicable on commodity workstations

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-155
SLIDE 155

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Time and Space Overhead

Application Mutants Runtime of test suite Memory consumption

  • riginal

instrumented

  • riginal

instrumented wcs wcs+cov aspectj 406,382 4.3 4.8 5.0 559 813 apache ant 60,258 331.0 335.0 346.0 237 293 jfreechart 68,782 15.0 18.0 23.0 220 303 itext 124,184 5.1 5.6 6.3 217 325 java pathfinder 37,331 17.0 22.0 29.0 182 217 commons math 67,895 67.0 83.0 98.0 153 225 commons lang 25,783 10.3 11.8 14.8 104 149 numerics4j 5,869 1.2 1.3 1.6 73 90

  • Runtime overhead is application dependent
  • Larger for CPU-bound applications
  • Small for I/O-bound applications
  • Even for large projects, applicable on commodity workstations

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-156
SLIDE 156

Introduction Mutation Analysis Empirical Evaluation Conclusion Compilation Efficiency

Time and Space Overhead

Application Mutants Runtime of test suite Memory consumption

  • riginal

instrumented

  • riginal

instrumented wcs wcs+cov aspectj 406,382 4.3 4.8 5.0 559 813 apache ant 60,258 331.0 335.0 346.0 237 293 jfreechart 68,782 15.0 18.0 23.0 220 303 itext 124,184 5.1 5.6 6.3 217 325 java pathfinder 37,331 17.0 22.0 29.0 182 217 commons math 67,895 67.0 83.0 98.0 153 225 commons lang 25,783 10.3 11.8 14.8 104 149 numerics4j 5,869 1.2 1.3 1.6 73 90

  • Runtime overhead is application dependent
  • Larger for CPU-bound applications
  • Small for I/O-bound applications
  • Even for large projects, applicable on commodity workstations

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-157
SLIDE 157

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis Efficiency

Evaluating and Improving Mutation Analysis

20 40 60 80 100 120 140 160 180 20 40 60 80 100 Number of killed mutants Runtime in seconds

  • ptimized order (using coverage information)

random order (using coverage information)

  • riginal order (using coverage information)
  • ptimized order (without coverage information)

random order (without coverage information)

  • riginal order (without coverage information)
  • Mutation analysis is not feasible without coverage information
  • Reordering the test suite significantly speeds up the process,

especially if runtimes of tests differ by orders of magnitude

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-158
SLIDE 158

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis Efficiency

Evaluating and Improving Mutation Analysis

20 40 60 80 100 120 140 160 180 20 40 60 80 100 Number of killed mutants Runtime in seconds

  • ptimized order (using coverage information)

random order (using coverage information)

  • riginal order (using coverage information)
  • ptimized order (without coverage information)

random order (without coverage information)

  • riginal order (without coverage information)
  • Mutation analysis is not feasible without coverage information
  • Reordering the test suite significantly speeds up the process,

especially if runtimes of tests differ by orders of magnitude

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-159
SLIDE 159

Introduction Mutation Analysis Empirical Evaluation Conclusion Mutation Analysis Efficiency

Evaluating and Improving Mutation Analysis

20 40 60 80 100 120 140 160 180 20 40 60 80 100 Number of killed mutants Runtime in seconds

  • ptimized order (using coverage information)

random order (using coverage information)

  • riginal order (using coverage information)
  • ptimized order (without coverage information)

random order (without coverage information)

  • riginal order (without coverage information)
  • Mutation analysis is not feasible without coverage information
  • Reordering the test suite significantly speeds up the process,

especially if runtimes of tests differ by orders of magnitude

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-160
SLIDE 160

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-161
SLIDE 161

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-162
SLIDE 162

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite Mutation Score

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-163
SLIDE 163

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite Mutation Score Improve Tests

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-164
SLIDE 164

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite Mutation Score Improve Tests Automated Manual

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-165
SLIDE 165

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite Mutation Score Improve Tests Use Tests

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-166
SLIDE 166

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Improving Test Suite Quality

Mutation Analysis Program Test Suite Mutation Score Improve Tests Use Tests Test improvement is only effective if mutation analysis is efficient!

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-167
SLIDE 167

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Reviewing MAJOR’s Contributions

Mutation Analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-168
SLIDE 168

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Reviewing MAJOR’s Contributions

Mutation Analysis Efficiency: MAJOR has ac- ceptable time and space over- heads and scales to large, real-world programs

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-169
SLIDE 169

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Reviewing MAJOR’s Contributions

Mutation Analysis Efficiency: MAJOR has ac- ceptable time and space over- heads and scales to large, real-world programs Usability: MAJOR’s inte- gration into the Java SE compiler makes it a no- hassle, drop-in tool

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-170
SLIDE 170

Introduction Mutation Analysis Empirical Evaluation Conclusion Retrospective

Reviewing MAJOR’s Contributions

Mutation Analysis Efficiency: MAJOR has ac- ceptable time and space over- heads and scales to large, real-world programs Usability: MAJOR’s inte- gration into the Java SE compiler makes it a no- hassle, drop-in tool We will release MAJOR as free and open source software

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-171
SLIDE 171

Introduction Mutation Analysis Empirical Evaluation Conclusion Conclusions and Future Work

Conclusion

Key Concepts and Features:

  • Compiler-integrated solution
  • Conditional mutation with the abstract syntax tree
  • Furnishes its own domain specific language
  • Collects and leverages mutation coverage information

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-172
SLIDE 172

Introduction Mutation Analysis Empirical Evaluation Conclusion Conclusions and Future Work

Conclusion

Key Concepts and Features:

  • Compiler-integrated solution
  • Conditional mutation with the abstract syntax tree
  • Furnishes its own domain specific language
  • Collects and leverages mutation coverage information

Characteristics of MAJOR:

  • Fast and scalable technique
  • Configurable and extensible mutation tool
  • Enables an optimized workflow for mutation analysis

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-173
SLIDE 173

Introduction Mutation Analysis Empirical Evaluation Conclusion Conclusions and Future Work

Recently Published Papers

  • Ren´

e Just, Gregory M. Kapfhammer, and Franz

  • Schweiggert. Using conditional mutation to increase the

efficiency of mutation analysis. In Proceedings of the 6th International Workshop on the Automation of Software Test, Honolulu, Hawaii, May 2011.

  • Ren´

e Just, Franz Schweiggert, and Gregory M.

  • Kapfhammer. MAJOR: An efficient and extensible tool for

mutation analysis in a Java compiler. In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering (Tool Paper), Lawrence, Kansas, November 2011.

Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

slide-174
SLIDE 174

Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

Gregory M. Kapfhammer

Department of Computer Science Allegheny College

http://www.cs.allegheny.edu/∼gkapfham/

Thank you for your attention! I welcome your questions and comments.