Software Engineering Experimentation

Slides:



Advertisements
Similar presentations
1 Important Terms Variable – A variable is any characteristic whose value may change from one individual to another A univariate data set consists of.
Advertisements

Design of Experiments Lecture I
Software Engineering Experimentation Experimental Terms Jeff Offutt
The Data Analysis Process & Collecting Data Sensibly
CHAPTER 8 EXPERIMENTAL DESIGN.
Quantitative Research  Adequate experimental control  Lack of artificiality  Basis for comparison  Adequate information from the data  Uncontaminated.
MS thesis/project ideas for MS students in the Department of Computer Science at the University of Minnesota Duluth suggestions by Dr Andrew Brooks, Heller.
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt
1 841f06parnas13 Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990.
Copyright © 2005 Brooks/Cole, a division of Thomson Learning, Inc. Chapter 2 The Data Analysis Process and Collecting Data Sensibly.
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
Case Study Assignment MTT Certification Exam. Graded on four-point scale Purpose – extent to which response addresses the components of the assignment.
Assumes that events are governed by some lawful order
Lecture PowerPoint Slides Basic Practice of Statistics 7 th Edition.
Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson.
Simple Comparative Experiments Section 2.3. More on Experiments An experiment is a planned intervention undertaken to observe the effects of one or more.
First delivery of the course Software Quality and Testing Katerina Zdravkova, Anastas Mišev
Mutation Testing Breaking the application to test it.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Understanding Populations & Samples
Understanding Populations & Samples
Active Learning Lecture Slides For use with Classroom Response Systems
Software Engineering Experimentation
8 Experimental Research Design.
Chapter 2 Data Production.
Paul Ammann & Jeff Offutt
Approaches to social research Lerum
Chapter 11: The Nuts and Bolts of one-factor experiments.
EXPERIMENTAL RESEARCH
Collecting Data Sensibly
Testing Object-Oriented Software Concepts and Definitions
MASTER’S RESEARCH GUIDELINES
Ch. 23, Developing New Products
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Principles of Experiment
It is great that we automate our tests, but why are they so bad?
Paul Ammann & Jeff Offutt
Introduction to Software Testing
Software Engineering Experimentation
11/20/2018 Study Types.
Software Engineering Experimentation
Lecture 2: Data Collecting and Sampling
Critical Systems Validation
Software Engineering Experimentation
Software Engineering Experimentation
Test Case Purification for Improving Fault Localization
Ten things about Experimental Design
Software Engineering Experimentation
Chapter 13 Quality Management
CHAPTER 9: Producing Data— Experiments
Chapter 7 –Implementation Issues
System Testing.
Chapter 5: Producing Data
Managing the Test Process CS 4501 / 6501 Software Testing
Mutation Testing The Mutants are Coming! Copyright © 2017 – Curt Hill.
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Collecting Data Sensibly
Positive analysis in public finance
DESIGN OF EXPERIMENTS by R. C. Baker
Paul Ammann & Jeff Offutt
By Hyunsook Do, Sebastian Elbaum, Gregg Rothermel
Reminder for next week CUELT Conference.
Design and Implementation of Software for the Web
EXPERIMENTAL METHOD.
Data Collection and Sampling Techniques
AS Psychology Research Methods
MATH 2311 Sections 6.2.
Design Issues Lecture Topic 6.
Presentation transcript:

Software Engineering Experimentation Lecture 8 - Example Experimental Design Jeff Offutt http://www.cs.gmu.edu/~offutt/ Robert Nilsson

Dialogue With a Student Robert was working on his PhD dissertation One summer he decided to design an empirical study and suggested an initial experimental design I made some comments These slides summarize our discussion © Jeff Offutt, 2005

Introduction Purpose : Assess applicability of a testing framework for testing timeliness properties of real-time software Measure ability to find hand-seeded timeliness faults Compare with randomly generated tests Difficulty : Finding software artifact to test on © Jeff Offutt, 2005

Experimental Design Design the application Set up real-time platform Instrument the target platform to obtain results of testing (in particular, timeliness results) Implement application Perform unit testing Create versions of application with seeded faults © Jeff Offutt, 2005

Experimental Conduct Model the system using tools in testing framework Generate timely-mutation tests automatically Run tests timely-mutation Run random tests Run all tests on all seeded faults © Jeff Offutt, 2005

Comments on Experimental Design 1. Design the application Important to separate knowledge Knowledge of the test method Knowledge of the faults Knowledge of the application Desires (to show Robert is right) must be separated from knowledge of faults and application Different people need to implement and create faults Laboratory software may not be “representative” of real software © Jeff Offutt, 2005

Comments on Experimental Design 2, 3. Set up and instrument real-time platform Make sure that framework and instrumentation does not bias results Possible confounding variable © Jeff Offutt, 2005

Comments on Experimental Design 5. Perform unit testing Knowledge from generating one set of tests cannot influence the other set Either generate automatically, Or use different people If not, generate mutation-tests first Ensures bias is in favor of random tests © Jeff Offutt, 2005

Comments on Experimental Design 6. Seeding faults Testing technique is mutation testing Mutation introduces specialized faults into the program, then asks tester to find tests that “find” those faults (result in failure) VERY IMPORTANT: Seeded faults must NOT look like mutants If they do, this introduces a very strong bias We measure how accurate our measurement is by comparing the meter-stick with the same meter-stick © Jeff Offutt, 2005

Comments on Experimental Design 6. Seeding faults Creating non-mutant faults Get somebody who knows nothing about mutation or testing to create faults (nothing about nothing) Theoretically create non-mutant faults (I’m not sure how) Mutants usually involve simple changes – create faults that are more “complicated” than mutants Use naturally occurring faults, or faults that are designed on naturally occurring faults © Jeff Offutt, 2005