Effective Testing for Java developers

The Test-Driven Development training course delivers a hands-on view into how TDD can be used by developers, project managers, and the quality assurance teams to create higher quality software.Ensuring every student has the same understanding of standard software testing procedures. The TDD training course begins with an examination of common test terminologies, practices, benefits and pitfalls. The course then moves into a discussion on the theory and practice of Test-driven development in Java, the applicability of TDD in modern software development paradigms, and how it can be leveraged within different software engineering processes.Students Will Learn:

  • Unit Testing Using JUnit
  • Regression and Acceptance Testing
  • Testing and  Behavior Driven Development (BDD)
  • Mocks, Fakes, and Stubs
  • Database Issues in TDD
  • Continuous Integration Servers
  • Automated Testing
  • TDD Patterns and Anti-Patterns


Why Test?

  • Agile Development Concepts
  • Fewer Bugs, Less Stress
  • Smoother Production Rollouts
  • Write with Tests, as Fast or Faster
  • Make Changes More Safely
  • “Don’t Break the System”

Mocks, Stubs

  • TDD Development Patterns
  • Mock Objects
  • Stubs

System, Regression and Acceptance Testing

  • Statistical Sampling
  • Usability Testing
  • Test Protocols
  • Regression Testing
  • Acceptance Testing

Continuous Integration Servers/Automated Testing

  • Early Warning of Conflicts
  • Metrics and Tools
  • Checking into Repository
    • CVS
    • Subversion
  • Continuous Integration Servers
    • Cruise Control
    • Jenkins
  • Automate the Build/Deployment

 Unit Testing

  • JUnit
  • 3.x vs 4.0 JUnit Testing
  • Start off Simple and Add More Tests
  • Making Tests Easy to Run
  • Red, Green, Refactor
  • Assertion Methods
  • JUnit Cleanup Methods
  • Boundary Testing

Web Interface (UI) Testing

  • Testing Web Interfaces
  • Selenium and Selenium IDE
  • Testing with Ajax/Web 2.0
  • Automating UI Tests with JUnit
  • Testing on Different Browsers

Database Unit Testing

  • Database Mocks
  • Writing Database Tests
  • Setting Up Database Tests
  • Tearing Down Database Tests
  • Black Box Tests
  • White Box Testing
  • Database Sandboxes for Testing
  • JPA/Hibernate Testing Issues

Patterns and Anti-Patterns in TDD

  • Factory Methods
  • Web GUI Testing
  • Coding to Interface References
  • Checking Parameters for Validity Test
  • Open/Closed Principle, Open to Extension, Closed to Change
  • Break Out Method/Object
  • Extract and Override Call
  • Extract and Override Factory Method

 Principles of Behavior Driven Development (BDD) and Agile Requirements

  • Behavior-Driven Development and related techniques.
  • Techniques for Acceptance Test Driven Development,
  • Executable Specifications and Feature Injection
  • Use JBehave to script and run acceptance tests

 Introduction to Refactoring

  • When to Refactor Existing Code
  • Big Refactoring vs. Small Refactoring
  • Teasing Apart Inheritance
  • Looking for Code Smells
  • Improving Methods to be More Flexible


This course is in advanced series and designed for senior developers, Q/A teams, software & system architects, project managers involved with the development of Java™ applications.


2 days


Instructor Lead .


A fundamental knowledge of Java is a prerequisite for this course.