Our goal was to explore techniques that would help you engineer test cases systematically. We discuss a more orthogonal topic: how large should our tests be? I have shown you examples of larger component tests, integration tests, and system tests. But regardless of the test level, engineering good test cases should still be the focus.
When you write a larger test, use the requirement and its boundaries, the structure of the code, and the properties it should uphold to engineer good test cases. The challenge is that an entire component has a much larger requirement and a much larger code base, which means many more tests to engineer.
I follow this rule of thumb: exercise everything at the unit level (you can easily cover entire requirements and structures at the unit level), and exercise the most important behavior in larger tests (so you have more confidence that the program will work when the pieces are put together). It may help to reread about the testing pyramid
Leave a Reply