Overview
TDD, or Test Driven Development, is an approach to developing software where coding, testing, and design occur in tandem throughout the software development cycle. Agile is a broader process and management approach to software development that emphasizes incremental delivery, team collaboration, continual planning, and continual learning.
In this instructor-led, live training (onsite or remote), participants will learn how to write high-quality C applications using a TDD and Agile development approach. Participants will put their knowledge into practice by carrying out a series of hands-on exercises to create a well-designed and well-tested C application.
By the end of this training, participants will be able to:
- Install and configure development and testing tools needed to carry out TDD
- Design, develop and unit test a C application using a TDD approach
- Apply planning and management practices of Agile development
Audience
- Developers
- Project managers
Format of the Course
- Part lecture, part discussion, exercises and heavy hands-on practice
Notes
- To request a customized training for this course, please contact us to arrange.
Requirements
- An understanding of C programming
- An understanding of software testing concepts
Course Outline
Introduction
- Benefits of TDD and Agile
TDD (2 Days)
Installing and Configuring Automated Unit Testing Frameworks
TDD Approaches
- Designing software using TDD
- Refactoring software
- TDD workflows and patterns
Implementing TDD
- Collaborating Modules
- Understanding Test Fakes, Stubs, Doubles, and Mocks
- Writing good unit tests
- Improving existing tests
- Refactoring an application
- Writing tests for legacy C
- Adapting TDD for embedded software development
- Test-Driving Next to the Silicon with Mocks
Agile (1 Day)
Introduction
- Agile vs Traditional Software Development Approaches
- The Agile Manifesto
Implementing Agile
- Release Planning, Iteration Zero
- Iteration Planning, Estimation
- Requirement Review, Daily Stand-up
- Team Quality, Iteration Testing, Acceptance
- Iteration Review (Showcase)
- Retrospectives
- Lesson learned of Agile Principles
Summary and Conclusion