Testing Methods - SE
Testing Methods - SE
Recap
• Software testing
– Why do we do testing?
– When it is done?
– Who does it?
• Software testing process / phases in software testing
• Levels of testing
Contents
• Testing methodologies
• Debugging process
TESTING METHODOLOGIES AND TYPES
Testing Methodologies / Types
Load testing
• Testing an application under heavy loads.
• Eg. Testing of a web site under a range of loads to determine, when the
system response time degraded or fails.
Stress Testing
• Testing under unusually heavy loads, heavy repetition of certain actions or inputs,
input of large numerical values, large complex queries to a database etc.
• Term often used interchangeably with ‘load’ and ‘performance’ testing.
Performance testing
• Testing how well an application complies to performance requirements
Install/uninstall testing
• Testing of full, partial or upgrade install/uninstall process.
Recovery testing
• Testing how well a system recovers from crashes, HW failures or other problems.
Compatibility testing
• Testing how well software performs in a particular HW/SW/OS/NW environment.
Exploratory testing / ad-hoc testing
• Informal SW test that is not based on formal test plans or test cases;
testers will be learning the SW in totality as they test it.
Comparison testing
• Comparing SW strengths and weakness to competing products.
Alpha testing
• Testing done when development is nearing completion; minor design
changes may still be made as a result of such testing.
Beta-testing
• Testing when development and testing are essentially completed and
final bugs and problems need to be found before release.
White box testing / Structural testing
Eg. A + B
If (A = 3) Then
B=X+Y
End-If
While (A > 0) Do
Read (X)
A=A-1
End-While-Do
Decision Coverage - Example
If A < 10 or A > 20 Then
B=X+Y
• Incremental Testing
– A disciplined method of testing the interfaces between unit-tested
programs as well as between system components.
– Involves adding unit-testing program module or component one by
one, and testing each result and combination.
• Thread testing
– When testers focus on testing individual Logical execution paths in
context of entire system
– Each Thread has a status associated with it for a particular build
Types of incremental testing
• Top-down
– Testing form the top of the module hierarchy and work down to the bottom.
Modules are added in descending hierarchical order.
• Bottom-up
– Testing from the bottom of the hierarchy and works up to the top. Modules are
added in ascending hierarchical order.
Testing levels and techniques applied
Unit Testing X
X
Integration Testing X X
System Testing X
Acceptance Testing X
When is Testing Complete?