Understanding how to use a product under test is a key skill for software testers. In the past this knowledge has come from reading requirements documentation and working with others in the development team and the wider business that are responsible for the product design. But is this enough to understand how the product will be used?
Users don’t always do what we expect. How they interact with a piece of software can be very different from what was expected. James Bach defines testing as “Questioning a product in order to evaluate it” and as testers, our role is to make sure that we asking the right questions. In order to ask the right questions we need to know what to ask. And knowing what to ask depends a lot on understanding users.
Typically there are two ways in which you, as a tester, can attempt to understand the user better. Firstly you could just ask them, or ask those within your company who have asked them. If you have a User Experience (UX) group then they are normally a good starting point. This is a great way of ensuring that you can build up an accurate and up-to-date view of who your users are, and how they might use the software you are testing. This works very well if you are testing a product which is intended to be launched to a small number of companies or users.
Mobile applications are very different. Typically they are launched to a large number of people at the same time, all of whom are able to download the application from an apps store, use it, and post their feedback in the same store, quickly and very visibly. It’s simply not practical to ask all of these people about how they use the application, nor would it likely be quick enough in order to allow for the very swift development cycles that mobile applications typically have. There is a similar problem on the web, where sites can see a large number of different types of users.
This sounds like a big problem, but fortunately there are a number of different tools which can be very useful to us in our testing efforts.
A user profile is, put simply, a document that describes a typical user of a particular application or website. It describes a fictional persona, containing all the information relevant to that persona, and an explanation of how that person would use the application or website. User profiles are typically put together by business analysts and user experience teams, and are based on interviewing subsets of actual users, or users of similar applications or websites. User profiles are extremely useful for testing before a product launches, before any information that can be gained from actual users is available. They can be an invaluable tool for testers, giving us a lot of useful information that we can use in order to put ourselves in the mind of the user as we test.
Let’s look at an example profile for a user of a mobile shopping application:
Sarah is 32, and works as a school teacher. She usually spends around £200 per month on clothes, and would love to dress like Kate Moss. She spends time shopping online, particularly Topshop and ASOS. She has little time to spend shopping in bricks and mortar stores, and normally enjoys spending what little time she has after the children have gone to bed reading fashion magazines and shopping online. She characteristically uses mobile applications and websites to browse for clothes, but prefers to buy using a desktop website, due to security fears.
A typical user profile may well contain much more information than this, but already we can see that there are some points from this that should trigger our tester’s brains.
- Sarah has little time – therefore she will want an easy to use application. We should consider usability as a key area to test.
- Sarah does not work in a technical role – so is the language used in the application too technical? Could a non-technical user understand it?
- Sarah already shops online – how does the application compare with others that are already in the market? She has probably used others and would expect this new application to be at least as reliable and easy to use.
- Sarah does not trust mobile applications due to security fears – one key area to test, and to feedback to those managing the project, should be related to how secure the application is, and whether it makes the user feel secure while they are using it, by way perhaps of the visual design or the language used in the application.
Putting your mind into that of a typical user becomes much easier once you have a starting point and user profiles can provide this.
Once an application has launched then there is much more useful information that we can get to help testing.
By embedding analytics hooks into the mobile application code then it is possible to collect information on how the users actually interact with the application and details such as how long they spend doing so. There are a number of different analytics programs available, from companies such as Google, Flurry and Geckoboard to name a few. Some can do more than just record what a user is doing and may include advanced features such as estimating the age and gender of users.
Assuming that the application you are testing has analytics code embedded in it (and if it doesn’t then you should be asking the project management why it doesn’t) then you can ask for access to the data. Understanding how real users are using the application can give you some great ideas on areas to test. Maybe users spend a long time on a particular area of the application. Why is that? Is that screen not intuitive enough, or are there bugs that they are trying to work around?
Find out which parts of the application most users interact with, and make sure that this feeds into your regression testing.
Analytics are a holy grail for testers and we should all be asking for and looking at them.
You may have a dedicated usability team where you work, or the company may use a third party. Or maybe there is no team at all. But assuming that there is, you should make them your friends. They hold a great deal of information that can be very useful to you, as a tester.
The usability team will normally spend time running usability tests, together with real users of either the application, or similar ones in the target market. These may take the form of sessions where users are interviewed, or observed, using either real applications or mock-ups, in order to understand how they interact with them. The findings can then be fed back to the designers of the application, in order to make it more usable. For example, the layout of a particular screen may not be logical to most users; perhaps on-screen buttons are not in a familiar place, or they change positions on subsequent screens, and this has led to users being confused on how to carry out a particular interaction. Perhaps the design of a certain screen looks great on an iPhone but awful on an iPad.
Being able to understand how real users interact with an application is very useful when planning testing. The usability team are also a great oracle, when it comes to information about common mistakes in the design of applications. Make them your friends.
What Makes Mobile Users a Bit Different
A lot of what I have told you has not been specific to mobile. User profiling, analytics and usability are equally important on the web, and have been used for a long time. However, mobile users are not always like web users and mobile applications are not always like websites.
People have a greater emotional attachment to their mobile devices, and the applications on them. Often they are the first thing they see in the morning and the last thing they see at night. Mobile applications are typically used in situations where information or a service is needed quickly and critically. A user’s patience with a mobile application can be lower than a website – they can get frustrated more quickly when applications don’t work or when they are not intuitive to use. Mobiles are supposed to be simple, right?
Mobile application stores make it very easy and quick to provide highly visible feedback on application quality to a lot of people. Jerry Weinberg defines quality as “Value to some person” and James Bach and Michael Bolton expand this to “Quality is value to some person who matters”. Those people who matter are able to quickly tell the world what’s wrong about an application. As testers it’s our duty to ensure we try and understand them as much as we can and use that knowledge to drive our testing.
What will you do tomorrow now that you understand your mobile user better?
If you want to learn more about how to understand the mobile user, and more about mobile software testing in general then sign-up for Stephen’s Mobile Software Testing course, on 26th March in Brighton
About the Author
Stephen Janaway has been involved with software testing for over 13 years, starting as a Test Engineer and has worked in various Test and Delivery Management roles for a variety of companies. Currently he’s a Test Manager focusing on mobile and web testing, test automation and software delivery optimisation. Previously he’s worked for three of the major mobile device manufacturers, as well as advising a number of mobile application developers on testing and delivery strategies.
Stephen loves talking to others about software testing, test techniques and the mobile device and application world in general. You can contact him on Twitter (@stephenjanaway) or via his blog (www.stephenjanaway.co.uk).