How to Quickly Classify Different Software Testing Techniques
Testing techniques are groups of inter-related procedures responsible for producing the desired test deliverables.
Industry experts have prescribed many classification schemes for software testing according to six fundamental types like:
1) Manual Testing
2) Automated Testing
3) Static Testing
4) Dynamic Testing
5) Functional Testing or Black-Box Testing
6) Structural Testing or White-Box Testing
Popular software testing techniques classified alphabetically are given below:
Testing Technique |
Manual |
Auto – mated |
Static |
Dynamic |
Black Box |
White Box |
|
||||||
Basis Path Testing |
Y |
Y |
Y |
|||
Black-Box Testing |
Y |
Y |
Y |
|||
Bottom-Up Testing |
Y |
Y |
Y |
|||
Boundary Value Testing |
Y |
Y |
Y |
|||
Branch / Condition Coverage |
Y |
Y |
Y |
|||
Branch Coverage Testing |
Y |
Y |
Y |
|||
Cause-Effect Graphing |
Y |
Y |
Y |
|||
Condition Coverage Testing |
Y |
Y |
Y |
|||
CRUD Testing |
Y |
Y |
Y |
|||
Database Testing |
Y |
Y |
Y |
|||
Decision Tables |
Y |
Y |
Y |
|||
Desk Checking |
Y |
Y |
Y |
|||
Equivalence Partitioning |
Y |
Y |
Y |
|||
Exception Testing |
Y |
Y |
Y |
|||
Free Form Testing |
Y |
Y |
Y |
|||
Gray – Box Testing |
Y |
Y |
Y |
Y |
||
Histograms |
Y |
Y |
||||
Inspections |
Y |
Y |
Y |
Y |
||
JADs |
Y |
Y |
Y |
|||
Orthogonal Array Testing |
Y |
Y |
Y |
|||
Pareto Analysis |
Y |
Y |
||||
Positive and Negative Testing |
Y |
Y |
Y |
|||
Prior Defect History Testing |
Y |
Y |
Y |
|||
Prototyping |
Y |
Y |
Y |
|||
Random Testing |
Y |
Y |
Y |
|||
Range Testing |
Y |
Y |
Y |
|||
Regression Testing |
Y |
Y |
||||
Risk-Based Testing |
Y |
Y |
Y |
|||
Run Charts |
Y |
Y |
Y |
|||
Sandwich Testing |
Y |
Y |
Y |
|||
Statement Coverage Testing |
Y |
Y |
Y |
|||
State Transition Testing |
Y |
Y |
Y |
|||
Statistical Profile Testing |
Y |
Y |
Y |
|||
Structured Walkthroughs |
Y |
Y |
Y |
Y |
||
Syntax Testing |
Y |
Y |
Y |
Y |
||
Table Testing |
Y |
Y |
Y |
|||
Thread Testing |
Y |
Y |
Y |
|||
Top – Down Testing |
Y |
Y |
Y |
Y |
||
White-Box Testing |
Y |
Y |
Y |
Brief Description of each of the above testing technique is as under:
1) Basis Path Testing: Identifying tests based on flow and paths of a program or system
2) Black-Box Testing: Test cases generated based on the system�s functionality
3) Bottom-Up Testing: Integrating modules or programs starting from the bottom
4) Boundary Value Testing: Test cases generated from boundary values of equivalence classes
5) Branch / Condition Coverage Testing: Verify each condition in a decision takes on all possible outcomes at least once
6) Branch Coverage Testing: Verify each branch has true and false outcomes at least once
7) Cause-Effect Graphing: Mapping multiple simultaneous inputs which may affect others to identify their conditions to test
8) Condition Coverage Testing: Verify that each condition in a decision takes on all possible outcomes at least once
9) CRUD Testing: Build CRUD matrix and test all objectcreations, reads, updates, and deletions
10) Database Testing: Check the integrity of database field values
11) Decision Tables: Table showing the decision criteria and the respective actions
12) Desk Checking: Developer reviews code for accuracy
13) Equivalence Partitioning: Each input condition partitioned into two or more groups. Test cases are generated from representative valid and invalid classes
14) Exception Testing: Identify error messages and exception handling processes and conditions that trigger them
15) Free Form Testing: Ad hoc or brainstorming using intuition to define test cases
16) Gray-Box Testing: A combination of black-box and white-box testing to take advantage of both
17) Histograms: A graphical representation of measured values organized according to the frequency of occurrence used to pinpoint hot spots
18) Inspections: Formal peer review that uses checklists, entry criteria, and exit criteria
19) JADs: Technique that brings users and developers together to jointly design systems in facilitated sessions
20) Orthogonal Array Testing: Mathematical technique to determine which variations of parameters need to be tested
21) Pareto Analysis: Analyze defect patterns to identify causes and sources
22) Positive and Negative Testing: Test the positive and negative values for all inputs
23) Prior Defect History Testing: Test cases are created or rerun for every defect found in prior tests of the system
24) Prototyping: General approach to gather data from users by building and demonstrating to them some part of a potential application
25) Random Testing: Technique involving random selection from a specific set of input values where any value is as likely as any other
26) Range Testing: For each input identifies the range over which the system behavior should be the same
27) Regression Testing: Tests a system in light of changes made during a development spiral, debugging, maintenance, or the development of a new release
28) Risk-Based Testing: Measure the degree of business risk in a system to improve testing
29) Run Charts: A graphical representation of how a quality characteristic varies with time
30) Sandwich Testing: Integrating modules or programs from the top and bottom simultaneously
31) Statement Coverage Testing: Every statement in a program is executed at least once
32) State Transition Testing: Technique in which the states of a system are first identified and then test cases are written to test the triggers to cause a transition from one condition to another state
33) Statistical Profile Testing: Statistical techniques are used to develop a usage profile of the system that helps define transaction paths, conditions, functions, and data tables
34) Structured Walkthroughs: A technique for conducting a meeting at which project participants examine a work product for errors
35) Syntax Testing: Data-driven technique to test combinations of input syntax
36) Table Testing: Test access, security, and data integrity of table entries
37) Thread Testing: Combining individual units into threads of functionality which together accomplish a function or set of functions
38) Top-Down Testing: Integrating modules or programs starting from the top
39) White-Box Testing: Test cases are defined by examining the paths of logic of a system
References:
1) The Art of Software Testing – Myers, Glenford J.
2) Software Testing & Continuous Quality Improvement � W E Lewis
Many More Articles in Startup Kit for Software Testing
An expert on R&D, Online Training and Publishing. He is M.Tech. (Honours) and is a part of the STG team since inception.
Its very nice and helpful , Please release any document regarding to Test plan in detail.
Thanks
Very knowledgeable post regarding test plan. It is very helpful to the beginner level test engineer. Can you describe in brief on stress testing.