Record and playback features are a really useful tool for automated test development. The way they work is that the test developer clicks a record button, does some actions, and then clicks stop. When replaying the recording, the same actions should be performed.
The terms recording and playback can be a bit of a misnomer. When ‘recording’, code is being automatically generated. This code runs when the user ‘plays back’ the recording. Changes can be made to the code to make the test run differently. This allows the test developer to update, maintain and make improvements to the tests.
Benefits of Recordings as an initial code generator
Personally, I do not recommend relying solely on record features when developing automated tests. Tests can be out of date after just a few minor changes made to the application. Having to record everything again when a small change is made makes the test costly to maintain. This removes a lot of the value gained from automated test development.
However, writing large amounts of code manually can be time consuming. Automatically generating code using recordings can speed up this process. The code generated is clear and concise and can be easily understood. Some developers may write code that is difficult to understand by someone other than themselves.
Once the initial code has been generated, the test developer can make alterations and additions to the code. This allows for more sophisticated automated tests to be developed very quickly.
Benefits of Recordings for mixed skill teams
Software test teams can often comprise of several members with varying skill sets. This is particularly the case if there are certain members dedicated to manual testing and automated test development. Some members may not be confident in their programming skills. They should not be excluded because of their lack of experience. They may have alternative skills and ideas that could improve the tests.
The initial test developer who made the tests may be unavailable for whatever reason. This means that these tests need to be maintained by someone else. Having all members of the team, regardless of programming skills, able to make even simple updates to the automated tests can be beneficial. Changes can be made by altering the code or by creating a new version of the recording.
Recording features are an excellent learning tool. The code is automatically generated which enables the developer to examine and learn from it. From this, the developer can gain confidence in their programming skills. These skills can be used to update and maintain existing automated tests, and develop new tests.
Benefits of using tools to improve testing
I once heard someone claim that no one will recruit an automated test developer who uses record and playback features. This is deeply concerning as, in my experience, even someone with exceptional programming skills may still choose to use these features as a guide to speed up test development. Why would you refuse to hire someone who made use of a tool that improved their productivity? There can be a dangerous assumption that someone who uses record and playback features does so because they lack the technical skills required for test automation.
Test automation is a tool that helps with testing a software application. Someone who runs automated tests may also run manual tests. Some test teams may choose not to make use of this tool and instead rely solely on manual testing. Both methods are acceptable. What I would not recommend is relying solely on test automation.
The same principle applies to record and playback features. They are a tool to aid in the development of automated tests. Someone who uses this feature may also adapt the code generated from the recordings and introduce some code of their own. Some test developers may decide to manually write all the code for their automated tests. Both approaches are acceptable. But like manual and automated testing, I would not recommend relying solely on recordings to develop automated tests.
Regardless of skill set, anyone with access to a tool that makes their job easier is entitled to make use of that tool. At the end of the day, it is your choice how you decide to use these tools to your advantage.
In my next article, I will share a few useful methods that can be used to further improve recorded test cases, such as: separating a single recording into several smaller recordings, reusable recordings, creating data-driven tests, exception handling and much more. Stay tuned!
I’d love to hear your thoughts in the comments below. Let’s start an open discussion on this matter! 💡