To be clear, this post is not about whether functional testing is more important than usability testing, or vice versa.
|Scooped by Marisa Chiulli|
To be clear, this post is not about whether functional testing is more important than usability testing, or vice versa. That’s like asking your parents whether they love you or your brother more; there’s no right answer. The better debate, in my opinion, is about which one should come first and why. And while some may throw the chicken and the egg debate into the argument, or argue that functional testing is the starting point of developing good software, I hope to convince you that usability testing should always come first.
To play devil’s advocate for a moment, I agree that you cannot ‘fully test’ usability without partially-written code that invokes user feedback. Using this argument of developing bits and pieces of the app first, you would then need to test its functionality prior to its usability and user experience – that makes sense. However, let’s borrow an analogy from the world of construction for a minute. Do construction workers lay out a building’s foundation before referencing a set of blueprints and guidelines? And do building blueprints stem from the whim of an architect? The answer to both is a resounding no.
So how does this analogy relate to testing? Well, just as specs are typically developed before a single line of code is written, usability testing should begin well before specs are developed – typically in the requirements-gathering phase of your SDLC. This type of usability testing, however, may not be what comes to mind when you first think of usability testing. Instead of interacting with a complete or partially-developed app, usability testing at this level can begin with digital or pen and paper wire-framing. It can also begin with A/B mockups and intended workflows that can be test-driven by a set of end users. Inputs from your users at this point in the SDLC can better inform where to even begin with design and workflows of your app. In other words, move your usability testing further upstream to minimize potential reworking of code downstream. This enables you to minimize time spent on reworking design and code, or even worse, sticking with poor usability because of time and cost constraints.