Test Suite Reduction for Regression Testing of Simple Interactions between Two Software Modules Dmitry Kichigin.

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Testing and Quality Assurance
Time-Aware Test Suite Prioritization Kristen R. Walcott, Mary Lou Soffa University of Virginia International Symposium on Software Testing and Analysis.
An Evaluation of MC/DC Coverage for Pair-wise Test Cases By David Anderson Software Testing Research Group (STRG)
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Software Regression Testing Speaker: Jerry Gao Ph.D. San Jose State University URL:
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
November 5, 2007 ACM WEASEL Tech Efficient Time-Aware Prioritization with Knapsack Solvers Sara Alspaugh Kristen R. Walcott Mary Lou Soffa University of.
Abstract HyFS: A Highly Available Distributed File System Jianqiang Luo, Mochan Shrestha, Lihao Xu Department of Computer Science, Wayne State University.
Software Fault Injection for Survivability Jeffrey M. Voas & Anup K. Ghosh Presented by Alison Teoh.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Software Testing and Quality Assurance
1 STRUCTURE CHARTS Elements and Definitions. 2 Software System Design translates SRS into a ===> software system architecture: –system’s static structure.
Software Testing and Quality Assurance
Hierarchical GUI Test Case Generation Using Automated Planning Atif M. Memon, Student Member, IEEE, Martha E. Pollack, and Mary Lou Soffa, Member, IEEE.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Program unit A Program unit B Program unit T Function 1 Function 2 Function Component 1 Whole System (e.g. regression testing) Component 3....
1 Project Planning CIS 375 Bruce R. Maxim UM-Dearborn.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
AMOST Experimental Comparison of Code-Based and Model-Based Test Prioritization Bogdan Korel Computer Science Department Illinois Institute of Technology.
Software Testing. Definition To test a program is to try to make it fail.
Improving Effectiveness of Regression Testing of Telecommunications Systems Software Sami Torniainen Supervisor: Professor Raimo Kantola.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
An Introduction to MBT  what, why and when 张 坚
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Understand Application Lifecycle Management
L. Dillon Software Engineering & Network Systems Laboratory Michigan State University 1 Getting Results From Testing Laura K. Dillon Software Engineering.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
University of Sunderland CIFM03Lecture 4 1 Software Measurement and Reliability CIFM03 Lecture 4.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 Software Reliability Assurance for Real-time Systems Joel Henry, Ph.D. University of Montana NASA Software Assurance Symposium September 4, 2002.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Generic API Test tool By Moshe Sapir Almog Masika.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
Software Construction Lecture 18 Software Testing.
When to Test Less Presented by Lan Guo. Introduction (1) Methods of software testing: functional, coverage, and user-oriented Phases of software testing:
In Future of Software Engineering, 22 nd Conference on Software Engineering, June Testing: A Roadmap Marry J. Harrold College of Computing Georgia.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
Objects First With Java A Practical Introduction Using BlueJ Well-behaved objects 2.1.
Software Quality and Safety Pascal Mbayiha.  software engineering  large, complex systems  functionality, changing requirements  development difficult.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
Whole Test Suite Generation. Abstract Not all bugs lead to program crashes, and not always is there a formal specification to check the correctness of.
Mutation Testing Breaking the application to test it.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Random Test Generation of Unit Tests: Randoop Experience
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
ETICS An Environment for Distributed Software Development in Aerospace Applications SpaceTransfer09 Hannover Messe, April 2009.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Software Engineering (CSI 321)
C++ Plus Data Structures
Chapter 1: An Overview of Computers and Programming Languages
Verification and Testing
SLOC and Size Reporting
Software Test Automation and Tools
Different Levels of Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Regression Testing.
CSE 1020:Software Development
Software Development Chapter 1.
Presentation transcript:

Test Suite Reduction for Regression Testing of Simple Interactions between Two Software Modules Dmitry Kichigin

Software regression integration testing Software integration testing – testing of interactions between software elements being integrated Software regression testing – retesting of software to verify that modifications have not caused unintended effects and that the software still complies with its specified requirements Problem: high cost of regression testing Solutions: Automation of testing Test suite reduction

“ seeks to reduce the number of test cases in a test suite while retaining a high percentage of the original suite’s fault detection effectiveness “ This reduces: The costs associated with test suite maintenance The costs of software execution on the tests Result: reduction of overall costs associated with regression testing

Traditional approach Involves a static analysis and/or instrumentation of a source code and consists of 3 main steps: 1.Instrumentation of software source code 2.Execution of software on a test suite and collecting coverage information 3.Using coverage information to reducing the test suite Existing methods: - Interface Mutation (Mutation Analysis) - Structural methods: –Control-flow based –Data-flow based

Drawbacks Recent trends in software development may limit their applicability: Component-based software development and use of commercial off-the-shelf (COTS) components: –the source code is unavailable Increasing size and complexity of the software: –source-code based coverage analysis is expensive and hard to conduct for large software

Proposed solution Test Suite Reduction Method for Regression Testing of Simple Interactions between Two Software Modules : Based on interactions behaviour monitoring Uses sequences of interface function calls to analyse interactions behaviour Takes into account function parameters Does not require access or instrumentation of a source code

Definitions Simple interaction - interaction via interface of functions which can take only scalar parameters Interface functions are the functions, which form a part of module’s programming interface. Interaction trace of interaction between module A and module B is a sequence of interface functions of module B, which are invoked by module A during software execution on a test case t. … FILE* fp = fopen(…); for (int i=0; i<3; i++) { fread(…); } fclose(fp); … fopen fread fclose …

Algorithm T – original test suite T’ – reduced test suite, T’  T t – next test case from the original test suite, t  T M t – model of interaction behaviour on the test case t M T’ – set of models of interaction behaviour on test cases from T’ Main steps: 1.Pick the next test case from the original test suite and execute the program 2.Build modules interactions model M t 3.If M t  M T’, then add M t to M T’ and add test case t to T’ 4.Run until T is exhausted yes no t := next(T) M t := build_model(t) M t  M T’ yes finish no ? M t  M T’ ? T ==  M T’ := M T’  M t T’ := T’  t M t empty? M t  M T’

Interaction Behaviour Model K-length sequence of interface functions is an arbitrary continuous sequence of length K, which can be located in an interaction trace. Model of interaction between module A and module B on a test t - set of all possible K-length sequences, which can be located in the interaction trace for the interaction between A and B on t. Use “sliding window” technique to build the model: fopen fwrite fwrite fopen fwrite fclose fwrite fclose fopen fwrite fwrite fopen fwrite fwrite fopen fwrite fwrite fopen fwrite fclose fopen fwrite fclose fwrite fwrite fclose

Equality relation between models Two given models are equal their sequence sets are equal Two sequences of functions are equal their elements are equal pairwise Function calls are equal when: the functions have the same names, the values of nominal parameters are the same, and the values of numerical parameters belong to the same intervals.

Equality relation between models with taking into account parameter values Function scalar parameters Nominal Numerical Nominal: definition area is a finite set no order relation and distance defined equality relation:  (x,y), where  - Kronecker symbol Numerical: definition area is R both order relation and distance are defined equality relation:

Results of the experiment: level of test suit reduction Subject programs: GNU Assembler & the C standard library

Results of the experiment: fault detection ability Subject programs: GNU Assembler & the C standard library

Summary The new test suite reduction method was presented, which: does not require access or instrumentation of a source code uses sequences of interface function calls as behaviour characteristic takes into account values of function parameters The experimental evaluation demonstrated: can successfully reduce the size of a test suite while retaining its fault detection ability the method outperforms the random test suite reduction method

Thank you

Questions ?