Skip to content

Latest commit

 

History

History
146 lines (112 loc) · 8.36 KB

automated-testing.md

File metadata and controls

146 lines (112 loc) · 8.36 KB

Automated Testing

Hard

With this module, you'll learn how to use automated testing strategies to prove the structural integrity of the code you write.

Red and green lights

Topics

Requirements Gathering

With this topic, you'll learn how to gather requirements for features, bugs, and other tasks so that you know what to build.

Learning Outcomes

  • 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

Resources

Exercises


Testing Strategies

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.

Learning Outcomes

  • 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

Resources

Exercises


Test Patterns

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.

Learning Outcomes

  • 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

Resources

Exercises


Test Doubles

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.

Learning Outcomes

  • 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

Resources

Exercises


Test Smells and Flakiness

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.

Learning Outcomes

  • 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

Resources

Exercises