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, the applicability of TDD in modern software development paradigms (like Web 2.0), and how it can be leveraged within different software engineering processes.
Once the foundation has been laid, the Test-driven Development course transitions into a hands-on learning lab, where students learn the processes and practices of test-driven development in the creation of a basic application.
The Test-driven Development can also be delivered as a 3-day workshop, focused on helping apply TDD within your own project.
- Understand software testing concepts: Unit test, regression test, integration test, user acceptance tests, continuous testing, etc.
- Describe the testing process: Defining a test plan, implementing the plan, measuring the success
- Understand and implement the test-driven development process: Define test, implement test, define functionality, implement functionality, test, refactor, repeat
- Set up a test-driven development infrastructure
- Define and execute a test plan using a testing frameworks
- Working with continuous and integration testing tool
- Incorporate TDD into your organization: Advice, tips, tricks, and pitfalls
What You'll Learn
In the Test-driven Development training course, you’ll learn:
- What Is Test-driven Development?
- Why Adopt TDD
- Benefits of TDD
- Impact of Adopting TDD
- How Do I Adopt TDD?
- Infrastructure Changes Required
- Adoption Planning
- Measuring and Monitoring Adoption
- Testing Concepts
- Test Plans, Cases, and Suites
- Unit Testing
- Integration Testing
- Continuous Testing
- Robustness Testing
- Acceptance Testing
- Test-driven Development Concepts
- Test-driven Development
- Where to Begin TDD
- TDD Patterns
- TDD Best Practices
- Testing Tools
- Unit and Integration Testing With JUnit and Mock Objects
- Automated Testing
- Continuous Testing
- Robustness Testing
- Code Coverage Analysis
- Setting Up Testing Infrastructure
- Defining Test Strategy
- Choosing Tools
- Configuring IDE
- Configuring a Build System
- JUnit Test Framework
- Understanding JUnit and Its Capabilities
- Creating Unit Tests
- Creating Integration Tests
- Tests, Suites, and Configurations
- Integrating JUnit Into Build System
- Mock Objects
- What Are Mock Objects?
- When and How to Use Mock Objects Effectively
- Creating Mocks
- Replacing Mock Objects With Live Objects
- What is Refactoring?
- Refactoring Concepts and Best Practices
- Identifying and Implementing Potential Refactorings
- Testing Refactored Code
- Web Tier Testing
- Automated UI Testing (Functional Testing)
- Automated Load Testing
- Middle Tier Testing
- Out-of-container Unit Testing
- In-container Unit Testing
- Testing Web Development Frameworks, Such as Struts
- Testing Legacy Code
- What to Do With Legacy Code
- Common Approaches for Testing Legacy Code
- Exploring Dependencies
- Creating Loose Couplings
- Continuous Integration Testing
- What Is CI?
- Setting Up a CI Environment With Hudson
- Incorporating Tests Into the CI Environment
Meet Your Instructor
Simon has over 15 years of experience defining, developing, and delivering software development training programs.
As a senior instructor and courseware developer for Sun Microsystems, Simon developed and delivered Java training courses for Sun Educational Services’ internal and external customers. While at Sun, he was a guest presenter at JavaOne, Java University, and other software trade shows. Simon’s most significant accolade was his work as the development lead in the design, development,...Daniel
Daniel has been a self-employed developer, teacher and speaker for private businesses, education and government entities since 1999. Daniel also actively teaches programming for the University of New Mexico Continuing Education.
Daniel is a Pomodoro Technique practitioner, and co-founder of the Albuquerque Java User’s Group in Albuquerque, New Mexico. When he’s not supporting other local Java developers, Daniel spends most of his waking hours developing in and around the Java ecosystem, encompassing...Eric
Eric is a consultant, a trainer, and a passionate programmer. For the past 15 years, he’s been building applications in a wide variety of industries, from structural engineering to video editing to currency trading. Growing up professionally in the world of .NET, Eric has an extensive background in C#, ASP MVC, and SQL Server with a variety of Microsoft certifications.Joshua