With this module, you'll learn how to use automated testing strategies to prove the structural integrity of the code you write.
With this topic, you'll learn how to gather requirements for features, bugs, and other tasks so that you know what to build.
- Describe the concept of a user story
- Describe the concept of acceptance criteria
- Compare manual and automated testing methods
- List the team perspectives that should be considered in task requirements
- Theorize how you might validate and simplify requirements given to you
- Acceptance Criteria for User Stories: Purposes, Formats, Examples, and Best Practices
Article
- Definition of Done: What Product Managers Need to Know
Article
- Gathering requirements, go away please!
Article
- Introduction on how to write User Stories
Video
- How to know what to test
Article
- User Stories
Article
- What is a User Story?
Article
- What is Acceptance Criteria?
Article
- The Clean Coder
Book ($)
With this topic, you'll learn about test-driven development, the testing pyramid, and how to apply unit, integration, and end-to-end testing when creating software.
- Describe the four common testing strategies and their purpose
- Draw the "testing pyramid" and its components
- Compare automated testing with manual testing and the benefits of automated testing
- Theorize why building products with automated tests is ultimately faster
- Describe the red, green, refactor cycle
- Compare the red, green, refactor cycle to retroactive testing
- Create unit tests using the red, green, refactor cycle
- Create integration tests using the red, green, refactor cycle
- Create end-to-end tests using the red, green, refactor cycle
- Another Testing Pyramid
Resource
- Confidently Shipping Code
Article
- Fundamentals of TDD
Video Series
- Integrated Tests Are A Scam
Video
- Red, Green, Refactor
Article
- Software Testing Explained in 100 Seconds
Video
- TDD
Resource
- Testing Library
Tool
- The Practical Test Pyramid
Article
- The Testing Trophy
Article
- Why Write the Minimum Code to Pass the Test?
Article
- Write tests. Not too many. Mostly integration.
Article
Video
- expect(umbrellaOpens).toBe(true)
Thread
- Test-Driven Development
Video
- Clean Coders: TDD
Video ($)
- Test Driven Development
Book ($)
- Testing JavaScript
Course ($)
With this topic, you'll learn about common test patterns such as the four-phase test, inside-out testing, and other practical techniques to make writing automated tests more efficient and enjoyable.
- Describe the four phases of a test and their purpose
- Create unit tests using the four-phase approach
- Explain why the four-phase test pattern is important and how you'd apply it
- List common test patterns
- Describe common test fixture patterns and their use cases
- Describe the inside-out and outside-in test patterns and their purpose
- Explain a scenario where you would use the inside-out test pattern
- Explain a scenario where you would use the outside-in test pattern
- Create a component using the inside-out test pattern
- Create a component using the outside-in test pattern
- Arrange, Act, Assert
Resource
- Four-phase test
Article
- From the Inside Out or the Outside In?
Article
- How to stop hating your tests.
Video
- xUnit Patterns Website
Resource
- xUnit Patterns
Book ($)
With this topic, you'll learn about test doubles (stubs, spies, and mocks), how they can be used in your project, and when to use them in your tests.
- List the types of test doubles
- Explain the role of each test double type
- Explain why you might need a test double when creating automated tests
- Mocks Aren't Stubs
Article
- But really, what is a JavaScript mock?
Article
- C++ testing with mocks is EASY and awesome!
Video
- JavaScript testing: Jest mocks
Video
- Test Double xUnit Patterns
Resource
- Test Doubles
Resource
- What is Mocking?
Thread
With this topic, you'll learn about common anti-patterns when writing automated tests and some techniques to help your test suite run soundly every time.
- List common test smells
- Describe the concept of test flakiness
- Explain some approaches to fixing test flakiness and improving reliability
- Explain why it is important to be confident in your test suite