Regression testing Tor Stållhane.

Slides:



Advertisements
Similar presentations
GUI Testing By Norbert Haché. Contents b What is GUI testing b Elements of GUI testing b Old Approach (TRUMP Project) b Scripting b Capture / Replay b.
Advertisements

P5, M1, D1.
MIS 2000 Class 20 System Development Process Updated 2014.
Rtizen ‘s Introduction to EDA Solutions It’s a software tool to make error free engineering drawings (both 2d & 3d) in a cost effective way.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
Regression testing Tor Stållhane. What is regression testing – 1 Regression testing is testing done to check that a system update does not re- introduce.
Translator Module Overview The new Translator Module for WebIEP offers a means for producing high quality IEP forms printed in Spanish. The module is.
This chapter is extracted from Sommerville’s slides. Text book chapter
TESTING.
A centre of expertise in digital information managementwww.ukoln.ac.uk QA And The IWMW Web Site: A Case Study (flaws and all) Brian Kelly UKOLN University.
SESSION: A LOOK AT UCC’s FINANCIAL AID SOLUTION Presenters: Jacob Geluk, Data Management Coordinator UCC Registrar’s Office Dennis Mayberry, Registrar.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
Ontology Evolution and Regression Analysis Insights into Ontology Regression Testing Maria Copeland Rafael Goncalvez Robert Stevens Bijan Parsia Uli Sattler.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Getting Started with MATLAB 1. Fundamentals of MATLAB 2. Different Windows of MATLAB 1.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Systems Life Cycle. Know the elements of the system that are created Understand the need for thorough testing Be able to describe the different tests.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
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.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Sequential Processing to Update a File Please use speaker notes for additional information!
Software testing techniques Software testing techniques REGRESSION TESTING Presentation on the seminar Kaunas University of Technology.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
REGRESSION TESTING Audrius Čėsna IFM-0/2. Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing.
Edexcel OnCourse Databases Unit 9. Edexcel OnCourse Database Structure Presentation Unit 9Slide 2 What is a Database? Databases are everywhere! Student.
1 March 12, Testing William Cohen NCSU CSC 591W March 12, 2008.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Development Environment
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
14 Compilers, Interpreters and Debuggers
Regression Testing with its types
SQL and SQL*Plus Interaction
The Development Process of Web Applications
Database Systems Unit 16.
Software Testing.
CVS revisions UML diagram
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Maintaining software solutions
Some Important Techniques For Regression Testing That You Must Know.
It is great that we automate our tests, but why are they so bad?
Introduction to Software Testing
Design and Programming
Testing and Test-Driven Development CSC 4700 Software Engineering
Different Testing Methodology
Coding Concepts (Basics)
Software testing and configuration : Embedded software testing
Test coverage Tor Stålhane.
Software Verification, Validation, and Acceptance Testing
Lecture 06:Software Maintenance
Mutation Testing The Mutants are Coming! Copyright © 2017 – Curt Hill.
Regression Testing.
Scriptless Test Automation through Graphical User Interface
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Running a Java Program using Blue Jay.
Arrays.
Review of Previous Lesson
Stand-Alone Quick Data Entry QDE
Presentation transcript:

Regression testing Tor Stållhane

Regression testing During development During maintenance System integration System testing and FAT During maintenance When building new releases of a software product

Challenges in regression testing Expensive and time consuming Select modules based on dependencies Prioritize test scenarios based on business value

What is regression testing – 1 Regression testing is testing done to check that a system update does not re-introduce errors that have been corrected earlier. All – or almost all – regression tests aim at checking Functionality – black box tests. Architecture – grey box tests

What is regression testing – 2 Since they are supposed to test all functionality and all previously done changes, regression tests are usually large. Thus, regression testing needs automatic Execution – no human intervention Checking. Leaving the checking to developers will not work.

Automating regression tests – 1 We face the same challenge when doing automating regression test as we face when doing automatic test checking in general: Which parts of each output should be checked against the oracle? This question gets more important as we need to have more version of the same test due to system variability.

Automating regression tests – 2 Some alternatives: check Only result-part, e.g. numbers and generated text Result part plus text used for explanation or as lead texts Any of the above plus its position on the print-out or screen

Automating regression tests – 3 Simple but annoying – and some times expensive – problems are e.g. Use of date in the test output Changes in number of blanks or line shifts Other format changes Changes in lead texts

Automating regression tests – 4 A simple solution could be to use assertions. This is, however, not a good alternative since the assertion will have to be Inside the system all the time – extra space and execution time Only in the test version – one extra version per variation to maintain.

Automating regression tests – 5 The answer to the question on the previous slide is to parameterize the test results. Instead of using a complete output file as the oracle we use: A tool to extract the relevant info from the output file Compare the extracted info with the info stored in the oracle

Automating regression tests – 6 Build tests for version x Test data Run tests for version x Build results for version x Compare Verdict

Run all regression tests Since a regression test is large, it is always a need to identify which parts of the regression tests need to be run after a change – e.g. an error correction. Thus, traceability – which components are used to realize which functionality or requirement – is important info for two reasons: Save execution time. Fast and cheap hardware is, however, steadily reducing this need. Know which tests to change when we change functionality.

Improving the regression test Once we have a regression test, it is important to update it each time we Fix a bug Add, change or remove functionality Change platform If we create variants of the system, we also need to create parallel variants of the regression test suite.

Bug fixing – 1 When somebody reports a bug, the first activity is to reproduce it – preferably with the simplest input sequence possible. When the bug is reproduced, we need to make a new entry in the regression test. This entry will be one of the following The original reported input sequence The simplest possible input sequence

Bug fixing – 2 The original reported input sequence Pro: is the real thing and will tell us something about how the system is used in real life. Con: can be large, complex and difficult to understand The simplest possible input sequence Pro: is (usually) simple to understand Con: is an artificial input sequence and has no info beside being able to reproduce a reported bug