Designing software with TDD and ATDD

The quality of software is closely related to the technique of applied testing


extremeProgramming It is obsessed with feedback, and in software development, good feedback requires good tests.

In test-based development (TDD), you first write an executable test of what the application code should do.Only then is the code written itself and, with the test stimulating and progressing, its design is improved.

With development based on acceptance tests (ATDD), commercial customers, evaluators and developers can collaborate to produce verifiable requirements that help them create higher quality software more quickly.However, many practitioners still misinterpret TDD and ATDD.

· Who is going:

This training is recommended for developers:

  • Developers who wish to improve the design of their applications
  • Developers who want to improve the performance of applications
  • Test areas (QA) who wish to incorporate a serious process
  • All those developers who want to improve the quality of the software
  • Companies and systems of systems that wish to improve the quality and stability of their applications

· Pre-requirements:


  • Management of a text editor
  • Management of an IDE
  • Know an object-oriented programming language
  • Know the management of a dependency manager
  • Has used a previously test framework
  • Learn about agile techniques and methods, their reason and origin

· Training content:

  • Types of automated tests
    • ATDD.
    • TDD.
    • DDT.
    • Pouting
  • Design for testing
  • Test structure
  • Named of tests
  • Principle for “not assuming”
  • Fakes.
    • Stubs, Spies, Mocks
  • Principles of unit tests (FIRST)
    • Fast
    • Isolated
    • repeatable
    • Auto-validable
    • Accuces
  • Aromas in unit tests
  • TDD principles
  • Aromas in the TDD process
  • Pattern of the “Red Bar”
  • Pattern of the “Green Bar”
  • ATDD.
  • Continuous integration
  • Test pyramid