Global Knowledge

1-800-COURSES
Chat Now

Shopping Cart | My Global Knowledge Login | United States United States [change region]

  • Courses
    • Browse Catalog
    • Delivery Methods
    • New Courses
    • Special Offers
    • Guaranteed Dates
    • Search Wizard
  • Certifications
  • Training Solutions
    • Corporate Training
    • Government Training
    • Partner with Us
  • Training Locations
    • Atlanta
    • Chicago
    • Dallas
    • Morristown
    • New York
    • Raleigh
    • San Jose
    • Washington, DC
    • All 150+ Locations
  • Knowledge Center
    • Assessments
    • Case Studies
    • Decision Briefs
    • Demos
    • Events
    • Lab Topologies
    • Mobile Apps
    • Practice Files
    • Special Reports
    • Twitter
    • Videos
    • Webinars
    • White Papers
  • Contact Us
Implementing Agile TestDriven Development for Java Developers

Home > Course Catalog >  Web Design and Programming Training > Implementing Agile Test-Driven Development for Java Developers

Implementing Agile Test-Driven Development for Java Developers (TT3535)

Test-Driven Development (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.

What You'll Learn

  • Concept of development agility and the Agile Manifesto
  • Major agile development methods and their strengths and weaknesses
  • Manage an agile environment within a structured organizational approach
  • Introduce agility into a development organization
  • Examine what unit testing is and how various xUnit frameworks facilitate unit testing
  • xUnit family of unit testing tools
  • Cconcepts of and motivations for TDD
  • Relate unit testing, test-driven development, and test coverage to agile processes
  • Importance of refactoring in supporting agile and test driven processes
  • Work with both refactoring techniques and tools
  • Work with mock objects to understand what problems they solve and how they accomplish that
  • Continuous Integration (CI) and components
  • Examine the motivations for CI
  • Best practices for everything from CI to testing within the context of agile development

Who Needs to Attend

software developers

Prerequisites

  • Working knowledge of Java is required
  • Knowledge of current development processes, such as structured top-down development and the waterfall method is beneficial

Follow-On Courses

  • Advanced Java or JEE/J2EE courses
    • EJB3.0
    • Spring
    • Hibernate
    • Design Patterns
  • Java/JEE security courses
  • Service-oriented analysis and design
  • Web services courses
  • AJAX, XML, or other web development courses
  • Architecture and analysis courses
  • Software engineering, design, or project management tracks

Course Outline

1. Agile Development

  • Agile Software Development
    • Controlling Risk
    • Agile Development
    • Motivation - Risk Reduction
    • Discipline of Timeboxing
    • Incremental Delivery and Evaluation
    • Agile Software Development Manifesto
    • Same Approach with Documentation
    • Change Wins Out Over Following a Set Plan
    • Refactoring is Artifact of Change
    • Rules
    • Extreme Values
    • XP Practices
    • CI
    • Agile Testing
    • Lowest Bar of Unit Testing
    • Agile Testing Stages
    • Test First
    • Acceptance Tests
    • TDD
    • General Agile Principles
    • Adopting or Trying Agile
    • Setting User Expectations

2. Test-Driven Development

  • Unit Testing
    • Purpose of Unit Testing
    • Successful Unit Testing
    • Unit Testing Frameworks
    • XUnit
    • Reasons tUse XUnit
    • How XUnit works
  • ROI of TDD
    • Rationale for TDD
    • Process of TDD
    • Advantages tTDD
    • Side-Effects of TDD
    • Observations About Tests
    • Tools tSupport TDD
    • Automation and Coverage
    • Working with Coverage Analysis
    • Concept of Test "Close" Development

3. Improving Code Quality Through Refactoring

  • Refactoring
    • Refactoring and Testing
    • Suggested Refactoring
    • Impact of Refactoring
  • Advanced Refactoring
    • Design Patterns
    • Refactoring tDesign Patterns
    • Abstract Factory Design Patterns
    • Adapter Design Patterns
    • Strategy Design Patterns

4. Advanced Topics

  • Advanced TDD Topics
    • Mock Objects and EasyMock
    • Decoupling with Mock Objects
    • Mock Object Frameworks
    • EasyMock and JUnit
    • Dependency Injection, Spring, and Testing
    • Dependency Injection and IoC
    • Spring Framework
    • Mock Objects and Spring
    • State-Based vs. Interaction-Based Testing
    • State-Based Testing
    • Interaction-Based Testing
    • Dependencies vs. Mock Objects
    • Interaction-Based Testing
    • JUnit and Ant
    • Running JUnit Tests from Ant
    • Generating a JUnitReport
  • Continuous Integration
    • Typical CI Process
    • Local Development Environment
    • CI Server
    • Potential Benefits of CI
    • CI Best Practices
    • Automate Source Code Management
    • Automate Build Process
    • Automate Testing
    • Automate Deployment
    • Commit Code Early and Often
    • Manage the Build Process
    • Separate Integration Environment
    • Mimic Production Environment
    • Increase Visibility
  • Agile Testing Best Practices
    • Coding Practices
    • State- vs. Interaction-Based Testing
    • Source Control
    • Pair Programming and Code Reviews
    • CI
    • Legacy Code

On-Site

Course Code: 4218

Contact us for pricing

3 Day Course


Payment Options

Alert Me Alert Me

Schedule and Registration

Request a Quote.

Request a date & location.

Resources

PDF of this course

 

Share

Copyright ©2013 Global Knowledge Training LLC  All rights reserved.  1-800-COURSES (1-800-268-7737) Privacy  Legal  Policies  Site Map  Blog RSSRSS