One of the most important tasks in software testing is to find the right scope for each test case. What can be covered with unit tests and when are system-level end-to-end tests useful? What are functional tests, integration tests, or edge-to-edge tests? How do you test non-functional aspects such as performance? And where do experiment-driven and test-driven development fit in? Attendees of this session will learn which aspects of an application should be tested and how to efficiently implement these tests so that they are easy to write and fast to execute while delivering highly reliable results.