Complete Course
Elements of Automated Test Design
Design fast, robust, and reliable automated tests: independence, testability, stability, and more.
~3 hours of content
Course Content
15 comprehensive lessons covering everything you need to know
Introduction
Introduction
Course Structure
Learn how the course is organized and make the most of the content.
Introduction
What you will learn
The course objective, the elements of test design covered, and who this course is for.
Main
Lesson
Lesson 1Describing suites, sub-suites, and test cases
Write clear, specific, behavior-focused descriptions that double as living documentation.
Lesson
Lesson 2Test levels
Understand the test pyramid and balance component and end-to-end tests.
Lesson
Lesson 3Abstractions
Name variables, functions, and custom commands well, and prefer deep modules over shallow ones.
Lesson
Lesson 4Assertions
Write specific, behavior-focused, and robust assertions, and avoid common pitfalls.
Lesson
Lesson 5Independence
Keep tests runnable on their own and in any order by setting up state in beforeEach.
Lesson
Lesson 6Infrastructure and environments
Flexible configs, environment variables, ephemeral environments, scripts, and CI/CD.
Lesson
Lesson 7Tools
Choose tools by learning curve, language fit, documentation, community, and testing needs.
Lesson
Lesson 8Accessibility
Why accessibility matters and how to integrate a11y checks with axe-core and cypress-axe.
Lesson
Lesson 9Testability
Make applications easier to test with test ids, APIs, a11y attributes, metadata, and more.
Lesson
Lesson 10Security
Protect sensitive data in tests with .gitignore, env vars, log redaction, and use Dependabot.
Lesson
Lesson 11Test size
Balance speed and coverage across unit, component, and end-to-end tests.
Lesson
Lesson 12Conventions
Adopt conventions for files, programming languages, tools, and teams.
Lesson
Lesson 13The AAA pattern (Arrange, Act, Assert)
Structure tests into Arrange, Act, and Assert across unit, component, API, GUI, and a11y examples.
Lesson
Lesson 14Performance optimizations
Speed up feedback with parallelization, prioritization, impact-based selection, and caching.
Lesson
Lesson 15Test stability and reliability
Build a trustworthy suite with deterministic behavior, controlled data, and no flakiness.
Bonus & Conclusion
Bonus
Build your own test design skill for AI agents
Turn the elements of test design into a reusable skill so LLM agents write robust, reliable, and fast tests.
Bonus
Content from Talking About Testing
Explore additional testing content from Talking About Testing.
Conclusion
Congratulations!
You've completed the Elements of Automated Test Design course!