Mastering Unit Testing

9 & 10 Feb 2010

Mastering unit testing is required if you want to do TDD correctly! Learn the essentials of creating quality Unit Tests with this two day course.

You have some experience writing unit tests, but wonder how you could get more out of unit testing. Register for the Mastering Unit Testing training to experience how test driven development can make development faster and more enjoyable. You'll learn how working test-first lets you create better designed code, and understand why unit testing techniques that are 'simple' in theory can be difficult to practice. Past participants have experienced a less defects in production code, as well as higher velocity, which leads to happier clients and more fun in your job!

Description

In this in depth practical course, you will master different unit testing techniques, like mocking and unit testing in legacy code.

The focus of this course is on:

  • improving your unit testing skills

  • getting a better understanding of what a unit test is
  • optimizing test scope and performance

  • learning techniques and guidelines for writing and maintaining unit tests

Benefits

By participating in this masterclass, you will:

  • apply test driven development and mocking techniques to test
    code in isolation
  • apply a number of techniques to break unwanted dependencies
    in code
  • know how to start making changes and adding tests simply and
    responsibly
  • know how to evaluate and improve your unit tests
  • understand the system dynamics of unit testing and design
    debt
  • have fun! - we take pride in creating a fun and effective
    learning environment, mixing presentations with exercises and
    hands-on development.

Intended audience

Software developers, architects, technical team leads, Scrum masters,
and agile coaches who seek to become masters of unit testing, so
that they are able to deliver better code faster.

Prerequisites

  • Knowledge of object oriented concepts
  • Experience in a programming language with Object/Class features, like Java, C# or Ruby
  • Experience working on software development projects
  • Basic knowledge of automated testing

Programme

The course consists of a mix of short presentations, live programming demonstrations, and lots of programming exercises. We will use Java for the examples and the practical exercises.

Course Introduction

Round of introductions; set expectations & collect issues; presentation Why unit testing? to see the short term and long term effects of unit testing from a systemic perspective.

Introduction to Test Driven Development

Experience the basics of test driven development; learn what makes a unit test.

Responsibility Driven Design with Mocking

Learn and experience the use of mocking techniques to write better isolated unit tests and to arrive at a more loosely coupled design; learn about the difference between interaction based testing and state based testing

Mocking Styles

Learn and experience different ways of creating mock objects; learn the difference between mocks, stubs, fakes, and dummies and when to apply them.

Getting Your Tests In: Breaking Dependencies in Code

Learn how to break dependencies in a responsible way; learn a number of refactorings that enable you to add tests to existing code without unit tests

Story Testing with RSpec

Get a fresh perspective on functional/integration/unit testing; RSpec is a behaviour driven development framework that can be used both for writing story tests and writing executable behaviour specifications for objects.

Closing Retrospective

Reflect on the learning experience, focus on bringing lessons learned to daily practice

About the trainers

Willem van den Ende

WillemWillem van den Ende is a Dutch eXtreme Programming pioneer. Since 1999 he guides organisations in the introduction of Agile Software development as an all-hands person: coach, developer and facilitator. Always active in the local and international community, he has served as board member of the Agile Alliance, host of systemsthinking.net and the European AgileOpen conferences. Willem is an appreciated workshop facilitator at practitioners' conferences like  XP(Day), Software Practice Advancement and Agile200*.

Willem's sharp vision, his broad knowledge, and twenty years of experience as programmer and coach enable him to adopt a very flexible and improvising attitude during workshops. He has the ability to let people see things differently.

Marc Evers

Marc Evers Marc works as an independent coach, trainer and consultant in the field of (agile) software development and software processes. Marc develops true learning organizations that focus on continuous reflection and improvement: apply, inspect, adapt.

Marc also organizes workshops and conferences on agile and lean software development, extreme programming, systems thinking, theory of constraints, and effective communication. Marc is co-founder of the Agile Open and XP Days Benelux conferences.

Marc knows how to combine his real-world experience with knowledge that is out there to create novel solutions. He likes to add games to highly-rated workshops, so participants have fun and learn from experience.

Schedule and price

Both days from 9:00 to 17:00. Coffee will be served from 8:30 to 9:00.

Early bird price: €1050 + BTW (Early bird valid until to weeks before course starts)
Normal price: €1200 + BTW

Dates and venues

  • February 9 and 10 - Brussels