Test-Driven Development _TDD_ by akgame


									  Test-Driven Development (TDD)

Duration: 2 days


Test-driven development or TDD is a software development method in which the writing of
automated tests controls the writing of the source code.

The cycle recommended by TDD includes five steps:
    1.   Write a test.
    2.   Check to see if the test fails.
    3.   Write the minimum amount of code necessary for the test to pass.
    4.   Check to see that the test passes.
    5.   Refactor the code.

TDD is a very effective technique for delivering well-constructed software with a non-regression test
suite. Practicing TDD is at the root of Agile software development processes that emphasize rapid and
frequent delivery of functional software components. Automated unit tests written in TDD and
automated acceptance tests that were written first are unavoidable practices that a good Agile
software development team must master.


The key objective of this workshop is to master through practice the test-driven development
technique. The workshop combines theory, practice, and the experience of an expert trainer who
actively participates to the implementation of Agile engineering processes and practices within various
development teams.

Once the general concepts of test strategies have been presented, participants will first of all discover
code refactoring and the writing of automated unit tests. They will understand the benefits associated
with TDD and how to use TDD as a design method. The hands-on exercises will illustrate that TDD is
mainly designed to specify a desired behaviour and not to write tests. The course will also address the
other types of tests recommended by Agile approaches. We will also discuss the implementation of
test strategies as well as advanced concepts such as Mock Objects.
  Test-Driven Development (TDD)

Target audience

This workshop is intended for development teams that wish to discover test-driven development
through practice. The workshops are offered in C#, in Java, or in Ruby.


      The different types of tests:
         Unit tests
         Integration tests
         Functional tests
         Acceptance tests
      Code refactoring:
         Basic principles and motivations
         When refactoring should be done
         How refactoring is done
         Code smells
         Most prevalent refactoring
         Implementation
      TDD principles and good practices:
         TDD principles
         Goals and benefits
         Creating tests before programming
         Emergence of design based on tests
      Practicing TDD:
       TDD practice workshops
       Findings and discussions
       Guidelines for object-oriented design
      Advanced techniques:
         Mocks, Stubs, Fakes and Dummies

To top