Software Regression Testing Speaker: Jerry Gao Ph.D. San Jose State University URL:

Slides:



Advertisements
Similar presentations
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Advertisements

Karolina Muszyńska Based on:
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Software Integration Testing Speaker: Jerry Gao Ph.D. San Jose State University URL:
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Free Mini Course: Applying UML 2.0 with MagicDraw.
Fundamentals of Testing
Component Testability ASE-2003: Tutorial by Jerry Zeyu Gao By Jerry Zeyu Gao, Ph.D. San Jose State University
Introduction To System Analysis and Design
Introduction to System Analysis and Design
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Package design and the Iterative process model. What is a package? Classes are not sufficient to group code –Some classes collaborate, implying dependencies.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Introduction to Software Testing
Software Testing & Strategies
Software Test Automation and Tools Speaker: Jerry Gao Ph.D. San Jose State University URL:
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
Chapter 7: The Object-Oriented Approach to Requirements
Effective Methods for Software and Systems Integration
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Software Engineering 1 The Life Cicle of Software Lesson 5.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
BCS 2143 Introduction to Object Oriented and Software Development.
Software Testing Life Cycle
Understand Application Lifecycle Management
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Chapter 13: Regression Testing Omar Meqdadi SE 3860 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Systems Development Life Cycle
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class project.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Formal Methods in Software Engineering
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Criteria Based Software Product Integration Architecture (2007) F. Tsui Kennesaw State University (Southern Polytechnic State University)
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
System Test Planning SYSTTPLAN 1 Location of Test Planning Responsibilities for Test Planning Results of Test Planning Structure of a Test Plan Test Definitions.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
4+1 View Model of Software Architecture
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
V7 Foundation Series Vignette Education Services.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
What is Software Test Automation?
Software Configuration Management
Classical Waterfall Model
Object-Oriented Design
Introduction to Software Testing
Software Test Automation and Tools
CS 8532: Advanced Software Engineering
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Software Regression Testing Speaker: Jerry Gao Ph.D. San Jose State University URL:

Topic: Software Regression Testing - What is Software Regression Testing? - Basic Software Regression Problems - Software Regression Testing Process - Regression Strategies for Traditional Software - Basic Solutions to Software Regression Problems - Regression Strategies for Object-Oriented Software Jerry Gao Ph.D.7/20002 Presentation Outline All Rights Reserved

Topic: Software Regression Testing What is Software Regression Testing? - Testing activities occur after software changes. - Regression testing usually refers to testing activities during software maintenance phase. Major testing objectives: - Retest changed components (or parts) - Check the affected parts (or components) Regression testing at different levels: - Regression testing at the unit level - Re-integration - Regression testing at the function level - Regression testing at the system level Jerry Gao Ph.D.7/2002 What is Software Regression Testing?

Topic: Software Regression Testing Who perform software Regression: Developers - regression testing at the unit level or integration Test engineers - regression testing at the function level QA and test engineers - regression testing at the system level What do you need to perform software regression testing? - Software change information (change notes). - Updated software REQ and Design specifications, and user manuals. - Software regression testing process and strategy. - Software regression testing methods and criteria. Jerry Gao Ph.D.7/2002 What is Software Regression Testing?

Topic: Software Regression Testing Major problems in software regression testing: - How to identify software changes in a systematic way? - REQ. specification changes - Design specification changes - Implementation (or source code) changes - User manual changes - Environment or technology changes - Test changes - How to identify software change impacts in a systematic way? - REQ impacts - Design impacts - Implementation impacts - User impacts - Test impacts Jerry Gao Ph.D.7/2002 Problems and Challenges in Software Regression Testing

Topic: Software Regression Testing Major regression testing problems: - How to use a systematic method or tool to identify changed software parts? - How to use a systematic method or tool to identify software change impacts? - How to use a systematic method or tool to identify affected software test cases? - How to reduce the re-test suites? - How to select the test cases in a test suite? Major challenge in software regression testing: - How to minimize re-testing efforts, and achieve the adequate testing coverage? Jerry Gao Ph.D.7/2002 Problems and Challenges in Software Regression Testing

Topic: Software Regression Testing Software Regression Process: Step #1: Software Change Analysis - Understand and analyze various software changes. Step #2: Software Change Impact Analysis - Understand and analyze software change impacts Step #3: Define Regression Test Strategy and Criteria Step #4: Define, select, and reuse test cases to form a regression test suite Step #5: Perform re-testing at the different levels. - re-testing at the unit level - re-testing at integration level - re-testing at the function level - re-testing at the system level Step #6: Report and analyze regression test results Jerry Gao Ph.D.7/2002 Software Regression Process

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 Software Regression Process Software Change Analysis Software Change Impact Analysis Define Regression Testing Strategy Build Regression Test Suite Report Retest Results Run Regression Tests at different levels

