Test Driven Development (Tdd) Training

Program Overview

This program introduces Unit Testing, Test Driven Development, Refactoring, Emergent Design, Agile Architecture, Collaboration, and refactoring techniques to the audience and follows a life cycle approach where participants get to learn how to practice these in real life projects. Participants learn to implement TDD on a project developing in either java, .net or ruby or C++ framework. Workshop also covers how to effectively work on legacy code and break dependencies. Expected business outcome is readable, maintainable code going forward as well reduction is defects.

Learning Objective

  • Introduction to Unit test, unit test characteristics
  • Test Driven Development – why, what and how
  • TDD Cycle – Red, Green and Refactor
  • Drive the development (design and implementation) of a User Story
  • Learn concept of Emergent Design and why emergent design
  • How TDD helps you design software
  • Why testing first is better than testing after
  • Overview of Refactoring, Clean Code principle and Refactoring to Patterns
  • Software design – going deeper in SOLID design Principles
  • How to use mocking frameworks
  • Behavior Driven Development using SpecFlow/Cucumber
  • Specification by Examples using Gherkin language
  • Writing Scenarios and Scenario Outlines
  • Preparing Steps using xUnit framework
  • Difference between TDD and BDD
  • How to setup BDD practices within Scrum team

Learning Activities

Hands-on activities (60-70%) and discussion on mentioned topics (30-40%). Hands-on activities include writing unit test, code, writing examples and some group creativity activities.

Target Audience

Development team members including developers, testers, architects, leads and scrum masters.

Prerequisites

Laptops/Desktops with required software and internet connection. Software will be provided by facilitator.

Tools

Java/.Net, Cucumber/SpecFlow, Selenium, Jenkins, GIT, Junit/Nunit

Day-wise course break-up

Course will progress like below but ordering may change based on participant’s feedback during workshop.

Day 1: Acceptance Test Driven Development (ATDD) and BDD

Specification by Examples Workshop

  • Challenges in Collaboration between Business and Development Team
  • How to write better Specification
  • Why Examples needed for specification
  • Writing Examples in Gherkin

ATDD and BDD workshop

  • Principles of Acceptance Test Driven Development
  • Consequences of ATDD on the Sprint Planning and Sprint Review
  • Principles of Behavior Driven Development
  • Practicing BDD with Cucumber/Specflow – Writing features, testing and reporting
  • Role of Product Owner and crew when writing scenarios acceptance

Day 2: Agile Requirements and Acceptance Test Driven Development

Unit Testing

  • What is unit testing
  • Why unit testing is needed
  • Difference between Unit Testing and Integration Testing
  • Developer and Tester role in Unit Testing

Test Driven Development workshop

  • Deion of the TDD approach and its benefits
  • Improving the quality and design of the code by testing?
  • Different types of tests: unit, integration, functional
  • Understand the life cycle of a test in the xUnit framework
  • Respect of the principle of isolation and control of test results

Day 3: Mocking, Continuous Integration and Agile Testing

Refactoring

  • Consequence of technical debt and risk of “breaking” the code
  • Where? When? How refactoring?
  • Support of TDD and ATDD during refactoring
  • Best practices and limitations
  • Definition and principles of frameworks
  • Emergent Design
  • Principle of scalability and implementation
  • Design Patterns and Principles
  • Understanding about SOLID design Principles

Test Double and Mocking

  • What is Test Double and when to use it
  • What is Mocking
  • Mocking framework in practice
  • Refactoring patterns
  • Working effectively with legacy come

Classes Schedule

 Coming Soon

For more info Please send us a mail to connect@agilemania.com