Test Driven Development with C++

Agile development is feedback driven development. Faster feedback loops are essential to ensure that the code that worked yesterday continue to work today, after the most recent changes. Come to this workshop to gain an in depth hands on experience to design and implement automated unit tests for C++ applications. Learn how to use mocks/stubs and when to actually use them. Also, learn how AI can help with some of these tests creations and where it falls short. After this workshop you will be able to apply and also guide your teams to make use of this highly essential sustainable agile practice.

  • Sept 21
    Magazinet Kongsberg
    2 days
    07:00 - 15:00 UTC
    Venkat Subramaniam
    13 990 NOK

This workshop is hands-on and includes several coding exercises. Attendees are encouraged to pair and work on the labs. The workshop involves live-coding and is highly interactive. The topics covered include:


Influence of TDD on Agility and Sustainability

  • Reasons to do TDD
  • Cost of doing it
  • Cost of not doing it
  • Software systems, design, complexity, and how to cope
  • Importance of Automated tests
  • The two benefits of TDD—rapid feedback and design influence
  • What’s really needed to be effective at TDD?
  • Exercises

Test Driving your Design

  • Types of Tests: White box and black box testing
  • Type of unit tests–positive, negative, and exception tests
  • Performance tests* What is really a unit of code?
  • How to test drive a unit of code?
  • What is not unit testing?
  • Programming by Intention
  • Simple code that works
  • How to evolve design through unit tests?
  • Practices for Unit Testing* Tenets of Unit Testing
  • Detailed example of building a small App test driven
  • When to write unit tests?* When not to write unit tests?
  • TDD Patterns and test qualities
  • Exercises


Creating Tests with Quality

  • Dos and Don’ts* Structuring tests for readability 
  • Tests with multiple asserts
  • Long vs. Short tests
  • Set up vs injecting state
  • Measuring Coverage
  • Caution with coverage
  • Exercises


Mocking Out Dependencies

  • What makes TDD hard?
  • How to deal with dependencies?
  • First, knock out before you mock out
  • What is a Mock object?
  • What is not a mock?
  • Spy, Stub, Mock, and Fakes
  • Common pitfalls programmers run into when using mocks
  • How to create mock objects?
  • Hand tossing mocks
  • Using a mocking framework
  • Exercises


Using Design Principles with TDD

  • Law of Demeter
  • SRP
  • SLAP
  • YAGNI
  • DRY
  • OCP
  • DIP
  • Relevance of principles to TDD
  • Exercise


Using AI to Create Tests for Existing Code

  • The Power of AI
  • The Perils of AI
  • Creating tests for Existing Code?
  • Dos and Don'ts
  • How to ascertain quality of tests
  • Design Complexities and AI generated test quality
  • Exercise


Using AI for Test First Creation

  • The Caveats of using AI for TFD
  • The benefits of using AI for TFD
  • Giving a hint of your design to AI
  • Exercise


Who is this for
Software developers, programmers, leads, architects, technical managers who are keenly interested in sustainable agile development.

Venkat Subramaniam
Agile Developer, Inc

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.

Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You may read more about Venkat and Agile Developer, Inc. at http://agiledeveloper.com.

    Programutvikling uses cookies to see how you use our website. We also have embeds from YouTube and Vimeo. How do you feel about that?