Which Comes First: Functional or Usability Testing?

Chicken_EggTo 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.

Many of you have many more years of experience in this realm, so it would be more productive to gather your insights instead of adding more cases to this post. Drop a comment below and let us know what has worked and, equally important, what has not worked when it comes to the order of functional versus usability testing.

Essential Guide to Mobile App Testing

Comments

  1. says

    At the early stage of development usability testing does have higher priority – I like the construction analogy and the idea of A/B testing mockups.

  2. Elena Kosolobov says

    Decision what test do first depends on how far the current product is in the development life cycle. If the product is currently in the analysis and design stages, usability has first priority. This helps the developers create an overall base and design the product that satisfies customer’s needs. However, in the later stages of the development life cycle, functionality testing has the first priority. At these stages, the product already made, and it is more important now to make sure it works properly.

  3. Azad Husen says

    Srinivas,

    You can start usability testing without knowing requirements. Usability is like first impression is the best impression.

    If user find usability issue in first page( i.e: login or sign up), user may quit and will not use app more.
    One example for mobile app: In login or Sign up form if next button appear in keypad, it becomes more usable for user. No need to tap twice to go to next field. This actually does not mentioned in requirements.

    I also agree with the point raised by Peter and I actually follow usability testing first.

    Thanks

  4. John Hertig says

    One wonders how you can develop a product if you don’t know what it is you are developing. How do you tell when you are ‘done’? (Real) Agile does not say that you don’t follow a development process, just that you break the product down into usable segments, in consultation with the people who will be using the product.

    The concept of ‘usability testing’ can cause serious problems. If you build a product and then ‘test the usability’, you are setting yourself up for serious problems.

    Usability should be part of the Requirements, Architected in, Designed in and Coded in. And reviewed to ensure it is covered at each step. If you do this, then usability testing is just verification, and can happen after functional testing or along with functional testing.

    If usability is NOT treated as just as important as functional content early in the cycle, then there is a fair chance you will find the usability inadequate, and so it would be better to test it first before you waste time trying to find and fix functional problems. Because serious usability issues will likely require you to make major changes which may well result in a different set of functional problems.

    The earlier a problem is created, or the later it is found, the more costly and difficult it is to fix.

  5. says

    Thanks for the post.
    I like the post and the way u took the examples for this.

    If we are working in the environment,where there are no requirement specs docs and the dev is in agile model (so called) and How can we do usability testing first and then functional testing.
    We even don’t know much details of the product we develop.

Leave a Reply

Your email address will not be published. Required fields are marked *