This page is currently a draft.
This list is not complete. Please help me complete it.
- Never trust a test you did not see fail.
A good test:
- Is as small as possible. While still providing value.
- Is as simple as possible. It is more important for tests to be simple than DRY.
- Tests as little as possible. When it breaks, it should be easy to find why.
- Uses API for setup. As much as possible. It’s both faster and more robust.
- Uses page objects. Exceptions are possible but not probable.
- Doesn’t depend on others. Test suite should pass when tests are running in random order or in parallel.
- Sets up it’s environment.
- Users, pages, files...
- It does not depend on the environment being in a certain state.
- Is at a lower level.
- What could be tested at a lower level should not be tested at a higher lever.
- There should be as little high level tests as possible.
- Selenium/Reference/Example Code
- phab:T246880 Software testing anti-patterns: Selenium
- phab:T234635 Wikimedia Technical Conference 2019 Session: System level testing: patterns and anti-patterns with Selenium