Test-Driven Development (TDD)

Read more about CodemanshipIn co-operation with Codemanship Ltd, we are proud to present this training performed as a hands-on workshop. It covers the key elements of Test-Driven Development (TDD), a vitally important development discipline, with maximum opportunity for practice.

As an attendee You will learn about the TDD process, about good habits that make TDD more effective and sustainable, and how to refactor code to eliminate quality issues that will make continued development easier.

You will work on your own computer using your own development tools, and gain practical experience of the TDD discipline in a programming environment you know. Preferably, You work in pair with another participant.

The exercises are designed to be just challenging enough to stretch You, without being too difficult to complete within the training. You can tackle them in any object oriented programming language.

You can chose to attend two days or add-on a third day to get even more extensive training.

Day #1


Why Do TDD?

  • Building the right thing
  • Keeping the design simple
  • Making code easy to change
  • Software that always works
  • Sustaining the pace
  • Reliability vs. Productivity


Introduction to TDD

  • Red-Green-Refactor
  • The Golden Rule


Working Backwards from Assertions

Testing Your Tests

  • Fluent Assertions


One Reason To Fail

Writing Self-Explanatory Tests

  • Choosing good test names
  • Naming test data
  • From examples to rules


Speaking The Customer's Language

  • Requirements word clouds
  • Conceptual correlation


Triangulating Designs

  • Triangulation patterns
  • Obvious implementation & TDD “gears”


Refactoring

  • Code smells
  • Design clues in code duplication
  • The refactoring discipline


Design Principles

  • Simple design
    • Make it work
    • Make it readable
    • D.R.Y.
    • Simple parts
  • Tell, don’t ask
    • Feature envy
  • S.O.L.I.D.


Day #2


Test Doubles

  • Stubs
  • Mocks
  • Dummies
  • Dependency inversion
  • Dependency injection


TDD with External Dependencies

TDD with the Customer

  • Specification By Example
  • ATDD & BDD
  • User Stories
  • Test completeness & test scope
  • Tests we didn’t think of
  • Definitions of “done”
  • Vertical slicing
  • Executable specifications


Driving Design from Customer Tests

  • Starting with a failing customer test
  • Outside-in TDD
  • Identifying the work
  • Identifying the data
  • Assigning object responsibilities
  • “Wiring” objects together with collaborations
  • Classic TDD vs “London” School


Day #3


The Testing Pyramid

  • System tests
  • Integration tests
  • Unit tests
  • Optimising test execution


TDD & Continuous Delivery

  • Continuous Integration
  • The check-in “dance”
  • Trunk-based development
    • Feature toggles vs Feature branches


TDD & Legacy Code

  • What makes code “legacy”
  • Change points
  • Inflection points
  • Breaking dependancies
  • The Boy Scout rule


Mastering TDD

  • Why some teams fail at TDD
  • Building habits
  • Under the radar
  • Under-promising & over delivering
  • TDD adoption timescales


Beyond TDD

  • Data-driven & property-based tests
  • “Load-bearing” code
  • Mutation testing
  • Test-driving the “untestable”
  • Non-functional TDD
  • Clean Code & Continuous Inspection


FACTS

You can choose between taking the two first days or the complete three day training.

Length: 2 days
Price: 18 000 SEK (excl. VAT)
Length: 3 days
Price: 24 000 SEK (excl. VAT)

OCCASSIONS

Date: June 11-13,  2019
Time: 09.00-17.00
Location: Softhouse, Campus Gräsvik, Karlskrona
Language: english

IMPORTANT NOTICE
  • You can work with the OO language of your choice during the training.
  • You need to bring your own laptop with the appropriate IDE for your chosen OO language.
  • You also need a unit testing tool and a mock object framework, and be familiar with their basic use.
  • Please be advised, we do not provide training in the use of specific unit testing or mock object frameworks.

INSTRUCTOR

Profile Photo

Jason Gorman

Ask me about the training

training@codemanship.com

www.codemanship.co.uk

TRAINING ADMINISTRATOR

Profile Photo

Hannah Cole Tugendraich

Ask me about practicalities

hannah.cole.tugendraich@softhouse.se

+46 (0)761 832 464