Instructor-led, remote hands-on training course in test-driven development using the Java language for coding exercises.
After completing this course you will be able to…
- Audience: Software developers (programmers, testers, architects)
- Some real-world experience in software development, support, and/or delivery.
- Basic proficiency in the programming language used in class.
- Duration: 3 days (one 4-hour session per day)
- Format: Remote participation with live instructor
- Course roadmap and setup
- Learning objectives
- Initial coding exercise – FizzBuzz
- Goals of a professional programmer
- How TDD supports those goals
- The TDD cycle (Red – Green – Refactor)
- First TDD coding exercise – Prime Factors
- Delivering vertical slices of functionality
- Up-front design and emergent design
- Development approach and “time until done”
- Second TDD coding exercise – RPN Calculator
- A command-line interface for the RPN calculator
- Is TDD a development technique or a testing technique?
- Structure of an automated test case
- What is a unit test?
- Code isolation
- Different ways of gaining confidence in our code
- The test automation pyramid
- Testing versus checking
- Unit tests and the continuous delivery pipeline
- Software design principles
- Code smells
- Refactoring demonstration
- Refactoring exercise
- Refactoring exercise 2
- Is emergent architecture possible?
- TDD and frameworks
- TDD and COTS products
- TDD and configurable application platforms
- Living with large automated test suites
- Working with legacy code
- Baking refactoring into your normal work flow
- The case against unit testing and TDD
- Course retrospective
To set up your development environment for the class: Setup instructions.