Some of the most beloved digital products have one thing in common: the user is at the heart of the entire development process. Embarking on a creative digital venture has a unique set of rewards and challenges, but successfully breaking through on a competitive market is dependent on thorough software testing and smart UX.
Objectively, the quality of a product goes beyond its functionality. First and foremost, it must be capable of solving a specific problem or fulfilling a user need. Perfectly-coded products that serve no purpose cannot be considered viable.
Other than a clear purpose, the digital product should also have a sound user experience, with a design tailored to user needs. User centered design requires involvement from the user throughout every step of the design process. As Frank Chimero once said, “People ignore products that ignore people.”
User centered design is an iterative process which mixes investigative methods (e.g. competitor benchmarking) and generative methods (e.g. brainstorming) to elaborate design solutions. Decisions backed up by data lead to better UX and are easier to champion in front of stakeholders.
User centered design has 4 main stages:
- Understand the context of use – Where will the product be used? For example, the interface of a POS in a cafe is different from that of a POS in a gas station. During this stage, the most commonly used research methods are analytics reviews, stakeholder interviews, contextual enquiries, and surveys;
- Specify user requirements – What do people think the product will be able to do? What would they need it to do? Relevant actions that can be performed during this stage are user interviews, use cases, personas, and mental models;
- Design solutions – How can we make that happen, considering the budget and time constraints? At this point, the design team will start creating paper prototypes, wireframes, site maps, workflow diagrams, and any other relevant deliverables;
- Evaluate against requirements – Is the product close to matching its specific use context and fulfilling user needs?
The steps are entirely adaptable to each project’s requirements, with the important note that the user is actively involved in the evaluation of the product’s design from the earliest stages.
Don Norman, one of the creators of user centered design, also happens to be its biggest critic. Norman argues that most of the products people use on a daily basis were designed with their function in mind, not the user. Additionally, when taking into account historical evidence, people have had to adapt to products more often than products have been adapted to people.
So how come user centered design has become so popular that it is basically seen as a seal of quality for design work? The answer lies in its many benefits. Products that have been designed in a user-centric manner are more inclusive, safer, and generally sell better. Users also appreciate products that are designed with empathy.
User centered design should not be confused with human centered design, despite the fact that certain theorists use the terms interchangeably in order to avoid sounding unempathetic. The term user refers to the target audience of a specific product, and while all users are humans, not all humans are a certain product’s users.
After the interface design and user flows have been completed, the next stage in the development process is implementation. The software testing team will check how the user experience design was implemented through various techniques, one of the most popular being usability testing. This is crucial for the final look and feel of the product, as different implementations convey different experiences.
Every testing team has unique strategies and approaches when conducting usability testing, and the process can also be divided into various steps. Testers normally check if the product fulfills a set of usability heuristics, which can also be established by consulting with the UX design team.
For example, using Jacob Nielsen’s ten usability heuristics as starting points, the testing team can verify if:
- The system keeps the user informed about its state. If a user would not receive any update after submitting their card details, they would likely assume that the payment did not go through;
- The paradigms and terminology the design employs correspond to elements from real life. This makes navigation seem intuitive to the user. For example, e-commerce websites work with “product catalogs”, not “databases of items for sale”;
- Mistakes are reversible. To err is human, which is why users should always have the option to undo, cancel, and abandon the current interaction. Being unable to fix a mistake forces the user to start over, which increases the likelihood of flow abandonment;
- The design is consistent in terms of labels and iconography. People use many digital products and have formed expectations in regards to how certain elements should work. If the interface betrays user expectations, it forces that person to learn and adapt to its response, which increases the cognitive load. Great design doesn’t make people think;
- Error prevention is a priority. The interface must guide the user towards their goal and use relevant constraints to anticipate and avert errors. For example, let’s say a user is filling in a purchase form. If they write their phone number in the address field by mistake, then it’s not obvious the field is for phone numbers. Maybe you need to label the fields more efficiently instead of returning an error message during form submission;
- The interface helps users recognize elements instead of forcing them to remember what they do. Designers must help users find what they need by adequately labeling navigation fields – browsing through the interface should never be a memory exercise. For example, if a user is looking for metal casting services for the aerospace industry, they’ll find it useful to have an “Industries Served” tab in the seller’s home menu;
- Flexible processes can be carried out in different ways. Proficient users should be able to use shortcuts in order to be able to complete actions faster. For example, an editor will find it much easier to use shortcut keys like Ctrl+A, Ctrl+Z, Ctrl+S when editing a document rather than navigating with the mouse and searching for these functionalities in specific categories in the top menu;
- The design is decluttered. Content and features which do not support the user’s primary goal are distractors. For example, there’s no point in featuring a cute cat video on the homepage of a solenoid valve manufacturer;
- Error messages must be purposeful. If an error message is not plainly worded and does not indicate a solution, it does not help the user recover. The damage this does goes beyond creating frustration. Users will lose trust in the app/website and will harness negative feelings towards the company;
- All information necessary is readily available. Ideally, the system shouldn’t need any additional explanations. In case users need help understanding how to complete their tasks, it’s best to provide instructions in context.
Another usability testing method involves user focus groups consisting of people who are part of the product’s target audience. The software testing team decides on several sets of relevant in-app actions which participants will have to perform. This allows testers to gain insight in regards to how potential users solve certain tasks and where they encounter challenges.
Aside from observing how the focus group uses the app, testers also pay attention to each person’s verbal reactions and body language. Once this stage is done, they will ask participants detailed follow up questions in order to obtain a complete understanding of the identified problems.
The UX design team and the programming team responsible for the digital product’s implementation will use these findings to elaborate pertinent solutions. This process is also iterative, which means that several rounds of improvement will be necessary before the product can be green-lighted for release.
Aside from fulfilling usability requirements, you should also consider :
- Thorough function testing paired with fixing any identified issues that could have a significant impact on the customers’ satisfaction;
- Testing the performance of your digital product and improving it where necessary;
- Checking the compatibility with various platforms and systems;
- Going through the top vulnerabilities checklist in your app (at least the first 10);
- Adding any other type of testing that would give you relevant info on the areas you identified as important to your to-do list.
If left untested, these aspects can negatively impact user experience. This is why software testing plays a pivotal role in ensuring that the product works as intended and is easy to use. The UX and software testing teams work collaboratively towards the same goal. UX designs how the user will interact with the app, and the testing team brings to light anything that might hinder what is meant to be a positive experience for the user.