2. What is 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
3. What is 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.
4. 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
5. Problems and Challenges in 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?
6. Software Regression Process
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
7. Software Regression Process
Software Change
Analysis
Software Change
Impact Analysis
Define Regression
Testing Strategy
Build Regression
Test Suite
Run Regression
Tests at different levels
Report Retest
Results
8. “With an order of magnitude fewer variables
performance testing could be a science,
but for now,
performance testing is at best
a scientific art.”
--Scott Barber
Vice President & Executive Director,
Association for Software Testing
www.associationforsoftwaretesting.org
9. PERFORMANCE TESTING
What
Testing conducted to evaluate the compliance
of a system or component with specified
performance requirements (IEEE).
Why
To meet/exceed the customers’ expectations
as per the agreed SLAs (Service Level
Agreements) for the response time of
different business functions.
How
- Outsourcing
- In house with Purchased Tools
- In house with Leased Tools
9
11. Define Performance Testing
Stress Testing: Stress Testing is done in order to check when the
application fails by varying the system resources such as RAM, HDD
etc. and keeping the number of users as constant.
Load Testing: Load Testing is done in order to check when the
application fails by increasing the number of users and keeping the
system resources as constant.
Performance Testing: The term Performance can mean measuring
response time, number of hits , resource utilization, or some other system
characteristic( or group of them), by varying the number of users.
14. Benefit of Performance Testing
If done well, there can be benefits:
•
Dramatically reduce the overhead involved in managing test
environments
•
Easier for performance testing to have it’s own test environment
•
Enable collaborative tuning without having to “borrow” hardware
resources
•
Put the test team in control of their test environments
Virtualization does not change the core principles of
successful performance testing
15. SUMMARY:“Only performance testing at the conclusion
of system or regression testing
is like
ordering a diagnostic blood test
after the patient is dead.”
--Scott Barber
Vice President & Executive Director,
Association for Software Testing
www.associationforsoftwaretesting.org