Sela

Test Driven Development for C++ Developers

Description
Bring your development team up to par with some of the most productive and successful software development teams in the world. Companies such as Google, Microsoft and that BBC have already realized the potential that lies in Test Driven Development. It’s time you do the same for your team. Use TDD techniques to reduce the amount of bugs in your software, make your developers more productive and your software more stable. Notes: 1.This course is very technical and includes extensive hands-on practice. However, the real world is always more complex than the course examples, and therefore it is strongly recommended to add two additional consulting days for guided practice on the your own code base, and an ongoing periodic accompaniment. 2.Typically the tools used in this course are Visual Studio, Google Tests, Google Mock and Resharper C++, but we can use any testing framework for C++ of your choice (e.g. CppUnit) and any mocking framework, IDE or productivity Add-on.
Intended audience
This course is intended for Developers, architects and team leaders

Topics

Types of automated tests
Advantages and limitations of automated tests
Advantages and limitations of Unit tests
Writing a simple test without a testing framework
Advantages of a unit test framework
Test initialization and cleanup lifecycle
Asserts
Designing the tests as scientific experiments
One claim per test
Arrange-Act-Assert
Given-When-Then
Hands-on practice
The Red-Green-Refactor process
The benefits of writing the tests first
The benefits of writing the tests first
Hands-on practice
Why do we need mock objects?
Creating manual mock objects
Using a mocking framework (Google Mock)
Avoiding static variables and Singletons
The SOLID principle
The 4 rules of Simple Design
Taking small steps
Create before delete
Useful refactoring transformations (e.g. Extract method, Extract interface, inline method, etc.)
Using Resharper C++ for refactoring and code analysis (optional)
Overview on ATDD
How ATDD boosts the development lifecycle
Relationships between TDD and ATDD

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?