I love deadlines. I like the whooshing sound they make as they fly by.” – Douglas Adam

Wednesday, 7 August 2013

Heuristics - User Experience Testing

Hi People,

Its been many days I have been thinking to write something. I have made enough drafts and failed to post them. I don't know if it is this difficult to post the drafted thoughts. Finally this is the one that I am bringing to your eyes.

Through this post I am making an attempt to throw some light on one of the essential 'Quality criteria' to be considered while testing any application - 'User Experience'. 

I have tried my best to narrate what is User Experience and came up with a list of  few heuristics that you can use while testing for User Experience.

Why is User Experience Testing important?

Scene 1: You are hungry. You go to a restaurant, order your favorite food. What if it is served in an untidy plate?

Scene 2: You need to travel and reach the office in time. You caught the bus at right time and it is going at a right speed. What if the bus is crowded?

Ohhhhh crap!  

This is what we say when we have a bad experience. The question here is, why is that you are not satisfied even though your purpose is met. So, there is something else that bothers you and keeps you unsatisfied, though the requirement is fulfilled.

So similarly, we should notice that, any application, be its requirements are met, it is not accepted by users, unless it provides good User ExperienceSo, here arises the need to not to restrict the testing to requirements alone!


Before I list down some heuristics, let me define 'Heuristic' for you ~ 'Heuristic is an approach to find a bug which may or may not be fruitful'

In fact, as the only fundamental aspect of any product being 'Satisfy the user', every heuristic we use while testing adds up to User Experience testing.

So, Here is the list of few heuristics, one could use while testing for UX (I say them as heuristics because I am not sure would they end up fruitful wrt to UX testing, as the context differs every time)


Human emotions are what that play an important role to decide the UX of the product. Its all about how does the emotions of an user change while using the application. The app needs to be tested considering various aspects of the application that may turn off/on mood of a user. Example: Feel and Flow of the app, UI aspects, etc


User expectations are the deciding factors. Keeping in mind the brand of the app, kind of app, success of previous releases of the app, users might be having some expectations. If the app doesn't meet the user expectations it may turn out to be a failure.


User shouldn't experience any irrelevant or undesirable experience. To explain this better let me take an example of error messages. The error messages shown should be relevant with the error occurred. The User should be able to understand the error on reading the message displayed.


While testing we need to test the app keeping in mind the type of audience who are going to use it. Different audience look for different things in the app. For example what a kid expects is not the same as an old man needs. So testing with the mindset of right audience will help a lot.


The content of the application should be relevant and appropriate to the customer's needs. It also should be according to the business goals. The content should be structured in such a way that the user has a good experience while reading it.

Competitor Analysis:

In this competitive world, you can stay ahead of your competitor by providing better User Experience. Considering the User Experience with other competitive applications, we can end up with bunch of ideas to test upon.


Considering the various reviews given by the users for the same / similar products, we can come up with a bunch of test ideas that could help the application to overcome the failures if any. Reviews act as a good mode to scale the User Experience of the application.


Though the branding is always essential in any application, it shouldn't dominate the content and annoy the user. Also, in contrast, we need to make sure enough branding is done. So, tester can keep this in mind to generate more test ideas.

Remember, while implementing all these heuristics, we assume the behavior of an user. So, we end up coming up with the behavior what we (Tester) expect than what others expect. We need to make an attempt to discuss the behavior of an user at every step with fellow testers and take in the inputs.

Thanks for reading, guess this was helpful. Do drop in some comments that would help me to learn better so that I could help you more, again and again!

Happy Testing!


  1. Great blog post about a very important subject! Always keep the end user in focus is my mantra during testing.

    I´d like to add one heuristic, I call it "Cognitive ergonomics". Questions I ask when applying this heuristic:

    1. Is the application easy to understand and learn or does it acquire lots of time and effort to do master it? If so, is it really necessary?

    2. Does the application strain the working memory with passwords, complex workflows or non-intuitive menues or is the processing simple to use?

    3. And audience as you mentioned above; If the application is meant to be used by anyone, will it be considered "cognitive friendly" by the majority?

    There are lots of potential improvements to be done in this area. The everyday person interacts with software in so many ways and complexity is constantly rising. I actually think it is a matter of public health to make software easy to use and understand!

    1. Thanks for the time and knowledge Mr. Davido.

      "Cognitive ergonomics" seems to be an interesting area to focus on. Will try to get back soon with few more potential points :)

      Thanks for reading!

  2. Superb,I don't even bother how experienced you are but this post is very helpful to all the testers world wide.

    I take a print of this and paste it on my desk wall. Keep momentum going on, write more and more.

    Kudos, valuable information. After a long time I felt worth spending time in reading this.


    1. Hi Sudhamshu,

      I am happy that you found it worth reading. Such words are always encouraging. Thanks a lot!

      I would try coming up with many such articles and please the readers like you. :)

  3. If I want to add something to this, I add these:

    1. How good are the colors, what if it is used by a color blind users?
    2. How about the localization or globalization, is it implemented properly?
    3. Is it behaving the same in all the browsers, and operating systems. Because very few software are specific to this?

    Continues... Thanks, for sharing my friend, it made me to write my own thoughts :)

  4. Thats a very good list Dheeraj.

    My 2 cents (hope you don't mind)

    - Software today as you know run on a lot of platforms so to me a bit more context would be useful. For example if I am testing an mobile app I most probably would add "connectivity/interruption" to your above list of UX heuristics. But if I was testing a standalone desktop application I might not.

    - I would also add a point that the 'content' should't be long especially in 'help' or help video

    1. Thanks for adding knowledge Sharath,

      I understand this is a vast subject. There is always a need to have an exhaustive list. Its always interesting to listen more and more from the people in the industry. Will come up with more and more ideas to discuss upon :)

      Thanks again for reading!

  5. Thanks Dheeraj for the post and this 'Need to not to restrict the testing to requirements alone!' and the definition of heuristics.

  6. Kudos Dheeraj for such a brilliant piece of work...!!! Your writings surely overrides your age and experience in the field. Way to go buddy. :)