John is an experienced consultant specialising in Enterprise Java, Web Development, and Open Source technologies, currently based in Sydney, Australia. Well known in the Java community for his many published articles, and as author of Java Power Tools and Jenkins: The Definitive Guide, and founder of the open source Thucydides Automated Acceptance Test Library project, John helps organisations to optimize their Java development processes and infrastructures and provides training and mentoring in agile development, automated testing practices, continuous integration and delivery, and open source technologies in general. John is the CEO of Wakaleo Consulting, and runs several Training Courses on open source Java development tools and best practices. John is a DZone MVB and is not an employee of DZone and has posted 125 posts at DZone. You can read more from them at their website. View Full User Profile

ATDD, TDD and BDD practices for Java Developers: a brand new training course

09.06.2012
| 1584 views |
  • submit to reddit

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.

  • Collaboration

    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:

LocationDatePrice
CanberraOctober 23-26 2012$3200 AUD + GST
SydneyNovember 6-9 2012$3200 AUD + GST
WellingtonDecember 3-6 2012$3200 NZD

Please Contact us for more details.

0
Published at DZone with permission of John Ferguson Smart, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)