Skip to content

Testing as a Driver for Software Development

TDD

  • Test-Driven, test-first design
  • Tests must fail first, then pass
  • Rapid feedback during the development process
  • Enables developers to more aggressively refactor internal APIs

ATDD

  • Takes TDD further by deriving tests from acceptance criteria as part of the system design process.
  • These criteria define what the system is supposed to do, and tests are written before the relevant part of the app is developed.

BDD

  • Refinement of TDD that focuses on the desired behavior of an application.
  • Bridges users, testers, and developers.
  • Test cases are written in a simple form of natural language, so stakeholders can understand what’s being tested, even if they don’t understand how it’s being tested.