+ All Categories
Home > Documents > Open Challenges in Mutation Testing

Open Challenges in Mutation Testing

Date post: 09-Jan-2022
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
52
Open Challenges in Mutation Testing Panel Discussion
Transcript
Page 1: Open Challenges in Mutation Testing

Open Challenges in Mutation Testing

Panel Discussion

Page 2: Open Challenges in Mutation Testing

Objectives

“In 2000, I thought we were finished with mutation.”

Page 3: Open Challenges in Mutation Testing

Objectives

• Why is mutation testing not done in industry? (Or is it?)

• Where is research leading to?

• Where should research be leading to?

Page 4: Open Challenges in Mutation Testing

Panelists

Mark Hampton Mark Harman Jeff Offutt

Page 5: Open Challenges in Mutation Testing

Panelists

Mark Hampton Mark Harman Jeff Offutt

4th Order Mutants?

Page 6: Open Challenges in Mutation Testing

Survey Results

Page 7: Open Challenges in Mutation Testing

Mutation testing in practice

• Mutation is mainly used for research experiments

• Equivalent mutants are not ignored

• Equivalent mutants are mainly detected manually

• Mutation researchers like their own tools?

Page 8: Open Challenges in Mutation Testing

Industry Acceptance

Tools

Scalability

Marketing

Equivalent mutants

Understandability

Data

Real faults

0 0,5 1 1,5 2 2,5 3

Page 9: Open Challenges in Mutation Testing

Industry Acceptance

• Lack of automatic test data generation

• Lack of cooperation between industry and academia

• Industry has many pressing problems

• Huge effort and costs compared to other techniques

• Benefits unclear for evolving systems

Page 10: Open Challenges in Mutation Testing

Research Challenges

Tools

Equivalent mutants

Real world projects

Efficiency

New operators

HOM

Languages

0 0,5 1 1,5 2 2,5 3

Page 11: Open Challenges in Mutation Testing

Research Challenges• Test (data) generation

• Use mutation for other purposes such as repairing faults, automatic patching

• Developers don’t care how tests are built - they just want good tests

• Handle larger code with various features (databases, network, ...)

Page 12: Open Challenges in Mutation Testing

Mark Hamptonpreviously CTO & co-founder at Certess

Certess developed a Mutation Analysis tool.

Languages supported: VHDL, Verilog, SystemVerilog, C, C++Company grew from 3 to 25 in 5 years

Sold to a much larger company in early 2009Major clients: CISCO, Intel, Sony, Toshiba, Bosch etc

Page 13: Open Challenges in Mutation Testing

Open Challenges in Mutation Testing

Some common assumptions need to be questioned (5 in this presentation)

To be adopted MA needs to offer a convincing story regarding ROI

Page 14: Open Challenges in Mutation Testing

Assumption #1

Don't assume test checking is based on golden results that are manually checked

Lets assume the test environment is automated

−an oracle exists

−e.g. model based testing

Page 15: Open Challenges in Mutation Testing

Assumption #2

Killing a mutant should require a failing testcase

If we change assumption #1 then this means the testcase includes an oracle and code for checking the expected results

This means redefining strong mutation

To include propagation through the test environment until the indication of a passing/failing testcase

Page 16: Open Challenges in Mutation Testing

Assumption #3

Lets redefine the mutation analysis process to include humans interacting with the results

no need to collect all the mutants status before using the information

the order of the mutants is important

the process for results analysis is important

Page 17: Open Challenges in Mutation Testing

Assumption #4

Weak mutation is not a good solution to the performance issue

the principle value of the Certess product is in finding mutants that are “weak” dead

mutation is complimentary to coverage information

focus on the strengths of mutation compared to code coverage – finding problems in the propagation and detection of bugs

Page 18: Open Challenges in Mutation Testing

Assumption #5

A mutation analysis metric, based on sampling, can be many orders of magnitude faster than the published results

