Test our products like an end-user
A while ago, I wrote a post on why I think the idea 'Think like an end-user' does not make sense to me. I don't think it's practical and useful, at least for myself. You can see the post here: https://www.dhirubhai.net/posts/hoangngocanhvietnam_the-advice-testers-should-think-like-an-activity-7112404594286096386-Ym3U?utm_source=share&utm_medium=member_desktop
Instead of having to pretend to think like someone I am not (which is very hard), I think it would be better if I test like an end-user. 'Test like end-users' means we can't just test, we need to USE our products like the customers do in their real life. By doing that, we can understand much better about the products and how our customers are benefited and served from them. Then we can discover more problems that threaten both our products and customers.
I come up with this idea when I was thinking about the differences between a tester and an end-user. And I see that we testers do not test the product as long as our end-users use them. Normally, testers join a project and work in there for a period of time. After the project is finished, they move on to another one. However, our real life users could use the product for a very long time, months after months, years after years, sometimes for their whole life. There are so many problems they can encounter over a long period of time that we cannot identify during our short testing.
These are some things that I think can help us 'test like an end-user':
1. Don't just test the happy paths. End-users don't care what happy cases are. They just do things in their own way. Testers need to go beyond those 'paths'. If we only follow 'happy paths', prepare to meet 'sad users' (and sad developers, sad managers). Try strange routes, do different things in a weird order, test with multiple user roles, mix several things up...The point is, make your tests as complex as possible to mimic the real world's scenarios.
For example: this is a happy case of an online shopping website:
1. Open the website
2. Choose what we want to buy
3. Add it to cart
4. Go to cart
领英推荐
5. Checkout
6. Close website
The thing is, literally nobody does that. I myself tend to do thousands of different things between step 1 and 6. If you're an online shopper, you know what I am talking about.
2. Pay more attention to Usability. Nobody wants to use something if it's too complicated and hard to use, no matter how well it functions. Maybe the frustration won't emerge right away. But it will be agglomerated over the time. When a product evolves, it tends to get more complicated as more features are added.
Usability is how easy it is to use the product for a real life user. It often includes Learnability (people can learn to use it fast), Operability (people can use it with minimum effort) and Accessibility (it meets accessibility standards). I see many testers tend to ignore the Usability aspect, but user's frustration and confusion is also a software bug. If we see a small chance to make the product more usable, we need to take it. Who knows it will make a huge improvement for user experience.
3. Set clear and relevant goals before do our testing. Customers use our products to solve their personal problems. The product is the solution. If their problems aren’t solved, the product does not work.
Before execute the first test, try to ask some context-free questions such as:
My point is, if we only execute written test cases without having a true goal or purpose in mind, we are just mindless robots. We must invest into our testing like the users do in our product.