Stories about failed attempts to automate functional testing are very easy to find and have given the record/playback style test automation a black eye. Is this approach fundamentally flawed or can the business benefits of automated testing be realized through recorded tests? The flaw with most commercial record/playback tools is that they are intended for use with existing applications that have not been designed for testability. Therefore, the tools can only interact with the application through the user interface, making execution slow and prone to flakiness because user interfaces make terrible machine interfaces. Gerard Meszaros introduces the concept of designing testability and test recording capabilities directly into the application. This approach allows automated tests to interact with the application via a programming API to make them much more robust. Case studies illustrate how to design record/playback test automation into different application technologies and how this technique impacts the application design.
- Why general purpose record/ playback tools have fatal flaws
- How recording can work well when built onto the program
- Designing testability into software design to improve your application