Is it possible to cover edge cases and corner cases by using test design techniques like; boundary value analysis, equivalence class testing... ?
Based on my experience in quality assurance services there can be few more ways to cover test cases:
We can derive the test cases directly from a requirements. Various Techniques are following:
- Boundary Value Analysis (BVA)
- Equivalence Partitioning (EP)
- Decision Table Testing
- State Transition Diagrams
- Use Case Testing
Another way to create test cases is through structure of a component or system:
Statement Coverage - In this technique we cover test cases for all executable statements in the source code. However this is less preferred
Branch Coverage - In this technique we cover test cases for all branches.
Path Coverage - In this techniques we cover all the path in source code
LCSAJ Testing - Linear Code Sequence and Jump, IT is a white box testing technique to identify the code coverage that begins at the start of the program and finishes at the end of the program.
Another option to generate Deriving test cases based on QA experience or intuition.
Error Guessing - testers anticipate errors based on their experience, availability of data and their knowledge of product failure. Error guessing is dependent on the skills, intuition, and experience of the testers.
Exploratory Testing - QA perform tests without any formal documentation based on his experience
Yes, it is possible to use test design techniques to test edge and corner cases.
Boundary Value Analysis (BVA) and Equivalence Partitioning (EP) are useful for testing input data to verify the output results. For these to be valuable, you need to understand what the boundaries are and how the data is partitioned between the boundaries.
For more thorough testing, consider adding in Pairwise Testing, also called Allpairs testing. Defined by the ISTQB as
A black-box test design technique in which test cases are designed to execute all possible discrete combinations of each pair of input parameters.
Some examples of where to use it: testing complex forms, surveys, quizzes, product recommendation services, areas where you have 3 or more combinations of inputs.