Testing using web browser automation
Datalink uses a mix of testing strategies to increase the quality of our software releases.
One of techniques we use is web brower automation, which allows us to record and play back interactive clickthroughs on your website to ensure key functionality is working before each release. This strategy helps maintain quality during the maintenance cycle, and prevent seemingly small changes to your site causing large inconvenience to your user.
Web Browser Automation
First, we write a series of user stories that define the test coverage. A user story is something like this:
"As an anonymous user, I can log in using a valid username and password, and then click a link to view my tax receipts."
Rather than being technically focussed, user stories are written from the user's perspective and cover business value.
It is important that the process for creating and selecting user stories is collaborative, and we work with the customer to identify the most important business functions to protect, rather than looking from a technical standpoint. Essentially this allows us to reach a shared definition of 'release quality' with the customer, and we can evolve this over time as new features or added, or new business requirements are discovered.
From the user stories, we create reliable sample data as a starting point, and we record the user stories and add checks, or what we call 'assertions', into the test script. For example, we may click through a join process and then check for a particular message at the end.
We can then run these tests manually like I'm doing now, or we can import then into our automated test environment, which will allow us to automatically run the tests every time we check in any code changes.
Our test server also allows us to play back our tests across a wide range of browsers, to ensure that functionality works in internet explorer as far back as version 6, and various firefox, safari and chrome versions.
Web browser automation is one of many testing strategies we use when developing and maintaining complex websites, especially when they may have transactional capabilities or requirements for high reliability.
This type of testing has an initial cost to set up, but saves money and embarrassment into the future.