Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson.

Slides:



Advertisements
Similar presentations
Introduction to Monitoring and Evaluation
Advertisements

Introduction to Software Testing Chapter 1 Model-Driven Test Design Paul Ammann & Jeff Offutt
1 Important Terms Variable – A variable is any characteristic whose value may change from one individual to another A univariate data set consists of.
Design of Experiments Lecture I
An Analysis and Survey of the Development of Mutation Testing by Yue Jia and Mark Harmon A Quick Summary For SWE6673.
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.3 Challenges in Testing Software Test Criteria and the Future of Testing Paul Ammann & Jeff Offutt
Software Engineering Experimentation Experimental Terms Jeff Offutt
The Data Analysis Process & Collecting Data Sensibly
CHAPTER 8 EXPERIMENTAL DESIGN.
Agenda Field and Laboratory Research Field and Laboratory Research Foundations of Empirical Inquiry Foundations of Empirical Inquiry Survey Work Survey.
N The Experimental procedure involves manipulating something called the Explanatory Variable and seeing the effect on something called the Outcome Variable.
Experiments Types of Experiments Laboratory Experiments Experiments of short term duration and usually conducted in a lab under very controlled conditions.
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.
I want to test a wound treatment or educational program but I have no funding or resources, How do I do it? Implementing & evaluating wound research conducted.
Descriptive and Causal Research Designs
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 1.
1 841f06parnas13 Evaluation of Safety Critical Software David L. Parnas, C ACM, June 1990.
Revising instructional materials
Software Testing and Validation SWE 434
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.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Engineering Experimentation Rules for Reviewing Papers Jeff Offutt See my editorials 17(3) and 17(4) in STVR
WERST – Infrastructure Group Summary Notes July 2004
Collection of Data Chapter 4. Three Types of Studies Survey Survey Observational Study Observational Study Controlled Experiment Controlled Experiment.
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
Assumes that events are governed by some lawful order
Experimentation in Computer Science (Part 1). Outline  Empirical Strategies  Measurement  Experiment Process.
For ABA Importance of Individual Subjects Enables applied behavior analysts to discover and refine effective interventions for socially significant behaviors.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Lecture PowerPoint Slides Basic Practice of Statistics 7 th Edition.
AP STATISTICS LESSON AP STATISTICS LESSON DESIGNING DATA.
MODES-650 Advanced System Simulation Presented by Olgun Karademirci VERIFICATION AND VALIDATION OF SIMULATION MODELS.
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
Important Sections of the Methodology Chapter in the Dissertation
ENGINEERING DESIGN PROCESS. OBJECTIVES IDENTIFY THE STEPS OF THE ENGINEERING DESIGN PROCESS. DETERMINE CRITERIA FOR THE DEVELOPMENT OF A NEW TECHNOLOGY.
Mutation Testing Breaking the application to test it.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Lurking Variables. Consider this situation: Students who take AP math courses have a relatively high performance in the first year at university. Some.
Slide 7.1 Saunders, Lewis and Thornhill, Research Methods for Business Students, 5 th Edition, © Mark Saunders, Philip Lewis and Adrian Thornhill 2009.
Chapter 2 The Data Analysis Process and Collecting Data Sensibly.
© Copyright McGraw-Hill CHAPTER 14 Sampling and Simulation.
Mutation Testing Laraib Zahid & Mariam Arshad. What is Mutation Testing?  Fault-based Testing: directed towards “typical” faults that could occur in.
Research Philosophies, Approaches and Strategies Levent Altinay.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
L Berkley Davis Copyright 2009 MER301: Engineering Reliability Lecture 8 1 MER301: Engineering Reliability LECTURE 8: Chapter 4: Statistical Inference,
Summary of presentation Introduction of the dissertation.
Software Engineering Experimentation
Paul Ammann & Jeff Offutt
Collecting Data Sensibly
MASTER’S RESEARCH GUIDELINES
TITLE OF DISSERTATION AS IT READS ON ACTUAL DISSERTATION
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
Software Engineering Experimentation
Software Engineering Experimentation
Test Case Purification for Improving Fault Localization
Software Engineering Experimentation
Software Engineering Experimentation
Chapter 13 Quality Management
Chapter 7 –Implementation Issues
Managing the Test Process CS 4501 / 6501 Software Testing
TITLE OF DISSERTATION AS IT READS ON ACTUAL DISSERTATION
Presentation transcript:

Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson

© Jeff Offutt, 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, Introduction Purpose : Assess applicability of a testing framework for testing timeliness properties of real-time software Measure ability to find hand-seeded timely faults Compare with randomly generated tests Difficulties : Finding software artifact to test on Finding timely faults

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

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

© Jeff Offutt, Exp. Design Comments 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 1. Design the application

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

© Jeff Offutt, Exp. Design Comments 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 Perform unit testing

© Jeff Offutt, Exp. Design Comments 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 6. Seeding faults

© Jeff Offutt, Exp. Design Comments 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 6. Seeding faults

Summary © Jeff Offutt, It is very hard to design an experiment well by yourself