At a glance

Duration:
2 days
Cost:
NZD $1750 + GST
AUD $1650 inc GST
Contact us for any enquiries
including in-house delivery.
Agile

Agile Programming with TDD

The fundamental skills of software development are necessary to successfully deliver working software on any project.  Agile projects bring a new way of working for developers.  In particular, test-driven development (TDD) is a way of programming that yields better quality code, leading to systems that better meet the users' requirements and are easy to modify as the requirements change.

Adopting TDD requires an approach to programming that is significantly different from that traditionally employed.  This course provides programmers with the tools, skills and experience to be successful in this environment.

This course is part of the Agile Academy curriculum. Software Education is proud to be a founding partner of the Agile Academy.

Intended For

  • Developers becoming involved in Agile projects.
  • Agile developers wanting to round their knowledge of TDD and common development practices on Agile projects.

Prerequisites

This is not an introductory programming course.  Participants will need to be familiar with either the .NET or Java languages.  In addition, it is assumed participants will have a basic understanding of Agile terminology and techniques. For an introduction to Agile practices see our Taste of Agile course.

Learning Outcomes

By the end of the course participants will:

  • Be able to explain and apply refactoring to development
  • Have practiced test-driven development approaches
  • Understand and be able to participate in continuous integration

Content

Unit Testing

What is (and what is not) a unit test and how to implement unit tests using JUnit/NUnit.

Mocking and Dependency Injection

What are mock objects and why are they needed.  Using Inversion of Control containers to enable configuration and mocking by managing dependency injection.

Refactoring

A formal approach to removing technical debt by improving the design of existing code without changing its outward behaviour.

Test-Driven Development

Why and how to apply TDD.  Different approaches used within TDD.

Automatic Build and Test

Automating the build and test process with Ant/NAnt.

Acceptance Testing

Using FitNesse to give acceptance testers the ability to write their own automated tests.

Continuous Integration

What is version control and continuous integration and why are they needed.  Uses Subversion and Jenkins.

Method Used

During this two day course, participants will delve into the development techniques embodied in Agile methods.  Lecturing is kept to the minimum necessary and exercises are used to reinforce and cement the learning experience.  Participants will work in pairs using Java with Eclipse or C# with Visual Studio.

Software Education Associates Limited
Freecall: 0800 268 773
Software Education Australia Pty Ltd
Freecall: 1800 145 152
Proud to support World Vision