Changing Tyres In A Moving Car-Making Functional Test Automation Effective
summary
Lists eight concrete anti‑patterns (code that is deeply nested, hundreds of thread.sleep calls, swallowed exceptions, abusive data providers, test-order dependencies, brittle TestNG XMLs, automatic retrying of failures, deep page‑object inheritance) and gives actionable fixes: use IDE linters, stop using thread.sleep, don't mix implicit and explicit waits, throw rich exceptions and keep assertions out of page objects, map explicit journeys instead of blind data providers, tag tests and separate config (use Gradle), and prefer composition over inheritance so tests run independently.
AI-written summary · about
chapters (29)
- 0:00Intro
- 1:34Raise your hand if you disagree
- 4:43What is an anti-pattern?
- 7:07Cognitive complexity
- 8:05Code Analysis
- 10:15Thread.sleep
- 11:17Mixing Implicit & Explicit Waits
- 12:02STOP SLEEPING
- 12:38Understand Waits
- 14:24Assertions all over the place!
- 16:04No assertions in PageObjects
- 16:37Custom exceptions help in RCA
- 19:17Identify & automate unique journey
- 20:31Criteria for Test Data
- 21:09Test Data for Automation
- 22:34Dependencies in Tests
- 24:55Independent Tests
- 25:30Optimised Test Execution
- 27:14testng.xml
- 29:07Tag your tests
- 31:56Configurable Test Execution
- 33:08Flaky Tests
- 33:50DO NOT USE Retry Listener
- 34:05DO NOT Force actions
- 38:24Do 'proper' RCA for failing & flaky to
- 38:57Test Class Design
- 40:04Poor use of Inheritance
- 40:32Identifying Page Objects
- 41:43Do not use PageFactory
related talks
12mThe Tester’s Guide - 6 Bad Habits You Must Break
44mTesting the untestable - patterns and use cases analysis
45mTesting the untestable PART II – patterns, use cases and practices
54mTest Automation Transformation Avoiding the 7 Common Pitfalls
25mTest Craftsmanship: Clean code practices for Test Automation
58mTesting Strategy - New Model, Better Outcomes
36mLiving on crotches or UI Automation antipatterns
01h 48mNo Such Thing as Manual Testing and Other Confusions
