Software Testing - An Introduction to Usability Testing

Success of any newly designed and developed software strongly and mainly depends on the extent to which the software meets the requirements stated by user and how the intended/end user finds the software to operate?
Usability Testing:
As the term suggests, usability means how better something can be used over the purpose it has been created for. It means a way to measure how people (end users) find it (easy, moderate, or hard) to interact with and use the system keeping its purpose in mind. It is a standard statement that "Usability testing measures the user friendliness of the system".

Why Do We Need Usability Testing?
It is carried out in order to find out if there is any change that needs to be carried out in the developed system (it may be design or any specific procedural or programmatic change), in order to make it more user-friendly, so that the intended/end user, who is ultimately going to buy and use it, receives the system which he can understand and use it with utmost ease.

Any changes suggested by the tester, are the most crucial points that can change the stand of the system in the intended/end user's view. Developer/designer of the system needs to incorporate the feedback (here feedback can be a very simple change in look and feel or any complex change in the logic and functionality of the system) of usability testing, into the design and developed code of the system (the word system may be a single object or an entire package consisting more than one objects) in order to make it more and more presentable to the intended/end user.

Developers often try to make the system as good looking as possible and also try to fit the required functionality, in this endeavor, they may have forgotten some error prone conditions which are uncovered only when the end user is using the system in real time. Usability testing helps the developer in studying the practical situations where the system will be used in real time. The developer also gets to know the areas that are error prone and the areas with scope for improvement.

In simple words, this testing is an in-house dummy-release of the system, before the actual release to the end users, where developer can find and fix all possible loop holes.

How Usability Test Is Carried Out?
Usability test, as mentioned above is an in-house dummy release before the actual release of the system to the intended/end user. Hence, a setup is required in which developers and testers try to replicate situations as realistic as possible, to project the real time usage of the system. The testers try to use the system in exactly the same manner that any end user can/will do. Please note that, in this type of testing, all the standard instruction of testing are followed, to make sure that it is performed in all the directions, such as functional, system integration, unit testing, etc.

The outcome/feedback is noted down based on observations of how the user is using the system and what are all the possible ways that also may come into picture, and also based on the behavior of the system and how easy/hard it is for the user to operate/use the system. The user is also asked for his/her feedback based on what he/she thinks should be changed to improve the user interaction between the system and the end user.

Usability testing measures various aspects such as:
How much time the tester/user and system took to complete basic flow?
How much time people take to understand the system (per object) and how many mistakes they make while performing any process/flow of operation?
How fast the user becomes familiar with the system and how fast he/she can recall the system's functions?
And the most important: how people feel when they are using the system?

Over the time period, many people have formulated various measures and models for performing this testing. Any of the models can be used to perform the test.

Advantages of Usability Testing
  • Usability test can be modified to cover many other types of testing such as functional, system integration, unit, smoke testing, etc. (with keeping the main objective in mind), in order to make it sure that testing is done in all the possible directions.
  • It can be very economical if planned properly, yet highly effective and beneficial.
  • If proper resources (experienced and creative testers) are used, it can help in fixing all the problems that the user may face even before the system is finally released to the user. This may result in better performance and a standard system.
  • It can help in uncovering potential bugs and potholes in the system, which generally are not visible to developers and even escape the other types of testing.
It is a very wide area of testing and it needs a fairly high level of understanding of this field along with a creative mind. People involved in the usability testing are required to possess skills like patience, ability to listen to the suggestions, openness to welcome any idea, and the most important of them all is that they should have good observation skills to spot and fix problems on the fly.