A CONTROL INSTRUMENTS COMPANY The Effectiveness of T-way Test Data Generation or Data Driven Testing Michael Ellims.

Slides:



Advertisements
Similar presentations
1 Software Unit Test Coverage And Test Adequacy Hong Zhu, Patrick A. V. Hall, John H.R. May Presented By: Arpita Gandhi.
Advertisements

Sufficient Mutant Operators Offutt, Rothermel, Lee, Untch, and Zapf TOSEM, April 1996 Slide text copyright Robert W. Hasker, 2006 Material (and figures)
CSUN Engineering Management Six Sigma Quality Engineering Week 11 Improve Phase.
White Box and Black Box Testing Tor Stålhane. What is White Box testing White box testing is testing where we use the info available from the code of.
Principal Component Analysis Based on L1-Norm Maximization Nojun Kwak IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
White-Box Testing Techniques IV
MUTATION TESTING. Mutation testing is a technique that focuses on measuring the adequacy (quality) of test data (or test cases). Modify a program by introducing.
Experimental Design Fr. Clinic II. Planning Begins with carefully considering what the objectives (or goals)are –How do our filters work? –Which filter.
An Analysis and Survey of the Development of Mutation Testing by Yue Jia and Mark Harmon A Quick Summary For SWE6673.
Of 17 Assessing the Influence of Multiple Test Case Selection on Mutation Experiments Marcio E. Delamaro and Jeff Offutt George Mason University & Universidade.
Theoretical Program Checking Greg Bronevetsky. Background The field of Program Checking is about 13 years old. Pioneered by Manuel Blum, Hal Wasserman,
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Unit Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 27, 2007.
1 Software Testing and Quality Assurance Lecture 9 - Software Testing Techniques.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
A new crossover technique in Genetic Programming Janet Clegg Intelligent Systems Group Electronics Department.
(c) 2007 Mauro Pezzè & Michal Young Ch 16, slide 1 Fault-Based Testing.
Parameterizing Random Test Data According to Equivalence Classes Chris Murphy, Gail Kaiser, Marta Arias Columbia University.
1 Today More on random testing + symbolic constraint solving (“concolic” testing) Using summaries to explore fewer paths (SMART) While preserving level.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 9 Functional Testing
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Software Testing and Validation SWE 434
Genetic Regulatory Network Inference Russell Schwartz Department of Biological Sciences Carnegie Mellon University.
Kyle Mundt February 3,  Richard Lipton, 1971  A way of testing your tests  Alter your code in various ways  Check to see if tests fail on altered.
What is Software Testing? And Why is it So Hard J. Whittaker paper (IEEE Software – Jan/Feb 2000) Summarized by F. Tsui.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
Coverage – “Systematic” Testing Chapter 20. Dividing the input space for failure search Testing requires selecting inputs to try on the program, but how.
Testing Testing Techniques to Design Tests. Testing:Example Problem: Find a mode and its frequency given an ordered list (array) of with one or more integer.
Test Drivers and Stubs More Unit Testing Test Drivers and Stubs CEN 5076 Class 11 – 11/14.
Applying Neural Networks Michael J. Watts
Software Reliability in Nuclear Systems Arsen Papisyan Anthony Gwyn.
Hidden Markov Models for Software Piracy Detection Shabana Kazi Mark Stamp HMMs for Piracy Detection 1.
PHMMs for Metamorphic Detection Mark Stamp 1PHMMs for Metamorphic Detection.
G Lecture 7 Confirmatory Factor Analysis
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Mutation Testing G. Rothermel. Fault-Based Testing White-box and black-box testing techniques use coverage of code or requirements as a “proxy” for designing.
Software Testing Part II March, Fault-based Testing Methodology (white-box) 2 Mutation Testing.
Benchmarking Effectiveness for Object-Oriented Unit Testing Anthony J H Simons and Christopher D Thomson.
Random Interpretation Sumit Gulwani UC-Berkeley. 1 Program Analysis Applications in all aspects of software development, e.g. Program correctness Compiler.
1 Statistics & R, TiP, 2011/12 Neural Networks  Technique for discrimination & regression problems  More mathematical theoretical foundation  Works.
Designing Factorial Experiments with Binary Response Tel-Aviv University Faculty of Exact Sciences Department of Statistics and Operations Research Hovav.
Week 5-6 MondayTuesdayWednesdayThursdayFriday Testing III No reading Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
Status of Reference Network Simulations John Dale ILC-CLIC LET Beam Dynamics Workshop 23 June 2009.
Dynamic Testing.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Product Design Alternative Generation, Evaluation, and Selection.
Path selection criteria Tor Stålhane & Wande Daramola.
Mutation Testing Breaking the application to test it.
1 Design of experiment for computer simulations Let X = (X 1,…,X p )  R p denote the vector of input values chosen for the computer program Each X j is.
Random Test Generation of Unit Tests: Randoop Experience
Software Testing Sudipto Ghosh CS 406 Fall 99 November 23, 1999.
Foundations of Software Testing Chapter 7: Test Adequacy Measurement and Enhancement Using Mutation Last update: September 3, 2007 These slides are copyrighted.
Foundations of Software Testing Chapter 7: Test Adequacy Measurement and Enhancement Using Mutation Last update: September 3, 2007 These slides are copyrighted.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
A PRELIMINARY EMPIRICAL ASSESSMENT OF SIMILARITY FOR COMBINATORIAL INTERACTION TESTING OF SOFTWARE PRODUCT LINES Stefan Fischer Roberto E. Lopez-Herrejon.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
A Review of Software Testing - P. David Coward
Applying Neural Networks
Using Execution Feedback in Test Case Generation
White-Box Testing.
Dataflow Testing G. Rothermel.
Improving Test Suites for Efficient Fault Localization
White-Box Testing.
Clinical Research: Part 2
Design Of Experiment Eng. Ibrahim Kuhail.
Mitigating the Effects of Flaky Tests on Mutation Testing
Mutation Testing Faults are introduced into the program by creating many versions of the program called mutants. Each mutant contains a single fault. Test.
Presentation transcript:

