Usability Testing and Heuristic Evaluation
There are so many testing types available in the software testing. Usability testing is defined as a "type of software testing where, a small set of target end-users, of a software system, "use" it to expose usability defects". Usability testing is a method used to evaluate how easy a website is to use. In usability testing we always have to consider real user or the end user perspective. The key difference between usability testing and traditional testing (smoke testing, regression testing, unit testing, acceptance testing etc.) is that usability testing takes place with actual users or customers of the product.Usability Testing is recommended during the initial design phase of SDLC, which gives more visibility on the expectations of the users.
Heuristic evaluation is one of the main method used in usability testing. Heuristic evaluation helps to identify usability defects. The main goal of heuristic evaluations is to "identify any problems associated with the design of user interfaces". Usability consultants Rolf Molich and Jakob Nielsen developed this method on the basis of several years of experience in teaching and consulting about usability engineering.
There are 10 main types of usability heuristics. Those are,
1.Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. Then user will get an idea about what is happening within the system and users will not get confused.
As a example
- when user login to the gmail application initially it will show the "gmail loading" status.
- when user upload something, system should show it's uploading progress. Then user can get an idea about the status of the system.
2.Match between system and the real world
System functionality always should match with the real world scenarios. Instead of using system-based terminology, the system should use the user’s language, user-familiar sentences, paragraphs, and concepts.
As a example ,
- In i book application they use the appearance of wooden bookshelf. Then their customer can easily get an idea about the application.
- Recycle bin icon in the desktop also very much similar to the real bin.
3.User control and freedom
Users often mistakenly execute a certain function of the system. In this case, there should be emergency exit options to leave the unwanted state without having to go through an extended dialogue in the system. In addition, the system should support “undo operations” and “redo”.
As a example,
- If you accidentally delete an email in gmail, Once you delete that email, gmail it self it will show a flash message with undo option
- When you uploading some post to Facebook and you realized that not to upload that post. in that case there should be exit option from current status.
4.Consistency and standards
Users should not have to wonder whether different words, situations, or actions mean the same thing.
As a example,
- Microsoft Word, Excel, and PowerPoint all use the same style toolbar with the same primary menu options: Home, Insert, Page Layout…
5.Error prevention
If we can stop occurring any errors in the first place before we commit it to an action. we can call it as error prevention.
As a example,
- You want to send an email with attachment. And you click on the save button without attaching file. In that case gmail is scanning your email body text and it will prompt message like "It seems like you forgot to attach a file"
- In sign up functionality, password validation happens in the field itself. (user don't need to wait until click on the save button to see the validity of the password)
6.Recognition rather than recall
User don't need to remember or recall anything in the system. But system should help users remember things with suggestions and set of options. This will help to reduce apply user memory
As a example,
- When you typing something in google search, it will suggest relevant information to the users.
7.Flexibility and efficiency of use
There are two main types of users. Those are experience users and inexperience users. System should be able to cater to both inexperienced and experienced users.
As a example,
- In some system simple signup functionality and customized sign up functionality available. Inexperience users can use simple sign up functionality and experience users who are familiar with the web site, they can use customized sign up functionality.
8.Aesthetic and minimalist design
Dialogues/ screens should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.
As a example,
- Google has been resisting the temptation to show more information on their search page for years. This is could be shown as the example of the best possible minimalist design.
- Interfaces need to be cleared of unnecessary elements and content that do not support the page goals and tasks. Apple provides only the basic information of feature hiding additional information under “Learn More”.
9.Help users recognize, diagnose, and recover from errors
Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.
As a example,
- Rather showing 404 error message in the web page, we can show relevant message for the user
10.Help and documentation
Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.
As a example,
- You can provide any extra information that would be useful to users, along with the label. But you should do so only if it is necessary.
I hope this article will help you to do a proper usability testing. You can verify your sites's interface against with above mentioned usability principals.
Happy Testing :) Cheers !!!
Software Test Automation Engineer
6yNice article. Do you use these 10 heuristic rules when doing the usability testing practically? I have heard of "Shnedierman and Plaisant’s eight golden rules in Heuristics". It has been mentioned that these eight is much more effective than those 10 for new application testing. What do you think?