1 Improving Cluster Selection Techniques of Regression Testing by Slice Filtering Yongwei Duan, Zhenyu Chen, Zhihong Zhao, Ju Qian and Zhongjun Yang Software.

Slides:



Advertisements
Similar presentations
Applications of Synchronization Coverage A.Bron,E.Farchi, Y.Magid,Y.Nir,S.Ur Tehila Mayzels 1.
Advertisements

Analyses for all areas of your business Analysis Suite by Taurus Software Analysis Suite by Taurus Software.
Program Slicing – Based Techniques
Analysis of algorithms and BIG-O
Discovering and Exploiting Program Phases Timothy Sherwood, Erez Perelman, Greg Hamerly, Suleyman Sair, Brad Calder CSE 231 Presentation by Justin Ma.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
CS527: Advanced Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 18, 2008.
Managing Testing Presented by: Dana Ali Al-Malki.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
A Regression Test Selection Technique for Aspect- Oriented Programs Guoqing Xu The Ohio State University
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION REGRESSION TESTING Autumn 2011.
Project 4 U-Pick – A Project of Your Own Design Proposal Due: April 14 th (earlier ok) Project Due: April 25 th.
The Data Warehouse and the Web. Supporting the E-Business.
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 24 – Testing Interactions (Chapter 6)
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Run-Time Storage Organization
CSE 322: Software Reliability Engineering Topics covered: Software Reliability Models.
1 eBusiness The Software Production View Project Summary.
1 Capstone projects supervised by Yinong Chen (1) Implementation of a Shell on Palm Hand Held Device (2) Building a Programmer’s Interface to the Palm.
Consumer Behavior Term Project. It is a Market Research Project! You need to identify and to clearly state a problem to be solved (1). You need to run.
A REVIEW OF FEATURE SELECTION METHODS WITH APPLICATIONS Alan Jović, Karla Brkić, Nikola Bogunović {alan.jovic, karla.brkic,
RUP Requirements RUP Artifacts and Deliverables
AMOST Experimental Comparison of Code-Based and Model-Based Test Prioritization Bogdan Korel Computer Science Department Illinois Institute of Technology.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Platform Support for Developing Analysis and Testing Plugins Shauvik Roy Choudhary with Jeremy Duvall, Wei Jin, Dan Zhao, Alessandro Orso School of Computer.
Target Markets: Segmentation and Evaluation
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Regression Testing. 2  So far  Unit testing  System testing  Test coverage  All of these are about the first round of testing  Testing is performed.
Bug Localization with Machine Learning Techniques Wujie Zheng
Roberto Paleari,Universit`a degli Studi di Milano Lorenzo Martignoni,Universit`a degli Studi di Udine Emanuele Passerini,Universit`a degli Studi di Milano.
MINING MULTI-LABEL DATA BY GRIGORIOS TSOUMAKAS, IOANNIS KATAKIS, AND IOANNIS VLAHAVAS Published on July, 7, 2010 Team Members: Kristopher Tadlock, Jimmy.
RecBench: Benchmarks for Evaluating Performance of Recommender System Architectures Justin Levandoski Michael D. Ekstrand Michael J. Ludwig Ahmed Eldawy.
Mining Logical Clones in Software: Revealing High-Level Business & Programming Rules Wenyi Qian 1, Xin Peng 1, Zhenchang Xing 2, Stan Jarzabek 3, Wenyun.
ITC Research Computing Support Using Matlab Effectively By: Ed Hall Research Computing Support Center Phone: Φ Fax:
MYP personal project guide 2011 – overview of objectives
Research Design – Where to Begin…. Purpose of EDD 9300 Provide guidance and help you to: Select a topic Conduct a Preliminary Literature Review Design.
Bug Localization with Association Rule Mining Wujie Zheng
Reducing Combinatorics in Testing Product Lines Chang Hwan Peter Kim, Don Batory, and Sarfraz Khurshid University of Texas at Austin.
Coevolutionary Automated Software Correction Josh Wilkerson PhD Candidate in Computer Science Missouri S&T.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
CIS 4910 Information Systems Development Project Project Documentation.
DISSERTATION RESEARCH PLAN Mitesh Meswani. Outline  Dissertation Research Update  Previous Approach and Results  Modified Research Plan  Identifying.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
2015 HIGH-AVAILABILITY CLUSTERING SOFTWARE INDUSTRY REPORT -GLOBAL AND CHINESE MARKET Number of Pages Publish Date – Jan 2015.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Lecture #20: Profiling NetBeans Profiler 6.0.
Foundations of Software Testing Chapter 5: Test Selection, Minimization, and Prioritization for Regression Testing Last update: September 3, 2007 These.
Control Structure  What is control Structure?  Types of Controls  Use the control structure in VBScript.  Example Summery.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Precisely Selecting Regression Test for Aspect-Oriented Programs Guoqing Xu The Ohio State University
Summary of presentation Introduction of the dissertation.
Regression Testing with its types
NVIDIA Profiler’s Guide
Aditya P. Mathur Purdue University
SwE 455 Program Slicing.
White-Box Testing.
Text Classification CS5604 Information Retrieval and Storage – Spring 2016 Virginia Polytechnic Institute and State University Blacksburg, VA Professor:
Program Slicing Baishakhi Ray University of Virginia
A Unifying View on Instance Selection
CS 201 Compiler Construction
Lecture Notes – Week 3 Lecture-2
Lecture 18: Spatial Interpolation I
Pramod Bhatotia, Ruichuan Chen, Myungjin Lee
Integration Testing CS 4311
Regression Testing.
Controlling Program Flow
Develop a Reliability Test in TTCN-3
Presentation transcript:

1 Improving Cluster Selection Techniques of Regression Testing by Slice Filtering Yongwei Duan, Zhenyu Chen, Zhihong Zhao, Ju Qian and Zhongjun Yang Software Institute, Nanjing University, Nanjing, China

2 Outline Introduction Our Approach Experiment and Evaluation Future Work

3 Introduction Test selection techniques Cluster selection techniques Problems

4 Test selection techniques Rerunning all of the existing test cases is costly in regression testing Test selection techniques : choose a subset of test cases to rerun

5 Cluster Selection Run Test Cases Collection Execution Profiles (Basic block level) Clusters of Test Cases A reduced test suite Cluster selection overview Clustering Sampling

Problems Too much data to cluster – Huge amount of execution traces – Always a high dimension 6 Just focus on the code fragments that are actually relevant to the program modification!!!

Our approach Overview Slice filtering Clustering analysis Sampling 7

Our approach Overview 8 Running test cases Execution traces Trace filtering traces Cluster analysis clusters Reduced test suite sampling

Slice filtering The execution traces are too detailed to be used in clustering analysis We use program slice to filter out fragments that are irrelevant to program modification. 9

Slice filtering contd Statement 2 is changed from if(m<n) to if(m<=n) We compute a program slice with respect to statement 2 and intersect it with each execution trace. Given 3 test cases, we compare their execution traces and filtered execution traces. 10 if(m<=n){

11 Slice filtering contd Test cases InputExecution trace (Statement no.) Statement no. by filtering mn t1t1 101,2,4,5,6,7,8,9,10, 11,12,13,14 2,4,5,6,7,8 t2t2 01,2,3,5,6,7,8,9,10, 11,12,13,14 2,3,5,6,7,8 t3t3 11,2,3,5,6,7,8,92,3,5,6,7,8 Execution traces are much smaller after program slice filtering. Traces of t2 and t3 are the same by filtering while the difference between t1 and t2 is magnified. To condense the traces further, adjacent statements within a basic block is combined into one statement. Patterns are easy to reveal with simple execution traces.

12 Slice filtering contd But the amount of test cases is still large. If a trace is too small (below a threshold) after intersection with the program slice, it is unlikely to be a fault- revealing test case, so we remove it from the test suite.

13 Slice filtering contd Filtering rate – We define filtering rate FR as: if the threshold is M and the size of the program slice is N, then the filtering rate FR = M / N * 100%. – When FR gets lower, the effect of filtering diminishes i.e. fewer features can be eliminated.

14 Slice filtering contd Why not just use Dynamic slicing – The computing of dynamic slicing is complex and time consuming – Effective dynamic slicing tools are hard to come by

15 Clustering analysis Distance measure – For a filtered trace f i =, where a ij is the execution count of a basic block. The distance between two filtered trace f i and f j is:

16 Sampling We use adaptive sampling in our approach –We first sample a certain number of test cases. If a test case is fault-revealing, the entire cluster from which the test cases are sampled is selected. This strategy favors small clusters and has high probability to select fault-revealing test cases.

17 Experiment & Evaluation Subject program – space, from SIR(Software-artifact Infrastructure Repository ) – 5902 LOC – 1533 basic-blocks – 38 modified versions (a real fault is augmented for each version ) – test cases

18 Experiment & Evaluation Subject program Measurements Experimental results Observations

19 Experiment & Evaluation 3 measurements – Precision – Reduction – Recall

20 Experiment & Evaluation Precision – if in a certain run the technique selects a subset of N test cases, in which M test cases are fault-revealing. The precision of the technique is: M / N * 100%. – Precision measures the extent to which a selection method omits non-fault- revealing test cases in a run

21 Experiment & Evaluation Reduction – if a selection technique selects M test cases out of all N existing test cases in a certain run, the reduction of the technique is: M / N * 100%. – Reduction measures the extent to which a technique can reduce the size of the original test suite. – A low reduction means a selection technique greatly reduce the original test suite.

22 Experiment & Evaluation Recall – if a selection technique selects M fault- revealing test cases out of N existing fault- revealing test cases in a certain run, the recall of the technique is: M / N * 100%. – Recall measures the extent to which a selection technique can include fault- revealing test cases. – Recall indicates the fault detecting capability of a technique. A safe selection technique achieves 100% recall.

23 Experiment & Evaluation Experimental results – A comparison between our approach and Dejavu. Dejavu is known as an effective algorithm in its high precision of test selection. – A comparison between 2 different filtering rate: FR = 0.3 and FR = 0.5

24 Experiment & Evaluation 24 Comparison of precision between our approach when FR=0.3 and Dejavu

25 Experiment & Evaluation 25 Comparison of reduction between our approach when FR=0.3 and Dejavu

26 Experiment & Evaluation 26 Comparison of recall between our approach when FR=0.3 and Dejavu We achieve certain improvement except version 13, 25, 26, 35, 37, 38.

Experiment & Evaluation Analysis – The key to our approach is to isolate the fault- revealing test cases into small clusters – Failures detected on version 13, 25, 26, 35, 37, 38 are mostly memory access violation failures. Those failures cause premature termination of the execution flows. – Program slicing cannot predict runtime execution flow changes and therefore cannot provide enough information to differentiate these test cases and lump them into different clusters. 27

28 Experiment & Evaluation 28 Comparison of precision between FR=0.3 and FR=0.5

29 Experiment & Evaluation 29 Comparison of reduction between FR=0.3 and FR=0.5

30 Experiment & Evaluation 30 Comparison of recall between FR=0.3 and FR=0.5 If we raise FR to 0.5, certain improvement on precision, reduction and recall can be achieved

Experiment & Evaluation Observations – for most versions, our approach has higher precision and lower reduction (lower is better) than Dejavu. It means that we can select fault-revealing test cases from the original test suite and select relatively few non-fault-revealing test cases 31

Experiment & Evaluation Observations – the effectiveness of our approach depends largely on the level of isolations of fault-revealing test cases. By choosing appropriate parameters such as filtering rate, sampling rate, initial cluster number etc., we can enhance the level of isolation. 32

Future work We will try to answer the following questions in our future work – How do distance metrics and cluster algorithms affect the result of cluster selection techniques? – Given a program, how to find the best filtering rate and other parameters? 33

34 Q & A