Topic: Software Regression Testing Requirements analysisRequirements Spec. Changes -> add new functional features -> change current function features -> delete existing function features System DesignSystem architecture changes -> change component interactions -> add new components/subsystems -> update existing components -> delete existing components High-level design doc. Changes -> change state-based behaviors -> change component interfaces -> change database design -> change GUI design -> change function design Jerry Gao Ph.D.7/2002 Different Types of Software Changes All Rights Reserved

Topic: Software Regression Testing Different Types of Software Changes System Design Changes- Low-level design doc. Changes -> change algorithm logic -> change component structure - System implementation- Component changes - internal data types and names - internal structures, such as --> class relationships --> control flow and data flow - internal functions - Component interface changes - call signatures - message interactions - protocol messages and formats - Technology and/or language changes

Topic: Software Regression Testing Types of system changes Types of product impacts Requirements changesAffect design, coding, and testing Document update Design changesAffect coding and tests Affect associated components Affect system architecture Affect related component interactions Implementation changesAffect test cases, test data, test scripts Affect test specification. Code change impact s - Test changesAffect other tests. Affect test documentation Document changesAffect other documents. Jerry Gao Ph.D.7/2002 Software Changes Impacts All Rights Reserved

Topic: Software Regression Testing What is a software Regression strategy? Software test strategy provides the basic strategy and guidelines to test engineers to perform software regression testing activities in a rational way. Software Regression strategy usually refers to --> a rational way to define regression testing scope, coverage criteria, re-testing sequence (or order) and re-integration orders. Software regression test models are needed to support the definition of software regression test strategy, test cases, and coverage criteria. Typical regression test models: control flow graph, state-based behavior diagram object-oriented class diagram scenario-based model component-based Regression model Jerry Gao Ph.D.7/2002 Software Regression Strategy

Jerry Gao Ph.D.7/2002 Topic: Software Regression Testing Traditional Software Regression Strategy Based on The Firewall Concept A Module-Based Firewall Concept for Software Regression Testing: A module firewall in a program refers to a changed software module and a closure of all possible affected modules and related integration links in a program based on a control-flow graph. With this firewall concept, we can reduce the software regression testing to a smaller scope --> All modules and related integration links inside the firewall. This implies that: - re-test of the changed module and its affected modules - re-integration for all of related integration links Similarly, we can come out different kinds of firewalls based on various test models. - data firewall, function firewall - class firewall,state/transaction firewall

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 A Changed Module Firewall For Regression Testing Main M1M3M2 M7M6M5M4 M8 A module firewall: - M5, M1, and Main Re-testing at the unit level: M5, Re-integration: 2, 3, Changed Module

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 Regression Testing for State-Based Behavior Changes Main M1M3M2 M7M6M5M4 M

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 An Object-Oriented Software Regression Strategy An OO Software Regression Testing Strategy Based on the Class Firewall Concept: - Identify changed classes - Identify affected classes using the concept of Class Firewall - Apply the Class Test Order strategy to classes in a class firewall to perform class re-testing at the unit level - Use the Class Test Order to re-integrate classes together. - Select, reuse, and define test cases based on the class firewall and change information.

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 The Class Firewall Concept A class firewall concept in OO Software is very useful for OO regression testing. What is a class firewall? - A class firewall is a closure set of all classes that are directly or indirectly dependent on the changed class in an OO program. - The class firewall provides the safe scope of regression testing for an OO software after changing a class. - Similarly, we can apply to many changed classes. Class Firewall Application: - With this class firewall concept, we can narrow down the class regression testing scope, including unit re-testing, and re-integration. - Based on the class firewall and changed information, we can select, define, and reuse class test cases for regression testing.

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 A Changed Class in An Class Relation Diagram ButtonList Button Sensor TextButton Subject InstructorItr ButtonState EventScene World Control ControlState CanvasRepCanvas MonoScene AG AS AG AS AG I I I I I I AS AG AS

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 A Class Firewall for An Object-Oriented Programs ButtonList Button Sensor TextButton Subject InstructorItr ButtonState EventScene World Control ControlState CanvasRepCanvas MonoScene AG AS AG AS AG I I I I I I AS AG AS

Topic: Software Regression Testing Jerry Gao Ph.D.7/2002 A Class Test Order for The Class Firewall ButtonList Button Sensor TextButton Subject InstructorItr ButtonState EventScene World Control ControlState CanvasRepCanvas MonoScene AG AS AG AS AG I I I I I I AS AG AS 4 I