by Liudmyla Potyomkina | August 16, 2018 8:01 am
Unit testing is the first step on the long way to a high-quality software. Its main purpose is to verify code. But what about the other product aspects? Is unit testing enough for a successful release?
In the majority of cases, unit testing is not enough. Software quality includes a number of various aspects, including product compatibility, reliability, security, usability, operability, etc. It is a very complex notion that requires different testing activities to conduct.
Example
Let’s imagine that you want to buy a car in order to drive to work and back home, to drive children to school, to travel and so on. First of all, you want your car to work without any technical problems. That is what you verify with unit tests.
Besides, you take into account its color, model, brand, number of doors, size and many other parameters. And you want all these parameters to be implemented properly. Nobody wants to have a car painted poorly or a car with inconvenient seats even if it works well.
Other types of software testing are called to check all the additional aspects that are important for the end user.
It is very important not only to cover code with tests but to verify system requirements. You should make sure that all the features you are going to implement are really useful for the end users and don’t miss any important one. For example, an online photo editor without social sharing button.
Also, you cannot verify negative user scenarios[1] and product layout with the help of unit testing. But at the same time, exhaustive testing is impossible as it may take too much time and a lot of money.
To optimize the process of quality verification, you should focus on several main things: functions, end users, way and frequency of use.
Software features
There many software testing types that are called to verify a certain product feature or aspect. To select those testing types that are critical for your particular product, you should focus on the core functionality/purpose of your software. If it is a corporate website or a promo website, then its main purpose is to provide visitors with the required information in a convenient and easy-to-read form. Also, its design should be attractive. There should not be any broken images, difficult-to-read fonts, tons of text, broken links and forms that are impossible to fill.
Basing on these parameters, you can single out the following testing types: user interface, as well as graphical user interface[2], functional and definitely usability testing, are important for website verification[3].
End users
Despite the fact that every development procedure is user-oriented, software testing defines whether you have focused on a proper target group.
For instance, if it is an application for young people, then it should work fast, have a modern design and probably support the feature of social sharing. Besides, in the majority of cases, young users utilize the latest OS versions as well as device models. So don’t forget about compatibility testing[4].
Ways to use software
Ways and frequency of software usage should also be considered. If you have a software for watching, for example, football or basketball matches, then you should be ready that one day you will have hundred thousands of visitors and next day just – a few ones. Your software should be able to overstand high loads.
In case of a banking application, you should verify two-factor authentication. Do you remember iOS 11.4 with its face ID bug? You open the application, log in, turn on face ID and the application crashes. Have you already tested your app using face ID? I hope yes.
So, to ensure a positive user experience, you cannot omit unit testing as well as other software testing types.
Source URL: https://blog.qatestlab.com/2018/08/16/unit-testing-enough/
Copyright ©2024 QATestLab Blog unless otherwise noted.