REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Test Execution and Defect management. 2 Module Objectives Introduction to Test Execution Checklist of Test Execution Defect management Defect Classification.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Illinois Institute of Technology
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.
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
Software Testing Test Design and Implementation. Agenda Test Design Test Implementation Test Design Sources Automated Testing 2.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Release & Deployment ITIL Version 3
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Testing Life Cycle
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
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?
Introduction Telerik Software Academy Software Quality Assurance.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
 CS 5380 Software Engineering Chapter 8 Testing.
Development Methodology N. Draper. Introduction Development Process Test driven development Continuous Integration –Automated build and test Trac Ticket.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Software Testing. What is Testing? The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Testing 1 © Minder Chen, Source: Developing Web Applications with Microsoft Visual Basic.NET and Microsoft Visual C#.NET Testing Test plan objectives.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Page 1 TEST in the large RELEASE REWORK ASSESS packaged application documentation models and source code management documents requirement alloc. matrix.
Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.
Software Testing Process By: M. Muzaffar Hameed.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
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.
What is regression testing? Regression testing is a type of testing that ensures there are no defects/issues in exiting functionality because of new change.
Teaching slides Chapter 9. Chapter 9 Software Testing (Verification & Validation) Introduction Software testing & software engineering methodologies Introduction.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
CIS-74 Computer Software Quality Assurance
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Test Plan IEEE Explained by Nimesh Vadgama - QA.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Syndicate Members: 1. GC Muhammad Uzair 2. GC Umer Naveed Malik.
Applied Software Project Management SOFTWARE TESTING Applied Software Project Management 1.
Applied Software Testing
Software Configuration Management
How To Apply Quality Management
Regression Testing with its types
Software Engineering (CSI 321)
Chapter 8 – Software Testing
Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas.
Maintaining Quality Test Optimization with Increasing Software Complexity Ankit Goyal Software Engineer II Adobe Systems.
Applied Software Implementation & Testing
Some Important Techniques For Regression Testing That You Must Know.
Software Quality Engineering
Testing and Test-Driven Development CSC 4700 Software Engineering
What is Software Testing?
Bringing more value out of automation testing
Regression Testing.
The Software Testing Life Cycle
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B

We Will Discuss:  What is Regression testing?  Why do we Perform it?  When do we Perform it?  How do we perform it?  What is Regression testing?  Why do we Perform it?  When do we Perform it?  How do we perform it?

What is Regression Testing?  The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.

Why do we need it?  Because when you Fix one bug, you sometimes introduce several other bugs.

Types:  Regular Regression Testing : is done between test cycles to ensure that the defect fixes that are done and the functionality that were working with the earlier test cycle continue to work.  Final Regression Testing: performed to validate the build that hasn’t changed for a period of time. This build is deployed or shipped to customers.  Regular Regression Testing : is done between test cycles to ensure that the defect fixes that are done and the functionality that were working with the earlier test cycle continue to work.  Final Regression Testing: performed to validate the build that hasn’t changed for a period of time. This build is deployed or shipped to customers.

When to use it?  The change is in requirements and the code is modified according to the requirement.  Defect fixing.  New feature is added to the software.  Performance issue fix.  The change is in requirements and the code is modified according to the requirement.  Defect fixing.  New feature is added to the software.  Performance issue fix.

How to perform Regression Testing?  Performing an initial “Smoke” or “Sanity” test  Understanding the criteria to select the test cases for Regression Testing  Prioritization of test cases  Methodology for select test cases  Resetting the test cases for test execution  Concluding the result of a regression test cycle  Performing an initial “Smoke” or “Sanity” test  Understanding the criteria to select the test cases for Regression Testing  Prioritization of test cases  Methodology for select test cases  Resetting the test cases for test execution  Concluding the result of a regression test cycle

Step 1: Perform a Smoke\Sanity Test  Smoke tests done to demonstrate stability, not to find bugs.  Sanity tests done to check if the major functionality of the system is working or not.  Smoke tests done to demonstrate stability, not to find bugs.  Sanity tests done to check if the major functionality of the system is working or not.

Step 2: Choose test case selection criteria  Requires knowledge on the bug fixes and how it affects the system.  Includes the area of frequent defects.  Includes the area which has undergone many/recent code changes.  Includes the area which is highly visible to the users.  Includes the core features of the product which are mandatory requirements of the customer.  Requires knowledge on the bug fixes and how it affects the system.  Includes the area of frequent defects.  Includes the area which has undergone many/recent code changes.  Includes the area which is highly visible to the users.  Includes the core features of the product which are mandatory requirements of the customer.

Step 3: Prioritization of Test Cases  Priority-0: Sanity test cases. also run when a project goes through major changes. deliver a very high project value.  Priority-1: Uses the basic and normal setup and these test cases deliver high project value to both development teams and customers.  Priority-2: These test cases deliver moderate project value and are executed as a part of software testing life cycle and selected for regression on need basis.

Step 4: Test case selection methodology Several approaches:

Continued.. Alternative methodologies:  Regress All: For regression testing, all priority 0, 1, and 2 test cases are re-run.  Priority bases Regression: For regression testing, based on the priority, all priority 0, 1, and 2 test cases are run in order, based on the availability of time.  Random Regression: Random test cases are selected and executed.  Regress Changes: Code changes are compared to the last cycle of testing and test cases are selected based on their impact on the code.  An effective regression strategy is usually a combination of all of the above. Alternative methodologies:  Regress All: For regression testing, all priority 0, 1, and 2 test cases are re-run.  Priority bases Regression: For regression testing, based on the priority, all priority 0, 1, and 2 test cases are run in order, based on the availability of time.  Random Regression: Random test cases are selected and executed.  Regress Changes: Code changes are compared to the last cycle of testing and test cases are selected based on their impact on the code.  An effective regression strategy is usually a combination of all of the above.

Step 5: Resetting test cases for execution Resetting of the test cases need to be done with the following considerations:  When there is a major change in the product.  Where there is a situation, the expected results of the test cases could be quite different from previous cycles.  Whenever existing application functionality is removed, the related test cases can be reset.  When there is a change in the build procedure which affects the product.  Large release cycle where some test cases were not executed for a long time.  You are in the final regression test cycle with a few selected test cases. Resetting of the test cases need to be done with the following considerations:  When there is a major change in the product.  Where there is a situation, the expected results of the test cases could be quite different from previous cycles.  Whenever existing application functionality is removed, the related test cases can be reset.  When there is a change in the build procedure which affects the product.  Large release cycle where some test cases were not executed for a long time.  You are in the final regression test cycle with a few selected test cases.

Step 6: Concluding the Results In situations where the pass % is not 100, test manager looks at previous results:  If the result of a test case was PASS using the previously and FAIL in the current build, then regression failed. get a new build. start testing from scratch.  If the result of a test case was a FAIL using the previous builds and a PASS in the current build, then bug fixes worked.  If the result of a test case was a FAIL previously and a FAIL in the current build then result of this test case shouldn’t be considered for the pass %. such test cases shouldn’t be selected for regression. In situations where the pass % is not 100, test manager looks at previous results:  If the result of a test case was PASS using the previously and FAIL in the current build, then regression failed. get a new build. start testing from scratch.  If the result of a test case was a FAIL using the previous builds and a PASS in the current build, then bug fixes worked.  If the result of a test case was a FAIL previously and a FAIL in the current build then result of this test case shouldn’t be considered for the pass %. such test cases shouldn’t be selected for regression.

QUESTIONS?