Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson.

Similar presentations


Presentation on theme: "Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson."— Presentation transcript:

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

2 © Jeff Offutt, 2005-20122 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

3 © Jeff Offutt, 2005-20123Introduction 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

4 © Jeff Offutt, 2005-20124 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

5 © Jeff Offutt, 2005-20125 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

6 © Jeff Offutt, 2005-20126 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

7 © Jeff Offutt, 2005-20127 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

8 © Jeff Offutt, 2005-20128 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 5. 5. Perform unit testing

9 © Jeff Offutt, 2005-20129 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

10 © Jeff Offutt, 2005-201210 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

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


Download ppt "Software Engineering Experimentation Example Experimental Design Jeff Offutt Robert Nilsson."

Similar presentations


Ads by Google