Course Duration: 4 Days

Course Category: Agile Methods


28 PDUs (Professional Development Units)

Introduction to Test Driven Development (TDD) with Unit Testing


Course Objectives The primary focus of this workshop is to coach participants to apply unit testing with frameworks collectively known as unit testing frameworks and to adopt test-first method of coding. Participants will learn practices to write reliable code using TDD. 'Unit testing framework' refers to any of popular unit testing frameworks with architecture similar to Junit for Java and Nunit/Xunit/MSTest for .Net. Similarities between such unit testing frameworks is explained.
The workshop includes many demonstrations. The demonstrations will be beneficial for programmers well-versed in any object oriented languages like C#, Java, VB.Net, python etc.
Participants will work on hands-on exercises with their choice of unit testing framework. Program includes topics like OO design principles, Refactoring, Patterns, Role of TDD in Agile Development and Continuous integration. The course also introduces concept of Behaviour Driven Development (BDD) and Acceptance Test Driven Development (ATDD)..


Prerequisites Participants must be software developers who aspire to use TDD to write better code with C#, Java, VB.Net or other object oriented programming language. Participants must have knowledge of tools and programming in OO language of their choice to participate in hands-on. Content is appropriate for intermediate level participants.




Laptop Requirement:

Participants are expected to bring laptops to the class for the following:

  • To run demos with Visual Studio 2015, Visual Studio 2015, Microsoft.Net 4+, Sql Server Express 2014.
  • To perform hands-on exercises with their choice of IDE and tools, e.g. Eclipse for Java or Visual Studio for C# etc.
  • To download and install frameworks





  • TDD Introduction



    • Types of Testing
    • Developer Vs. Tester
    • Traditional Coding
    • Red/Green Coding
    • Why TDD?
    • Role of TDD in agile SDLC
    • Reducing Technical Debt
    • Practicing Emergent Design
    • Making Changes More Safe
    • Regression Testing


  • Unit Testing



    • Manual Unit Testing
    • Goals of unit testing
    • Architecture of Unit Testing Framework(s) -JUnit, NUnit
    • Basic syntax of NUnit and JUnit
    • More advanced syntax
    • Naming Conventions
    • AAA Technique
    • Commonality of test code
    • Collections, Files and Database
    • Exception handling
    • Testing non-public elements
    • Triangulation
    • Boundaries
    • Mock Objects
    • Manual Mocks
    • Auto Mocks
    • Stubs
    • Self-Shunting


  • BDD and ATDD



    • Extension of TDD
    • Stories, Scenarios and Steps
    • Benefits
    • Gherkin
    • Frameworks and Usage
    • Key Ideas
    • Continuous Integration
    • Code Smells
    • Key Refactorings
    • Legacy Code
    • Advanced OO principles



      • SOLID, OCP, SRP, DIP, IOC, Encapsulation, SI etc
    • Introduction to GoF Patterns
    • TDD Patterns
    • Anti-Patterns
    • Code Coverage
    • Testability of Code


Leave a Reply

Your email address will not be published. Required fields are marked *

PMI, PMP, PMBOK, CAPM, PMI-ACP and the Registered Education Provider logo are registered marks of the Project Management Institute, Inc.
CMMI®, Capability Maturity Model®, Capability Maturity Modeling®, CMM®, PCMM® and Carnegie Mellon® are registered in the US Patent and Trademark Office by Carnegie Mellon University.
ISTQB® is a Registered Trade Mark of the International Software Testing Qualifications Board.
IIBA®, BABOK® and Business Analysis Body of Knowledge® are registered trademarks owned by International Institute of Business Analysis. CBAP® and CCBA® are registered certification marks owned by International Institute of Business Analysis. Certified Business Analysis Professional, Certification of Competency in Business Analysis, Endorsed Education Provider, EEP and the EEP logo are trademarks owned by International Institute of Business Analysis.
The APMG-International Agile Project Management, AgilePM and Swirl Device logos are trademarks of The APM Group Limited.
PRINCE2®, ITIL®, IT Infrastructure Library®, and MSP® are registered trademarks of AXELOS Limited. The Swirl logo™ is a trade mark of AXELOS Limited.
The ITIL Licensed Affiliate logo is a trademark of AXELOS Limited.
SCRUM Alliance REP SM is a service mark of Scrum Alliance, Inc.