Skip to main content

4 - Software Testing - 3 - Test Techniques


One of the aims of testing is to detect as many failures as possible. Many techniques have been developed to do this .These techniques attempt to “break” a program by being as systematic as possible in identifying inputs that will produce representative program behaviors; for instance, by considering sub-classes of the input domain, scenarios, states, and data flows. The classification of testing techniques presented here is based on how tests are generated: from the software engineer’s intuition and experience, the specifications, the code structure, the real or imagined faults to be discovered, predicted usage, models, or the nature of the application. One category deals with the combined use of two or more techniques. Sometimes these techniques are classified as white-box (also called glass-box), if the tests are based on information about how the software has been designed or coded, or as black-box if the test cases rely only on the input/output behavior of the software. The following list includes those testing techniques that are commonly used, but some practitioners rely on some of the techniques more than others.
1. Based on the Software Engineer’s Intuition and Experience
2. Input Domain-Based Techniques
3. Code-Based Techniques
4. Fault-Based Techniques
5. Usage-Based Techniques
6. Model-Based Testing Techniques
7. Techniques Based on the Nature of the Application
8. Selecting and Combining Techniques

1. Based on the Software Engineer’s Intuition and Experience
A. Ad Hoc
B. Exploratory Testing
2. Input Domain-Based Techniques
A. Equivalence Partitioning
B. Pairwise Testing
C. Boundary-Value Analysis
D. Random Testing
3. Code-Based Techniques
A. Control Flow-Based Criteria
B. Data Flow-Based Criteria
C.Reference Models for Code-Based Testing
4. Fault-Based Techniques
A. Error Guessing
B. Mutation Testing
5. Usage-Based Techniques
A. Operational Profile
B.User Observation Heuristics
6. Model-Based Testing Techniques
A. Decision Tables
B. Finite-State Machines
C. Formal Specifications
D. Workflow Models
7. Techniques Based on the Nature of the Application
• object-oriented software
• component-based software
• web-based software
• concurrent programs
• protocol-based software
• real-time systems
• safety-critical systems
• service-oriented software
• open-source software
• embedded software
8. Selecting and Combining Techniques
A. Combining Functional And Structural
B. Deterministic Vs Random

Back - 2 - Test Levels
Next - 4 - Test-Related Matters
Home - Software Testing
Main - The BOK

Published on : 30-May-2018
Ref no : DTC-WPUB-000030

About Author

My photo
Wan Mohd Adzha CAPM,MCPD,MCSD,MCSE
Passionate about new technology ( Software Engineering ) and how to build,manage and maintain them

Comments