The contractor shall provide Hill AFB with 4 days of hands-on, instructor-led TDD for C++ training. This training shall be performed on-site at building 1279 Room 6, 6016 Cedar Lane, Hill AFB, UT 84056 on May 6-9, 2024.
2.1 Contractor shall provide training on the topics listed below for 12 attendees.
o Test-Driven Development Fundamentals Introduction to TDD
. Philosophy and principles of TDD
. Benefits and challenges of TDD
. Limitation of TDD
o TDD Life Cycle
. Mastering the Red-Green-Refactor cycle
. Writing minimal code to pass tests
. Driving the application code from tests
o Setting Up for TDD in Visual Studio Code
. Configuring VS Code for TDD with C++
. Introduction to unit testing frameworks (e.g., VS CppUnit Test, Google Test)
. Separating tests from code-under-test
. Test project configuration within VS Code
. Version control software and TDD
o Practical Unit Test Writing in C++ Characteristics of a good test
. Moving beyond the happy path
. Effective testing strategies
o Business Requirements to User Stories and Tests
. Understanding and creating user stories
. Translating business requirements
. User stories in Agile and TDD
. Crafting effective user stories for TDD
o Designing Test Cases from User Stories
. Breaking down user stories into testable units
. Writing test cases that reflect user story acceptance criteria
. Prioritizing test cases based on business value and risk
o Advanced TDD Practices
. Effective refactoring strategies
. Improving code quality and maintainability
. Regression testing to increase code confidence
. Handling complex scenarios and edge cases in TDD
. Identifying and addressing cyclomatic complexity
o Dealing With Dependencies
. Defining mocks, fakes and stubs
. Mocking frameworks compatible with C++
. Isolating code for independent units of testing
. Implementing dependency injection to facilitate testing
o Integrating TDD into Development Process
. Continuous Integration and TDD
. Understanding the testing pyramid
o Practical Test Automation Techniques
. Continuous Integration (CI) pipelines with GitLab CI/CD
. Selenium for UI testing
o Test Coverage and Quality
. Maintaining TDD over time
. Dealing with changes
. How much testing is enough
o TDD in legacy codebase
. Strategies
. Challenges
o Scaling TDD
. Building team standards for TDD
. Effective metrics in TDD adoption
Any Feedback to improve our process regarding this requirement is welcome.