Skip to main content
SOFTWARE REGRESSION
AND
PERFORMANCE TESTING

Dr. Himanshu Hora
SRMS College of Engineering & Technology
Bareilly (INDIA)
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
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.
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
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?
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
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
“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
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
Good Performance…?
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.
Performance Testing Tools
•
•
•
•

HP-LoadRunner
Compuware-QA Load
IBM-Rational Performance Tester
Borland-Silk Performer
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
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
REFERENCES
•
•
•
•
•

www.sqe.com/ControlImages/sqe/.../empirix_archivepresentation
www.qaiconferences.org/tempEQAA/Performance%20testing
https://wiki.uta.edu/download/attachments/48170179/Testing
www.idi.ntnu.no/emner/tdt4242/materials/Regression-testing
www.engr.sjsu.edu/gaojerry/course/287/regression-test
Thank You

Dr. Himanshu Hora
SRMS College of Engineering & Technology
Bareilly (INDIA)