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
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.
Problems and Challenges in 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
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?
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
- 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
