CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.

Slides:



Advertisements
Similar presentations
Runtime Techniques for Efficient and Reliable Program Execution Harry Xu CS 295 Winter 2012.
Advertisements

Time-Aware Test Suite Prioritization Kristen R. Walcott, Mary Lou Soffa University of Virginia International Symposium on Software Testing and Analysis.
Prioritizing Test Cases for Regression Testing Sebastian Elbaum University of Nebraska, Lincoln Alexey Malishevsky Oregon State University Gregg Rothermel.
ESEM | October 9, 2008 On Establishing a Benchmark for Evaluating Static Analysis Prioritization and Classification Techniques Sarah Heckman and Laurie.
November 5, 2007 ACM WEASEL Tech Efficient Time-Aware Prioritization with Knapsack Solvers Sara Alspaugh Kristen R. Walcott Mary Lou Soffa University of.
Effectively Prioritizing Tests in Development Environment
An Analysis and Survey of the Development of Mutation Testing by Yue Jia and Mark Harmon A Quick Summary For SWE6673.
Test Driven Development George Mason University. Today’s topics Review of Chapter 1: Testing Go over examples and questions testing in Java with Junit.
Prioritizing User-session-based Test Cases for Web Applications Testing Sreedevi Sampath, Renne C. Bryce, Gokulanand Viswanath, Vani Kandimalla, A.Gunes.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Project 4 U-Pick – A Project of Your Own Design Proposal Due: April 14 th (earlier ok) Project Due: April 25 th.
Empirically Assessing End User Software Engineering Techniques Gregg Rothermel Department of Computer Science and Engineering University of Nebraska --
SE 450 Software Processes & Product Metrics Activity Metrics.
© 2006 Fraunhofer CESE1 MC/DC in a nutshell Christopher Ackermann.
State coverage: an empirical analysis based on a user study Dries Vanoverberghe, Emma Eyckmans, and Frank Piessens.
By: Taylor Helsper.  Introduction  Test Driven Development  JUnit  Testing Private Methods  TDD Example  Conclusion.
Expediting Programmer AWAREness of Anomalous Code Sarah E. Smith Laurie Williams Jun Xu November 11, 2005.
By: Taylor Helsper.  Introduction  Test Driven Development  JUnit  TDD Example  Conclusion.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
SBSE Course 4. Overview: Design Translate requirements into a representation of software Focuses on –Data structures –Architecture –Interfaces –Algorithmic.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 15, 2011.
CS527: (Advanced) Topics in Software Engineering Reading Papers Tao Xie ©D. Marinov, T. Xie.
How Significant Is the Effect of Faults Interaction on Coverage Based Fault Localizations? Xiaozhen Xue Advanced Empirical Software Testing Group Department.
Project 3 U-Pick – A Project of Your Own Design Proposal Due: March 31 st Project Due: April 28 th Presentation: April 28 th.
EMI INFSO-RI Metrics review Claudio (SA1), Lars, Duarte, Eamonn and Maria (SA2)
Testing : A Roadmap Mary Jean Harrold Georgia Institute of Technology Presented by : Navpreet Bawa.
Cs498dm Software Testing Darko Marinov January 15, 2008.
Regression Testing. 2  So far  Unit testing  System testing  Test coverage  All of these are about the first round of testing  Testing is performed.
LECTURE 38: REFACTORING CSC 395 – Software Engineering.
Cs498dm Software Testing Darko Marinov January 22, 2008.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 28, 2008.
Assessing the Frequency of Empirical Evaluation in Software Modeling Research Workshop on Experiences and Empirical Studies in Software Modelling (EESSMod)
COMP 121 Week 1: Testing and Debugging. Testing Program testing can be used to show the presence of bugs, but never to show their absence! ~ Edsger Dijkstra.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.
A Systems Perspective on Building Security Into Applications Dr. William J. Hery Polytechnic University
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 16, 2010.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 22, 2011.
Garo Bournoutian and Alex Orailoglu Proceedings of the 45th ACM/IEEE Design Automation Conference (DAC’08) June /10/28.
Prioritizing Test Cases for Regression Testing Article By: Rothermel, et al. Presentation by: Martin, Otto, and Prashanth.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
When Tests Collide: Evaluating and Coping with the Impact of Test Dependence Wing Lam, Sai Zhang, Michael D. Ernst University of Washington.
Test Stubs... getting the world under control. TDD of State Pattern To implement GammaTown requirements I CS, AUHenrik Bærbak Christensen2.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
ITCS 6265 Details on Project & Paper Presentation.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov August 30, 2011.
Cs498dm Software Testing Darko Marinov January 24, 2008.
CAPP: Change-Aware Preemption Prioritization Vilas Jagannath, Qingzhou Luo, Darko Marinov Sep 6 th 2011.
Special Topics in Educational Data Mining HUDK5199 Spring term, 2013 March 6, 2013.
CS223: Software Engineering Lecture 15: Software construction.
Cs498dm Software Testing Darko Marinov January 27, 2009.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 7, 2010.
421 Review Questions 1.Does software engineering add documentation that slows down the project? 2.Is there one software process that is better than the.
Investigate Plan Design Create Evaluate (Test it to objective evaluation at each stage of the design cycle) state – describe - explain the problem some.
A PRELIMINARY EMPIRICAL ASSESSMENT OF SIMILARITY FOR COMBINATORIAL INTERACTION TESTING OF SOFTWARE PRODUCT LINES Stefan Fischer Roberto E. Lopez-Herrejon.
CS223: Software Engineering Lecture 25: Software Testing.
Cs498dm Software Testing Darko Marinov January 24, 2012.
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Cs498dm Software Testing Darko Marinov January 26, 2012.
Software Testing.
Presented by: Edfan Tjandra Alireza Behrouzi Shad
Mid-term Exam Account for 20% of the grade 100 points in total
Regression Testing.
Class project by Piyush Ranjan Satapathy & Van Lepham
It is great that we automate our tests, but why are they so bad?
Fabiano Ferrari Software Engineering Federal University of São Carlos
Mock Object Creation for Test Factoring
By Hyunsook Do, Sebastian Elbaum, Gregg Rothermel
Darko Marinov February 5, 2009
Mitigating the Effects of Flaky Tests on Mutation Testing
Presentation transcript:

CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008

Recent Schedule Sep 9: Testing refactoring engines Sep 11: Static analysis Sep 16: Model checking TODAY: Sep 18: Test prioritization Sep 23&25: More on testing –Let me know if you have some preferred topic Project proposal (more info on mailing list) –Your initial project idea will be due on Sep 25 –Proposal will be due the week after

Report Feedback Vilas and I will send you by Monday a summary about the reports we received –My spam filter caught some reports, so we should double-check we got all your reports –We’ll also comment on the quality of reports –These papers were from various areas –Your projects will focus on one area

Paper Today Empirical Studies of Test Case Prioritization in a JUnit Testing Environment by Hyunsook Do, Gregg Rothermel, Alex Kinneer (ISSRE 2004)Empirical Studies of Test Case Prioritization in a JUnit Testing Environment

Brief Summary Motivation: regression testing is important for finding bugs Problem: regression testing is slow Solution: prioritize tests to find bugs faster Evaluation: JUnit tests for 4 Java programs Results: Prioritization helps

Some Terminology Regression testing Test: test case, test input, test data… Test suite: test set, test class… Test (case) prioritization Test (suite) minimization (Regression) test selection Code coverage

Research Questions RQ1: Can test case prioritization improve the rate of fault detection of JUnit test suites? RQ2: How do the three types of information and information use that distinguish prioritization techniques (type of coverage information, use of feedback, use of modification information) impact the effectiveness of prioritization techniques? RQ3: Can test suite granularity (the choice of running testclass level JUnit tests versus test- method level tests) impact the cost-effectiveness of prioritization techniques?

Independent Variables Prioritization technique –Untreated, random, optimal –Block-total, block-addtl –Method-total, method-addtl –Method-diff-total, method-diff-addtl Test Suite Granularity –Class-level –Method-level

Dependent Measure APFD = 1 – (TF1 + … + TFm)/nm + 1/2n n test cases m faults TFi is the index of the first test case to find fault i Why is this between 0 and 100%?

Threats to Validity Internal –Are there bugs in experimental tools? –Are seeded faults the same as real? External –Are programs representative? –Is process representative? Construct –Is APFD an appropriate measure?

Brief Summary of Results RQ1: Can test case prioritization improve the rate of fault detection of JUnit test suites? –Yes RQ2: How do the three types of information and information use that distinguish prioritization techniques (type of coverage information, use of feedback, use of modification information) impact the effectiveness of prioritization techniques? –Coverage little, feedback lot, modification little RQ3: Can test suite granularity (the choice of running testclass level JUnit tests versus test- method level tests) impact the cost-effectiveness of prioritization techniques? –Yes

Questions for Discussion (1) Why no significant improvement when prioritizing on code modification? [DH] Why is test-class level not as good as test- method? [ST] How much the results vary based on how one writes a JUnit test class? [YL] Why random better than untreated? [WX] What new techniques would you propose? How prioritize automatically generated tests?

Questions for Discussion (2) What is hot topic in testing: regression test selection, test suite minimization, test case prioritization, automatic test generation...? What other prioritization techniques exist? How does test case prioritization fit in TDD? Is the extra effectiveness of prioritization techniques worth the extra cost (compared to random ordering)?

Questions for Discussion (3) How to apply this in the real world if we don’t know when all bugs have been found? How Galileo framework works (more detail)? –Questions like this can always lead to a project How to prioritize in integration testing? How to prioritize based on, say, complexity or criticality of test units? What are other regression test performance metrics besides APFD?