Live Webinar - Leveraging Red Hat OpenShift for a Multi-Cloud Strategy

closeClose

Implementing Agile Test-Driven Development for Non-Developers

Course Details
Code: TT3530
Tuition (USD): $1,295.00 • Classroom (2 days)
$1,295.00 • Virtual (2 days)
Course Details
GSA (USD): $1,174.30 • Classroom (2 days)
$1,174.30 • Virtual (2 days)

Implementing Agile Test Driven Development for Non-Developers is a two day, in-depth Agile-testing training course that provides students with a solid introduction to Test Driven Development and “test first” design within the context of Agile processes and practices.

  • Test-Driven Deployment (TDD) is an evolutionary approach to development where you must first write a test that fails before you write new functional code. It is primarily an agile approach to software development and is one of the core principles of Extreme Programming. This in-depth Agile-testing course will provide you with a solid introduction to TDD and "test first" design within the context of Agile processes and practices.

Skills Gained

Working within in a dynamic learning environment 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

Who Can Benefit

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.

Course Details

Session: Agile Development

Agile Rationale and Concepts

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

The Agile Approach

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

Agile Iterative Development

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

Prioritizing and Planning

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

Building

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

Session: Unit Testing

Unit Testing Overview

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

Unit Testing Tools

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

Unit Testing Best Practices

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

Session: Agile Testing Best Practices

Transitioning to Agility

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

The Bottom Line

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