Complete and exhaustive testing is not possible. Nor would it be fun, or maintainable, or a good use of your time.
However, some functionality is important enough to make sure the test behavior coverage is thorough enough to have high confidence in it's quality.
In this episode, we discuss 3 techniques that can be combined to quickly generate test cases. We then talk about how to implement them efficiently in pytest.
The techniques covered are:
- equivalence partitioning
- boundary value analysis
- decision tables
We discuss how to use these to generate test cases for a new list filter functionality in the cards application.
The resulting tests:
- 1 UI test to make sure the options are able to be passed in correctly.
- 1 small parametrized test function with 16 single line parameter sets representing the different test cases.