What does it mean to write tests in a systematic and effective way?
The first step is to engineer tests based on what the program should do
We then augment our test suite by looking at coverage reports and look for new tests
Having clear pre- and post-conditions help us "testing the system from the inside"
Instead of writing tests that exercise a single example, can we test higher-level properties?
Classes depend on each other. How to test classes that depend on other classes?
Some systems are easy to be tested, others are not. Let's talk about design principles that make software systems testable.
What if we actually write the test before the production code?
Unit tests are not enough, but integration tests are no piece of cake. Let's talk about them.
Test is code, and code needs to be maintained. Learn how to write clear and concise test code.