Skip to main content
SQE Training logo
  • Join Our Mailing List
  • Email Us
  • 888.268.8770
  • About Us
  • By Topic
    • Agile Software Development
    • Configuration Management
    • Software Security
    • Software Requirements
    • Software Testing
    • Visual Studio
  • By Location
    • All
    • West
    • Midwest
    • Southeast
    • Northeast
    • Canada
  • Delivery Options
    • Public
    • Live Virtual
    • eLearning
    • On-Site
  • Certification
    • ISTQB Software Tester Certification
    • Agile Development Certification
    • PMI PDUs
    • IIBA CDUs
  • Consulting Services
    • Agile Development
      • Agile Process Improvement
      • Agile Software Development
      • Continuous Integration
      • Program & Project Management
      • Requirements Envisioning
    • Application Security
      • Application Security Assessments
      • Application Security Remediation
      • Application Security Training
      • Secure SDLC Improvement
    • Software Quality
      • Agile Software Testing
      • Independent Verification & Validation
      • QA Center of Excellence
      • Test Automation
      • Test Process Improvement
    • Our Consultants
  • Meet the Experts
  • Learners
  • Team Managers
  • Training Managers
Send by emailPrint This Page

Essential Test-Driven Development

A Revolutionary Approach to Software Design and Programming
On-site: Contact us!
  • On-Site
  • Description/Outline
  • Location & Dates
  • Instructors
  • Learn the history and value of Test-Driven Development
  • Explore the five practices that comprise TDD
  • Understand the test-first mindset and use it as Just-in-Time problem analysis
  • Learn refactoring as Just-in-Time design
  • Practice adding tests to legacy code
  • Learn about emergent design and simple design
  • Use mock objects to decouple difficult dependencies

Essential Test-Driven Development is a 3-day course for developers, providing hands-on experience with the techniques of Test-Driven Development (TDD). This course is designed for experienced developers who are comfortable with their programming language and the basics of object-oriented design. Attendees learn the techniques of test-first, refactoring, mock objects, and others. They learn how these techniques provide and maintain a very low defect-count, plus why TDD helps developers work fearlessly, swiftly, and comfortably on new features and bug-fixes. Attendees will also learn how to work on legacy code:  building test-coverage for critical areas, and protecting areas of the legacy system that do not yet require any alteration.

This set of practices for developers is at the heart of low-defect agile software development. These techniques allow incremental development and Emergent Design to flourish, without degrading quality. This course also contains a significant section on the not-so-pleasant task of adding unit tests to legacy code. The course is currently offered in Java, C#, VB.net, or C++.

Who Should Attend/Prerequisites
This is an intermediate to experienced level course intended for software developers. Attendees should have competence with either the Java, VB.net, C++, or C# programming languages, a familiarity with basic object-oriented principles of design and a basic familiarity with an agile process such as Scrum or XP.
 
This course involves hands-on programming. Please bring a laptop with your IDE loaded. If you have any difficulty bringing a laptop, please let us know immediately.

3-Day Course Outline
 
Introductions and Logistics
 
High-Level Overview, Basics, and Getting Started

Basic syntax for the xUnit family of unit-testing frameworks
Group TDD exercise/lab
Review the basic steps
Parsing "unit test"
The big picture exercise
Discipline: A user-friendly definition

Refactoring
Refactoring exercise
Tested-trek exercise

Refactoring and Design
The developers "Oath of Athens"
Brief review of "simple design" rules, emergent design and others

Refactoring to OCP
Map of Mars: Demonstrating the Open-Closed Principle (OCP), refactoring, and emergent design
Exercise

Test-First
Just-in-Time problem analysis
The computer-science perspective
Password checker exercise
The broken set exercise

Mock Objects
Mock historian exercise
Painful dependencies
Two simple approaches to building mocks
The LunEx exercise

Legacy Code
Definitions of "legacy"
What code to deal with today
The testing/refactoring, chicken/egg problem
The Mess-Trek exercise

Putting it All Together

Immersion
The battleship game exercise

Other Topics (Time Permitting)
TDD and agile
ATDD overview

Course Retrospective

Class Daily Schedule
Sign-In/Registration 7:30–8:30am
Morning Session 8:30am–12:00pm
Lunch 12:00–1:00pm
Afternoon Session 1:00–5:00pm
Times represent the typical daily schedule. Please confirm your schedule at registration.
 
Training Course Fee Includes
• Tuition
• Course notebook
• Continental breakfasts and refreshment breaks
• Lunches
• Letter of completion

 

Course Name Dates Location
Essential Test-Driven Development Call to schedule Your location Contact

Rob Myers is founder of Agile Institute (www.agileinstitute.com) and a founding member of the Agile Cooperative (www.AgileCooperative.com). He has 25 years of professional experience on software development teams, and has consulted for leading companies in aerospace, government, medical, software, and financial sectors. He has been training and coaching organizations in Scrum and Extreme Programming (XP) management and development practices since 1999.  Courses include Essential Test-Driven Development and Essential Agile Principles and Practices. Every course is a blend of enjoyable, interactive, hands-on labs; plus practical dialog towards preserving sanity in the workplace. Rob also performs short- and long-term coaching to encourage, solidify, and improve the team's agile practices.

  • Agile Software Development
  • Software Testing
  • TDD

  • SQE.com
  • Privacy Policy
  • About SQE

Copyright © 2011-2012 Software Quality Engineering, All rights reserved.