Anti-patterns in Test Automation
- Using implicit waits
- Using Recorded playback
- Using brittle, layout based selectors
- Not isolating test data between tests
- Not consistently using Page Objects
- Tests that only have negative assertions
- Using assertions mid-way through a test
- Repeating parts of tests due to the same setup
- Not considering the Sad path of user entering invalid data
- Forcing all tests to go through all pages in complex workflows
- Assuming that test automation cover accessibility and usability
- Using cryptic names and acronyms in test and suite descriptions
- Not considering optional workflows for both happy and sad flows
- Only testing 1 browser and assuming that other browsers work fine
- Not using Page Helpers to DRY up and name common code sections
- Using general assertions like
have_css
over specificdeclarative ones likehave_button
- Using authenticate / authorization in multiple tests leading to massive test failures
- Bullet Points that gradually get longer as you scan your eyes down the full page of them
I would say that I've made every mistake in this list when starting out, before I knew better so I think they all meet your criteria of 'seemed ok initially'