Department of Computer Science Regression Testing.

Slides:



Advertisements
Similar presentations
Analyzing Regression Test Selection Techniques
Advertisements

Testing Workflow Purpose
Lecture 8: Testing, Verification and Validation
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Copyright A. Andrews, 2003 Regression Testing Department of Computer Science.
Testing Concurrent/Distributed Systems Review of Final CEN 5076 Class 14 – 12/05.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION REGRESSION TESTING Autumn 2011.
Documentation Testing
Software Testing and Quality Assurance
Software Configuration Management
SIM5102 Software Evaluation
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Systems Analysis and Design in a Changing World, 6th Edition
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
Chapter 13 & 14 Software Testing Strategies and Techniques
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.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
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.
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
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.
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.
Chapter 11  2000 by Prentice Hall System Analysis and Design: Methodologies and Tools Uma Gupta Introduction to Information Systems.
©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.
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.
ITIL: Service Transition
TOTAL QUALITY MANAGEMENT
Estimate Testing Size and Effort Using Test Case Point Analysis
Software Configuration Management
Regression Testing with its types
Maintenance Issues in Software Engineering
Software Testing An Introduction.
Software Testing Testing process, Design of test cases.
Software engineering – 1
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
Testing and Test-Driven Development CSC 4700 Software Engineering
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.
Chapter # 7 Software Quality Metrics
Regression Testing.
CS 1120: Computer Science II Software Life Cycle
A (partial) blueprint for dealing with change
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Chapter 7 Software Testing.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Department of Computer Science Regression Testing

Regression testing Testing changed software Regression test suite Retest all Selective regression testing Regression test suite Types of changes Defect fixes Enhancements Adaptations Perfective maintenance

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)

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

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

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’’

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

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

Practical regression testing Approach Quality Change Impact Schedule Full new Low Key Code Extensive None Minimal High Isolated Localized Very tight Expanded Moderate Full reuse Series of fixes

Approaches Full new test cycle Minimum regression test 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

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

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

Attributes of regression tests (2) Efficiency: cost of identifying a reduced regression test suite Generality: range of application for the selection strategy

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

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

Retest risky use cases Suspicious use cases Critical use cases Unsafe 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

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