Test automation especially ui test automation is like a huge jenga tower, everything is always about to collapse. How can we rely on them?
- Only run stable tests (stability)
- Keep the execution time low (performance)
- Only run the important tests for first feedback (performance)
- Loosly coupled with the code under test (maintenance)
- A test should have a maintainer that is required to fix it (maintenance)
- A failing test should express what functionality has been broken, ideally in a way even non-tech people can understand (maintenance)