On End-To-End Testing Of Web Software
Updated:
End-to-end tests, all in, have been some of the biggest wasted efforts I've been a part of. Why? Three thoughts:
- You're working against combinatorial math. Experiences have many forks. Our brains don't do well with the math: if you have 20 forks, that's 2 to the 20th or 1,048,576. No one's writing or maintain a million e2e tests. Most apps have many more than 20. Try calculating 2^30.
- Writing and maintaining the tests are the easy parts. Running the tests well and deterministically is the hard part.
- Anything where the easy part is hard, and there's a hard part too? Best path is usually to find another way.
Therefore, in my opinion: lop the pyramid off at the top and focus on thorough unit testing of logic and high value API integration tests.