In my years of teaching test design techniques, I have come to teach people that there are (at least) two essentially different types of functionalities we design tests for:
- function-intensive applications are ones where you list the tricks the app can do, and a lot the work in designing tests are creating lists of functionalities and exploring when they work.
- data-intensive applications are ones where the same functionality is riddled with data-oriented rules, and you are collecting business rules captured in data.
- documenting and knowledge sharing does not help if there is 10 months between being taught and needing the information
- what I consider clear may be unclear to others
- everything that can fail will fail, but at least it failed in test environment