Programming with GUTs
summary
Material claims C++ teams can have GUTs that survive refactor and undefined behaviour by focusing on precise claims not vague topics. It implements a toy sorter (the “I can’t believe it can sort” double-loop) and verifies it with GoogleTest and Catch2, stressing the permutation property over naïve sortedness and using seeded randoms for reproducibility. It defines ADT tests for a bounded queue with callback hooks, uses given-when-then style nesting, discusses coverage limits and mutation testing, and shows the examples actually run and reveal real issues.
AI-written summary · about
chapters (37)
- 0:00Introduction to GUTS
- 1:22Purpose of unit testing
- 2:17Testing workflows
- 4:20Unit testing vs TDD
- 5:57Continuous testing
- 7:11TDD methodologies
- 8:29Defining good tests
- 10:48C++ algorithms
- 12:33A simple sorting algorithm
- 15:29Writing tests for people
- 17:06Naming test cases
- 19:03Random data testing
- 21:13Property testing
- 23:26Oracle testing
- 25:20Test-driven specification
- 27:30Common testing errors
- 29:46Arrange Act Assert
- 31:56Undefined behavior
- 33:39Test coverage metrics
- 35:53Types of coverage
- 37:47Cultural aspects of testing
- 39:34Historical testing styles
- 41:43Venn diagram of test cases
- 43:16Testing for communication
- 45:46Feedback from test failures
- 47:33Mutation testing
- 49:26Abstract Data Types
- 51:47Queue implementation
- 53:36Testing frameworks
- 55:07State-based testing
- 57:18Given-When-Then
- 58:52Mock objects
- 59:33Slowing down to speed up
- 1:01:01Q&A: Testing frameworks
- 1:02:06Q&A: Concurrent testing
- 1:03:06Q&A: Test structure
- 1:05:59Closing remarks
related talks
51mProgram with GUTS
01h 01mBack to Basics: Test-driven Development
15mProgram with GUTs
53mProperty Based Testing, By Example
59mC++ Unit testing - the good, the bad & the ugly
01h 02mBack to Basics: C++ Testing
15mBennet: Randomized Specification Testing for Heap-Manipulating Programs
53mC++ Unit testing - the good, the bad & the ugly
