Approval testing is well known as a good approach for getting control over legacy code. It’s also known as “characterisation testing” or “Golden Master”.
In this course we’ll go through some typical legacy situations and how to get going with approval testing. You can achieve a high level of confidence in your tests for relatively little effort.
What you will get
- Three shorter modules spread a week apart to better combine with your daily work
- You will understand Approval testing techniques, tradeoffs and applicability
- You will receive plenty of hands-on exercises and discussions
- The programming language will be either Java or C# depending on the preference of participants
"Great Course. Structure, timing, balance between prepared information know-how and open questions was really nice and never boring. I think, each team should have someone, who has knowledge about Approval Testing. For me this course was a great choice."
Kristina Kasanicova, Test Engineer
01 Target Audience
The course is aimed at both testers who do automation and developers with an interest in automated testing. In my experience you get the best results from your test automation efforts if people in both roles collaborate together. The programming language used will be mainly Java with a small amount of Python.
Emily is a Technical Agile Coach and long-term proponent of agile development practices like Test-Driven Development. She is a published author with Pluralsight and wrote „The Coding Dojo Handbook“ and recently a follow up book called „Technical Agile Coaching“.
Emily regularly speaks at conferences such as Craft, Agile Testing Days, ACCU, Europython and NDC. She is originally from the UK but now lives in Sweden.
Since this is an online course:
- We will take advantage of being able to split it up into three shorter modules spread a week apart.
- It’s less disruption of your daily schedule, and gives you time between modules to try out what you’ve learnt, and come back with questions.
- There will be homework assignments and supplementary materials available to browse between meetings.
04 Training Introduction
05 Schedule Modul 1
1. Modul: Introduction to Approval Testing
- Test cases check actual program output against a previously approved value, and any difference will fail the test.
- Normally, a human inspects and approves some actual program output when creating a test case.
- Raw program output may be processed into a more convenient format before being used for approval and comparison.
- Design a Printer to display complex objects, instead of many assertions.
- If actual program output is not yet available, the approved value may be a manual sketch of the expected output.
- Approved values are stored separately from the source code for the test case, although in the same VCS repository.
- When a test case fails, you can use a tool to inspect the differences and easily update the approved value.
06 Schedule Modul 2 & 3
2. Modul: Using Coverage and Combinations with Legacy Code
- Using coverage to identify missing test cases
- Using Combinations to increase confidence
- Work through some exercises adding tests to legacy code using the ‘Approvals’ tool
3. Modul: Approval Testing for Scripts, APIs and Microservices
- A command-line script
- One microservice via a REST API
- A simple HTML user interface
- A system made up of microservices
- Work in an ensemble and explore techniques important for Approval testing like stubbing dependencies and designing printers
- Write tests using the tool “TextTest” (link to http://texttest.org)