5/24 AUTOMATED TESTING In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Source Wikipedia
13/24 UNIT TESTS Business Logic COMPONENT CLASS CLASS CLASS CLASS CLASS PUBLIC METHOD PUBLIC METHOD PR . ME. PR . ME. PR . ME. PR . ME. PR . ME. PR . ME. U N I T T E S T S
17/24 THE THREE LAWS OF TEST DRIVEN DEVELOPMENT 1.You are not allowed to write any production code unless it is to make a failing unit test pass. 2.You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. 3.You are not allowed to write any more production code than is sufficient to pass the one failing unit test. Robert C. Martin
18/24 THE THREE STAGED CYCLE OF TEST DRIVEN DEVELOPMENT R E D GREEN REFACTOR 1. Write Test 2. Fail the Test 3. Write Production Code 4. Pass the Test 5. Refactor both Test and Productin Code 6. Ensure Tests are Still Passing
21/24 TEST STUB We replace a real object with a test-specific object that feeds the desired indirect inputs into the system under test. Gerard Meszaros
22/24 TEST SPY We use a Test Double to capture the indirect output calls made to another component by the SUT for later verification by the test. Gerard Meszaros
23/24 TEST MOCK We replace an object on which the SUT depends on with a test-specific object that verifies it is being used correctly by the SUT. Gerard Meszaros