ATDD, TDD and BDD practices for Java Developers: a brand new training course
A recent study found that projects applying techniques such as Acceptance Test Driven Development and Test Driven Development deliverd 31% faster with 4 times less defects. Acceptance Test Driven Development (ATDD) is more than just a way to write automated acceptance tests: it is also a powerful communication tool that can help teams understand what needs to be build in business terms, which in turn reduces waste and improves the business value of the delivered product. And, while it will not write the application for you, Test Driven Development is still by far the single most effective way to help write high quality, highly maintainable and relatively bug-free code. The study also emphasised the importance of fostering inhouse skills in these areas.
Wakaleo Consulting has always been a leader in the area of TDD and BDD training and mentoring. And in the coming months, we will be launching an exciting new training course focused on the latest in ATDD, BDD and TDD skills and practices for Java developers.
The course is first and foremost aimed at aquiring hands-on experience with ATDD, BDD, TDD and other core agile development practices. During the course, students will build a small application from the ground up using ATDD and TDD practices and getting exposure to innovative tools such as Spock, JBehave and Thucydides.
The course is made up of two modules:
- Fundamental ATDD, TDD and BDD practices for Java Developers (3 days)
- Advanced ATDD and automated acceptance testing practices for Java Developers (1 day)
Fundamental ATDD, TDD and BDD practices for Java Developers
This module covers essential Agile technical practices, with an emphasis on BDD and automated testing practices. The topics covered are outlined here:
- Principles of Behavior Driven Develpment (BDD)
An introduction to the fundamental concepts and motiviations behind Behavior-Driven Development and related techniques.
- Agile Requirements gathering
BDD principles can be applied to requirements gathering and analysis activities. In this module, we learn how techniques such as Acceptance Test Driven Development, Executable Specifications and Feature Injection can significantly improve the quality, reliability and relevance of the application being built, and provide a much better tracability back to, and understanding of, the core business requirements.
In practical terms, we will use high-level BDD tools such as JBehave and Thucycides to build a working set of executable specifications from the ground up.
- Agile Architecture
Architecture is just as important in Agile projects as it is in conventional software projects. In this module we discuss the key principles of Agile architecture and design, including the role of archicture in Agile projects, when, how and by whom architecture is specified, implemented and validated.
- Test Driven Development
Test Driven Development (TDD) is a key Agile development practice, and is arguably the single most effective way to improve code quality and reliability. In this section, we focus on core TDD and BDD pratices at the coding level, and learn how to effectively apply BDD practices in Java both by using advanced JUnit features and with more specific BDD libraries such as Spock. We also cover topics such as good test design and organization and testing databases.
- Refactoring and Clean Coding
Refactoring is an essential part of maintaining high code quality and reducing maintenance costs. And a solid understanding of clean coding principles is vital to writing maintainable and understandable code.
This module explores refactoring principles and patterns, and also discusses effective techniques to help make your code clean, readable and highly maintainable. We also discuss how code quality metrics can be used to help.
- Continuous Integration and Delivery
This module covers how Continuous Integration and Delivery practices can be used to enhance team communication and accellerate feedback.
This module discusses team collaboration and communiation techniques such as Pair Programming and Code Reviews, and the best ways to get the customer involved.
Advanced ATDD and automated acceptance testing practices for Java Developers
This module covers more advanced ATDD and automated acceptance testing techniques, with a strong emphasis on automated web testing using Selenium 2/WebDriver. Topics covered include:
- Principles of automated acceptance testing
- Introduction to Selenium 2/WebDriver
- Identifying Web Elements
- Using Page Objects
- Working with AJAX applications
- Writing automated acceptance tests Thucydides
- Using Thucydides with JUnit
- Using Thucydides with JBehave
- Working with Thucydides Step libraries
- Managing state
- Reporting on requirements and progress with Thucydides
- Using the Thucydides Page Object API
- Data-driven tests
- Integrating with other systems
- Acceptance Testing best practices - writing reproducible tests
This course is delivered both as a public course and in a tailored onsite format. Dates for the first public courses are now available:
|Canberra||October 23-26 2012||$3200 AUD + GST|
|Sydney||November 6-9 2012||$3200 AUD + GST|
|Wellington||December 3-6 2012||$3200 NZD|
Please Contact us for more details.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)