Software testing and usability are usually seen as independent fields, but they seem to have many common aspects. Why not trying to integrate both of them?
In my previous job as an expert in usability and accessibility, I was a member of the Software Quality Area inside my company. There I realized that, although they are closely related, usability and software testing are, in practice, developed as totally independent disciplines, with:
- different experts and teams
- different methodologies and techniques
- different tools
Couldn't they be more integrated?
Let's take, for example, ISO 9126 software-quality characteristics:
When developing a system, five of those six characteristics are usually a responsibility of the testing or quality-assurance team, but usability is, when taken into account, a responsibility of the usability or UX team.
However, usability is indeed related to software testing.
Here is a table with some similarities between usability and software testing tasks.
|There's no perfect developer, so it's not possible to write code without errors (Dijkstra).
You need software testing.
|There's no perfect designer; designers are not the users; usability experts are not the users.
You need usability techniques.
|"Software testing? Usability? Yes, that's really important; yes, we should do something (more) about it."
many times they are not included in the development methodology, or they are the first to be cut when there's a lack of resources.
|Usability / software testing techniques should be considered through the full software life-cycle
they are usually performed when the software is (almost) done; that is, when errors are more expensive to fix.
|They frequently deal with defects / errors / bugs / issues.|
Of course, both disciplines have differences:
|Mature discipline: most development companies have testing experts; agile methodologies integrate software testing as a continuous task.||Not so mature: not so many companies have UX or usability experts (more dissemination is still needed); few development methodologies used in practice include usability tasks (although some efforts are being made).|
|Software testers need, above all, technical skills, above all for low-level, unit testing.||Usability is a multidisciplinary field: project management, interface design, information architecture, … and, of course, human factors.|
|Software testing applies to every part of the software.||Usability relates to user interfaces (although it may be influenced by other parts of the software).|
Bringing them together
How can we make them work together and take advantage of their similarities? Two ideas come to mind:
Integrate both types of techniques
Several usability techniques and testing techniques are closely related and, in fact, they require similar elements and are performed in similar ways:
|Exploratory testing||Cognitive walkthrough|
|User acceptance testing||User testing|
Wouldn't it be possible to integrate them, or at least to share some of the elements they require?
Use common tools
Several tools may be used in both disciplines:
- Bug tracking software.
- Requirements specification tools (basis for test cases and for usability evaluation).
- Prototyping tools (for early testing; requirements validation; interfaces evaluation).
Wouldn't we take some advantage of sharing the same tools?
I'm not sure if usability is usually not part of the software quality team because it's performed by different people, or it's the other way around. Anyway, I think both disciplines could benefit from each other, maybe by sharing tools and techniques at first, and by becoming part of the same team later. I'm a little surprised there are no more experiences of this kind.