One of my current responsibilities is to find ways to automate, as much as practical, the ‘testing’ of the user experience (UX) for complex web-based applications. In my view, full test automation of UX is impractical and probably unwise; however, we can use automation to find potential UX problems, or undesirable effects, even in rich, complex applications. I, and others, am working to find ways to use automation to discover these various types of potential problems. Here’s an overview of some of the points I have made. I intend to extend and expand on my work in future posts.
In my experience, heuristic techniques are useful in helping identify potential issues. Various people have managed to create test automation that essentially automates different types of heuristics.
EXAMPLES OF PUSHING THE BOUNDARIES
- Dynamic Usability / Accessibility Testing—See the following article I wrote that describes some of my work in the area. The code is available here. You’re welcome to use and experiment with it.
- Fighting Layout Bugs—This is by Michael Tamm. He described the work in a public “tech talk” at Google’s Test Automation Conference (GTAC) in 2009. The link is available on his project’s homepage.
- Crawljax—This is another open-source project which applies actions. It uses patterns to determine when to apply the actions. I’ve seen it used for significant, global web applications. There is a video online which describes some of that work.
- BiDi Checker—This software helps to identify problems related to bi-directional content on web sites and web applications. It successfully finds and identifies a wide range of potential issues.
You might notice that all the examples I’ve provided are available as free open-source software (FOSS). I’ve learnt to value open source because it reduces the cost of experimentation and allows us to extend and modify the code, e.g. to add new heuristics relatively easily. (You still need to be able to write code, however the code is freely and immediately available.)
AUTOMATION IS (OFTEN) NECESSARY, BUT NOT SUFFICIENT
Automation and automated tests can be beguiling, and paradoxically increase the chances of missing critical problems if we chose to rely mainly, or even solely, on the automated tests. Even with state of the art (the best we can do across the industry) automated tests, I still believe we need to ask additional questions about the software being tested. Sadly, in my experience, most automated tests are poorly designed and implemented, which increases the likelihood of problems eluding the automated tests.
Here are two articles which describe some key concerns:
The first describes how people can be biased into over-reliance on automation. It is called “Beware of Automation Bias” by M.L. Cummings, 2004. The article is available online.
The second helped me understand where testing helps us work out which questions to ask (of the software) and that we need to use a process to identify the relevant questions. The article is called “5 Orders of Ignorance,” by Phillip G Armour, CACM 2000.