Copyright A. Andrews, 2003 Regression Testing Department of Computer Science.

Slides:



Advertisements
Similar presentations
Analyzing Regression Test Selection Techniques
Advertisements

Testing Workflow Purpose
Lecture 8: Testing, Verification and Validation
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Testing Concurrent/Distributed Systems Review of Final CEN 5076 Class 14 – 12/05.
Test Execution and Defect management. 2 Module Objectives Introduction to Test Execution Checklist of Test Execution Defect management Defect Classification.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION REGRESSION TESTING Autumn 2011.
Documentation Testing
Software Configuration Management
Software Reuse Building software from reusable components Objectives
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
The Future of Testing Chapter 21. Random testing Simply put, if testing is targeted at a particular area, it is because that area is either critical,
SIM5102 Software Evaluation
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Introduction to Software Testing
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Chapter 13 & 14 Software Testing Strategies and Techniques
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
INT-Evry (Masters IT– Soft Eng)RegressionTesting.1 (OO) Regression Testing Regression testing is the execution of a set of test cases on a program.
AMOST Experimental Comparison of Code-Based and Model-Based Test Prioritization Bogdan Korel Computer Science Department Illinois Institute of Technology.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Engineering Reuse.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CPIS 357 Software Quality & Testing
Validation Metrics. Metrics are Needed to Answer the Following Questions How much time is required to find bugs, fix them, and verify that they are fixed?
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Software Maintenance1 Software Maintenance.
REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.
Software Testing and Quality Assurance Practical Considerations (1) 1.
TOTAL QUALITY MANAGEMENT
Software Configuration Management
Regression Testing with its types
Maintenance Issues in Software Engineering
McCall’s Quality Factors
Chapter 13 & 14 Software Testing Strategies and Techniques
Regression Testing.
Some Important Techniques For Regression Testing That You Must Know.
Introduction to Software Testing
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
CS 1120: Computer Science II Software Life Cycle
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Department of Computer Science Regression Testing.
Regression Testing.
CS 1120: Computer Science II Software Life Cycle
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

copyright A. Andrews, 2003 Regression Testing Department of Computer Science

copyright A. Andrews, 2003 Regression testing Testing changed software –Retest all –Selective regression testing Regression test suite Types of changes –Defect fixes –Enhancements –Adaptations –Perfective maintenance

copyright A. Andrews, 2003 Retest all Assumption: –Changes could have introduced errors anywhere in the code –Expensive, prohibitive for large systems –Reuse existing test suite –Add new tests as needed –Remove obsolete tests (discrepancies between expected and actual output)

copyright A. Andrews, 2003 Selective regression testing Impact analysis Only code impacted by change needs to be retested Select tests that exercise such code Add new tests if needed Remove obsolete tests

copyright A. Andrews, 2003 Regeneration strategy Often for defect fixes when unsure whether defect is really fixed Develop new tests –Probe around defect fix –Test affected functionality Comes in retest all, and selective regression testing flavors

copyright A. Andrews, 2003 Regression testing process Identify changes Determine which tests will remain valid: T’ Test modified software with T’ If T’ does not meet test criterion, generate new test cases T’’ Execute modified software with T’’

copyright A. Andrews, 2003 Regression testing process (2) T’: –test whether modifications have broken anything –Determined either by retest all, or selective strategy T’’: –test whether modified code works Use scope appropriate criteria

copyright A. Andrews, 2003 Classification of tests in T Reusable: –does not test software modification –Should produce same result –Need not be rerun Retestable: –Tests software modification –Must be rerun Obsolete: no longer applies

copyright A. Andrews, 2003 Practical regression testing ApproachQualityChangeImpactSchedule Full newLowKey CodeExtensiveNone MinimalHighIsolatedLocalizedVery tight ExpandedModerateKey CodeExtensiveModerate Full reuseLowSeries of fixes ExtensiveModerate

copyright A. Andrews, 2003 Approaches Full new test cycle –Redesign entire test plan –Rebuild whole test suite Minimum regression test –Reuse test plan as much as possible –Rerun minimum number of retestable test cases –Generate minimum number of new test cases for changes

copyright A. Andrews, 2003 Approaches (2) Expanded scope of regression testing –Reuse part of test plan –Rerun all retestable test cases –Generate new test cases on the full scope of changes Full reuse of existing test suite –Reuse test plan and test suite

copyright A. Andrews, 2003 Attributes of regression tests Safe: –All tests that could possibly exhibit different outputs on the modified software –Is 100% inclusive Precision: –Percentage of tests in a reduced test suite that cannot reveal regression faults, and –Are not selected for the reduced test suite

copyright A. Andrews, 2003 Attributes of regression tests (2) Efficiency: cost of identifying a reduced regression test suite Generality: range of application for the selection strategy

copyright A. Andrews, 2003 Regression test patterns Retest changed code –Class, cluster, subsystem scope –Identify segment coverage by test case –Use version control tool to identify changed segments –Select tests covering changed/deleted segments –Develop new tests for new segments Safe

copyright A. Andrews, 2003 Retest by profile Assumes operational profile Unsafe Include critical use cases Include other use cases by frequency in operational profile No impact analysis Better: determine impact on use case

copyright A. Andrews, 2003 Retest risky use cases Suspicious use cases –Use cases that depend on components, objects, middleware, resources that are Unstable, unproven Have not been shown to work together before Implement complex business rules Are complex Were fault-prone during development Critical use cases Unsafe

copyright A. Andrews, 2003 Retest within Firewall Firewall: set of components whose test cases will be included in a regression test External interface, contract change Internal implementation change