At a glance
2 days
NZD $1750 + GST
AUD $1650 inc GST
including in-house delivery.
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.