A CONTROL INSTRUMENTS COMPANY The Effectiveness of T-way Test Data Generation or Data Driven Testing Michael Ellims

A CONTROL INSTRUMENTS COMPANY Overview The problem with testing Experimental designs Adequacy of tests Experiments in effectiveness Optimisation

A CONTROL INSTRUMENTS COMPANY The problems with testing Expensive –Estimated at 50% of project cost Hard –No good theory on designing tests Solution: automate the testing process?

A CONTROL INSTRUMENTS COMPANY Automated testing Generation is half the problem –we can generate data but... We still need an “oracle” –test have to pass or fail Options –embedded assertions –formal models –usually – some human

A CONTROL INSTRUMENTS COMPANY Automated testing We want a “simple” method –easy to understand –easy to use –inputs from development e.g. data dictionary –data driven testing Solution: design of experiments techniques?

A CONTROL INSTRUMENTS COMPANY Design of experiments Full factorial experiments –“in which every setting of every factor appears with every setting of every other factor” Factor == variable Setting == level == value

A CONTROL INSTRUMENTS COMPANY Design of experiments – Latin Square

A CONTROL INSTRUMENTS COMPANY Design of experiments we have a set of sixteen test vectors v 1.. v 16 read from the matrix as follows: v 1 = {1, 1, A} v 2 = {1, 2, B} v 3 = {1, 3, C} … v 16 = {4, 4, C}

A CONTROL INSTRUMENTS COMPANY t-way testing : example Three variables a, b, c a has three “valid” values, b has two c, has two pairwise or 2-way adequate test set... a1 a2 a3 a2 a1 a3 a1 b2 b1 b1 b2 b2 b2 b1 c1 c2 c1 c1 c2 c2 c1

A CONTROL INSTRUMENTS COMPANY Evidence Many papers on 2-way adequate test –mostly vs. coverage criteria (good not great) –issues with coverage some work supports, some doesn’t Kuhn et al. (series of papers) –Implied higher factors than 2-way needed –t = 5 or 6 Schroeder et al.

A CONTROL INSTRUMENTS COMPANY Research Questions How good are t-way adequate test sets? t = 2 to t =5 Can we address oracle problem? 2283 vectors – can’t reviewed by hand!

A CONTROL INSTRUMENTS COMPANY Problem... Compare against what? –coverage : too weak Statement coverage Branch coverage MCDC coverage

A CONTROL INSTRUMENTS COMPANY Adequacy - code mutation Error based testing –for a limited set of errors –conceptually simple - coding errors Direct measure of test set “goodness” –Can test N find error X –Higher fidelity and statement coverage F1 : 12 lines but 81 code mutants F2 : 33 lines but 669 code mutants F3 : 51 lines but 1297 code mutants

A CONTROL INSTRUMENTS COMPANY What are code mutants? if ((a q))) ff = jj + 34; if ((a > b) && ((x + y) > q))) ff = jj + 34; if ((a q))) ff = jj + 34; if ((a q))) ff += jj + 34; if ((a q))) ff = jj + 35;

A CONTROL INSTRUMENTS COMPANY Procedure FOR each vector FOR each mutant run vector on un-mutated code // oracle! run vector on mutant compare results ENDFOR

A CONTROL INSTRUMENTS COMPANY Experiment 1 - effectiveness How good is automated testing? –t-way verses hand generated tests –t-way verses random tests –t-way verses random designs

A CONTROL INSTRUMENTS COMPANY All methods – mutation score

A CONTROL INSTRUMENTS COMPANY Selected methods – mutation score

A CONTROL INSTRUMENTS COMPANY Selected methods - raw data

A CONTROL INSTRUMENTS COMPANY Experiment 2 - minimisation Can we reduce test set to a manageable size? –oracle problem – the oracle is a person! –You can examine 1000's test vectors Can we get it to run faster? –2000 vectors over 2000 mutants –at two seconds per test...

A CONTROL INSTRUMENTS COMPANY Optimization FOR next t-way adequate test set // t = run remaining mutants vs. all remaining vectors WHILE a test kill > 1 mutant remains select test that kills most mutants mark mutants as dead ENDWHILE ENDFOR select vectors that kill remaining mutants

A CONTROL INSTRUMENTS COMPANY Time Improvement

A CONTROL INSTRUMENTS COMPANY Size Improvement (x5)

A CONTROL INSTRUMENTS COMPANY Conclusions t-way adequate test sets are competitive with hand generated tests. –2-way adequate tests sets are not –t >= 3, t = 5 or t =6 is best Random Testing... –Good but... –NOT reliable –serious implications for testing research

A CONTROL INSTRUMENTS COMPANY Issues Is mutation adequate? –Equivalent mutants Too few functions Simplistic data models Structures –N dimensional arrays –Structures with structure –Sparse structures

A CONTROL INSTRUMENTS COMPANY Random Ideas Mutations as a measure of complexity? –complexity of code is hard to measure –possible too one dimensional Mutations as a measure of robustness –is code that has easily killed mutants “better”