The Certess product provides a metric in a reasonable runtime even for large systems (100's of CPUs days of testcase execution) 

Page 19: Open Challenges in Mutation Testing

ROI 1/2

Can an ROI perspective help with the adoption of MA in industry

are we marketing the technology well ?

which niche should be the entry point for software testing ?

−where is the most pain ?

Page 20: Open Challenges in Mutation Testing

ROI 2/2

Is mutation highlighting a more fundamental issue that industry is ignoring ?

measuring the quality of testing should be a separate discipline from testing

− in the same way measuring that quality of the design has been specialized into testing

− should there be "qualifiers" in the same way we have coders and testers ?

Page 21: Open Challenges in Mutation Testing

Mark Harman

King’s College and University College London

Page 22: Open Challenges in Mutation Testing

New challenges

• Finding faults is easy;

• … there are too many to count …

• So we need to

• Take fault severity into account

• Develop test cases

• Develop fixes

Page 23: Open Challenges in Mutation Testing

HOM Testing

• First order mutants are not necessarily realistic

• We need tailored adaptive higher order mutation

• We need to take account of fault models

• We need non functional mutants

Page 24: Open Challenges in Mutation Testing

Jeff Offutt

George Mason University

Page 25: Open Challenges in Mutation Testing

Jeff OffuttGeorge Mason University

• Hampton – ROI• Harman – HOM

Mutation 2010 Panel 13

Page 26: Open Challenges in Mutation Testing

Jeff OffuttGeorge Mason University

• Hampton – ROI• Harman – HOM

Mutation 2010 Panel 13

• Offutt – YAMGG

Page 27: Open Challenges in Mutation Testing

Jeff OffuttGeorge Mason University

• Hampton – ROI• Harman – HOM

Mutation 2010 Panel 13

• Offutt – YAMGG

What ????What does that mean?

We can’t even pronounce “YAMGG”!

Page 28: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Page 29: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Mutation 2000

Page 30: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Here is the path to build a commercial mutation system.

Jeff

Mutation 2000

Page 31: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Here is the path to build a commercial mutation system.

Jeff

I quit.

Mutation 2000

Page 32: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Here is the path to build a commercial mutation system.

Jeff

I quit.

Yu-Seung Ma

Mutation 2000

Page 33: Open Challenges in Mutation Testing

Research into Mutation Operators

Mutation 2010 Panel 14

Here is the path to build a commercial mutation system.

Jeff

I quit.

Yu-Seung Ma

I have an idea!OO mutation operators …

muJava

Mutation 2000

Page 34: Open Challenges in Mutation Testing

Last Decade of Mutation Operators

• Since then, we have had a veritable explosion in languages we can mutate

• We needed mutation operators for each language• Java OO, XML, JSPs, HTML, SQL, XML, PhP, inter-class,

statecharts, dynamic typing, WS-BPEL, Agents, Actors, …• Most of today’s papers present new mutation operators

• And we need a mutation engine for each language!

Mutation 2010 Panel 15

Page 35: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Page 36: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Page 37: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Mutation Operators

Page 38: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Mutation Operators

ProgramObject

(Base String)

Page 39: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutants

Page 40: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Page 41: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 16

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

This is a lot of work !

Page 42: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Page 43: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Page 44: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Page 45: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Page 46: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Grammar for

Language

Page 47: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Grammar for

Language

Rules for Mutation

Operators

Page 48: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Grammar for

Language

Rules for Mutation

Operators

YAMGG

Page 49: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Grammar for

Language

Rules for Mutation

Operators

YAMGG

Tool to create mutants

Page 50: Open Challenges in Mutation Testing

Mutant Generators

Mutation 2010 Panel 17

Language

Mutation Operators

ProgramObject

(Base String)

Special purpose tool to create

mutantsMutants

Yet Another Mutant Generator Generator

Grammar for

Language

Rules for Mutation

Operators

ProgramObject

(Base String)

YAMGG

MutantsTool to create mutants

Page 51: Open Challenges in Mutation Testing

Open Challenges in Mutation Testing

• Hampton – ROI• Harman – HOM• Offutt – YAMGG

Mutation 2010 Panel 18

Page 52: Open Challenges in Mutation Testing

Open Challenges in Mutation Testing

• Hampton – ROI• Harman – HOM• Offutt – YAMGG

Mutation 2010 Panel 18

Your turn !!


Recommended