D-E505
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

Description

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

Audience

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.

Duration

2 days

Format

Instructor Lead .

Prerequisites

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