What you will Learn

Working within in a dynamic, learning environment, guided by our expert Agile TDD team, attendees will:

  • Be introduced to the concept of development agility and the Agile Manifesto
  • Review each of the major agile development methods underscoring their strengths and weaknesses
  • Understand how to manage an agile environment even within a structured organizational approach
  • Learn how to introduce agility into a development organization
  • Examine what unit testing is and how various xUnit frameworks facilitate unit testing
  • Review the xUnit family of unit testing tools
  • Understand the concepts of and motivations for Test-Driven Development
  • Relate unit testing, test driven development, and test coverage to agile processes
  • Understand the importance of refactoring in supporting agile and test driven processes
  • Understand what Continuous Integration is and what the components of CI are
  • Examine the motivations for CI
  • Review best practices for everything from CI to testing within the context of agile development

Throughout the course, students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive lab exercises and review.

If your team requires more advanced materials or custom topics, this course may be easily adjusted to accommodate.  We offer many additional Agile, TDD and software engineering courses which may be blended with this course for a track that best suits your development objectives.

Prerequisites

This is a beginner- level course, designed for test professionals, test managers, project leaders, quality analysts, and developers. No specific prerequisites are assumed.  Knowledge of current development processes, such as structured top-down development and the waterfall method is beneficial.

Audience

Test professionals, test managers, project leaders, quality analysts and developers

Duration

2 day

Outline for Implementing Agile Test Driven Development for Non-Developers Training

1. Agile Rationale and Concepts

  • Reducing Risk Through Agility
  • The Discipline of Timeboxing
  • Incremental Delivery and Evaluation
  • Agile Method: Scrum
  • Agile Method: XP
  • Pair Programming

2. The Agile Approach

  • Agile Software Development Manifesto
  • The Agile Principles
  • Identifying Features
  • Managing Features
  • Communication Dynamics

3. Agile Iterative Development

  • Iterative Approaches
  • Phased Iterative Development
  • Iterating
  • Feasibility & Planning
  • Development
  • Adaptation & Deployment

4. Prioritizing and Planning

  • Features and Backlogs
  • FDD Process
  • Prioritizing Features
  • Release Planning
  • Assigning Features to Iterations

5. Building

  • Typical Continuous Integration Process
  • CI Server
  • Automate Source Code Management
  • Automate Build Process
  • Automate Testing
  • Automate Deployment    
  • Session: Unit Testing

6. Unit Testing Overview

  • Purpose of Unit Testing
  • Good Unit Tests
  • Test Stages
  • Unit Testing Vs Integration Testing

7. Unit Testing Tools    

  • Understanding Unit Testing Frameworks
  • JUnit Overview
  • Test Case using JUnit
  • Failures vs. Errors

8. Unit Testing Best Practices

  • "Good" Tests
  • Bad Smells
  • White-Box Unit Testing
  • Black-Box Unit Testing
  • Automation and Coverage

9. Transitioning to Agility

  • Agility: Some Process, Some Mindset
  • Characteristics that Enable Agility
  • Characteristics that Inhibit Agility
  • Risks Associated with Migrating    
  • Smoothing the Transition

10. The Bottom Line

  • Agile Migration Patterns
  • Extending the Migration
  • Coding Practices
  • Source Control
  • Pair Programming and Code Reviews
  • Continuous Integration
  • Legacy Code