Contributed by: Shivraj Sabale (Manager, Product Engineering, Clarice Technologies)
With over 7 years in handling multiple QA teams, Shivraj has worked in different domains ranging from Application Security, Mobile/Tablet operating system stack development, Analytics and Cloud based services. He holds extensive knowledge of Test Case and Defect Management and Requirements Traceability. He has successfully lead automation and performance testing efforts in Selenium, Powershell and jMeter. At Clarice, Shivraj handles multiple QA engagements along with being a liaison for multiple teams. Shivraj has done his Masters in Software Engineering from La Trobe University and research background in Process Improvement and Quality assurance.
This article is the outcome of a string of QA discussions that take place within the Clarice QA Forum. The previous one published was “Delivering Quality in a Constantly Changing Design Environment“.
With the advent of Consumer centric products, design and usability are fast proving to be a “make-or-break” deal for most companies. It is usability which separates the over-priced Apple iPad from its much cheaper and functionality-stuffed competitors. Gone are the days when banking, trading, shopping, conferencing was unimaginable on hand held devices. Providing these features at the fingertips of consumers, literally, is not only an added perk but a differentiator and soon becoming a need. It differentiates your products from competition and that is how consumers will judge you.
More often than not, unfortunately, consumers will judge a bank not based on its ledgers but based on how their website is. So even when most ledgers are not in red, companies are losing clientele for the lack of easily accessible services and representation.
Question is who is responsible to deliver systems which are user friendly and exciting. The task now needs to be handled not only at the architecture or design level. Testing teams, until recently, were restricted to check for Functionality and Conformance to requirements. Well, Usability is now a requirement. Testing teams and test engineers need to now brace up for checking the complete usability of the product.
I would like to categorise Usability testing under two major types.
- Rule-Based usability testing
- Judgement based Usability testing
The former is a very simple and a mechanical process. The idea is to follow a certain set of rules defined at the start of the design based on the overall direction decided by the product management under Rule-Based usability testing.
It is the judgement based usability testing which cannot be taught and every test engineer needs to inculcate it as a way of life, so to say. Both the approaches combine to cover most areas of Usability helping us to gauge the overall intuitive nature of the product.
Rule- based Usability Testing
As discussed earlier, testers can follow a set of rules/guidelines in order to gauge the overall usability and “design-sanity” of the product.
1. Consistency in Design
Every product should have an overarching design template. This includes designing work flows and individual form elements.
Even though every operation and form is different, a certain sense of predictability should be achieved.
User should not have to spend a lot of time in learning a new operation every time. Conformance to these pre-defined design rules should be verified thoroughly.
2. Alignment and Placements
Another contributing factor towards predictability is the alignment and placement of elements such as buttons and input fields across the product. Even the simplest operations such as shifting the cursor from one field to another (by pressing TAB or NEXT) should be common all across.
Having said this, misplaced and un-aligned elements can not only cause a functionality failures but at times lead the user down the wrong path contributing further to bad user experience. Please see the image here for a better idea. Alignment checks should thus be carried out across the board and special exercise should be dedicated for this.
3. Number of Steps
The “Number of Steps” required to complete any transaction is again an important factor which is generally ignored during usability testing. Every unnecessary additional step rockets the user patience downwards exponentially.
Testing teams should provide feedback on operations which they feel utilize one too many steps.
4. Context Sensitive Help
Not every user is a novice nor is every user an expert. Context sensitive help should be provided for those who are clueless of what happens next. Lack of such help is actually a crime in the usability terms and should be tested for on all pages/forms of the software. It is also rude to show the user generic help everywhere and expect him to mine for the required information.
Testers should check if they can access the most important pages or links in the software from any other location directly. There should always be a menu available to the user to access important nodes such as “Home” or “Logout” or “Help”. These should also be accessible from commonly used locations.
Judgement-based Usability Testing
This is where the most interesting and most challenging exercise begins. Not only are there no specific rules to tally against but there is also no single correct approach. Based purely on judgement and experience, a tester needs to provide inputs which will eventually raise the user experience.
1. First Impressions
The initial learning curve of any software is very vital in the overall user experience. Users are tempted to explore more if they get going right from the start without hurdles. A sense of expertise for any user contributes to the products likeability.
Testers should verify the intuitive nature of navigation right at the start of testing. Once he or she gets accustomed to the work flows, it is difficult to find flaws in it. A fresh pair of eyes can find the flaws better than well trained ones.
2. Functionality enhancement
There are countless examples of good design where functionality has not only been enhanced but made more accessible.
So a good design should not just look good but also add to functionality delivery. Testing teams should weigh the overall value provided by design enhancements and ensure that it does not diminish.
3. Overall Design Feel
Lastly, how a user describes the software to his peers depends heavily on its freshness and the confidence it instils in the user. Example: An overly flashy banking application will not go down well end users and they might have doubts on the security of the application even though these two things are completely disconnected. So domain-specific cues should be adhered to while allowing creative enhancements. A tester can enact an end-user and provide unbiased feedback on his overall experience and rank his or her confidence levels. Collective feedback from the testing team can go a long way in improving the software.
Testing team thus can and should contribute heavily in improving the overall User Experience of the product. It is now that testers should judge not only right or wrong but better or worse.by