What to test and how to do it — in theory
In the previous article, we’ve covered basics about test automation and TestProject’s functionalities. We’ve also installed TestProject Agent and, from the technical point of view, we’re ready to perform our first tests. However, before we do that, I think it’s important to know what software testing is all about. It’s also important to understand the basic principles and steps in testing. This exactly will be the topic of this article.
As we’ve already mentioned, TestProject is built upon Appium and Selenium. It combines their purposes and allows us to record and develop functional test automation scenarios:
· web applications
· mobile applications — Android & iOS
· additional functionalities via Addons library
· and much, much more which we’ll discuss in further details in the future articles in this series!
Application testing steps
It’s very important to understand the basic principles of software testing. Having a good tool such as TestProject won’t give us good results unless we understand how to use and apply all its possibilities. Quote by Christin Wiedemann suggests exactly my point:
“Just like with everything else, tools won’t give you good results unless you know how, when, and why to apply them. If you go out and you buy the most expensive frying pan on the market it’s still not going to make you a good chef.”
Even though there are differences between testing web and mobile applications, there are certain principles and steps that can be applied, no matter what applications we’re testing.
As the name suggests, a web application is not the application installed locally on the user’s device. Rather, it runs in a web browser and can be reached on any device having an Internet connection. Mobile applications are, of course, applications that run on your mobile phone, with Android and iOS being the two most popular mobile operating systems in the world. We need to have those differences between web and mobile apps when discussing how to test them. Here are the basic steps that we need to make when testing apps:
· functional testing
· usability testing
· interface testing
· compatibility testing
· performance testing
· security testing
Functional testing is testing that ensures all the functionalities of the application are executed according to the requirement, i.e. the application does what it should do. When testing functionality, there’s no much difference between web and mobile apps.
As an example of a web application, say it’s an online shop application. We’ll need to test the ability to register, log in, search for products, put them in our basket, place an order, pay for it, print the order confirmation, log out, etc.
In case it’s a mobile application, e.g. taxi application, we’ll need to test whether the applications display your location, number of taxis in a given range, their availability, distance from your location, distance to your destination, price, etc.
It’s the kind of testing that tells us how easy it is to use the application. The scenario is constructed, consisting of certain tasks that have to be performed and it is checked how easy it should be for an end-user to perform all those tasks. It’s something that leans on functional testing. Once it’s verified that the application performs tasks as expected, usability testing verifies how easy it is to perform them.
When performing usability testing on mobile apps, it has to be taken into account that the usability is also influenced by the device used. So certain specifics should be taken into account, such as type of device, device manufacturer, screen orientation, screen resolution, GPS, etc.
The interface allows the user to communicate with a device. When talking about web app testing, we’re trying to test the interaction between the web server and app server, as well as the app server and database. We should test whether this communication is performed without errors. If there are errors, they should be displayed accordingly, which we will also test, as well as connection interruption.
When testing a mobile app, there are some specifics such as communication with other apps on the device, usage of microphone and camera, etc.
Since we already know that web application runs in a web browser, we will use compatibility testing to test whether the application runs properly in the most popular web browsers and how it’s displayed.
The principle is the same when talking about mobile apps. However, here we also need to test the compatibility with different OS versions, different device manufacturers as well as devices itself.
Since one of the main characteristics of web app is it being used by a large number of users at the same time, this is what we’re going to test here. We will test the ability of the application to perform normally while it’s being used by hundreds, thousands, maybe even millions of users at the same. Depending, of course, on the purpose of the application. It’s also important to stress test the application, which means finding out how much load the application can take before it stops working.
Here, differences between web and mobile apps are not significant.
This kind of testing is designed to find the application’s weak points, its vulnerability to attacks and security breaches to ensure data integrity and confidentiality. Depending on the test results, certain strategies on how to overcome the application’s security weaknesses.
Regarding security testing, the principles when testing web and mobile apps are generally the same.
One of the cool TestProject’s features is addons. As we mentioned in the previous article, they give you additional functionalities for testing. Those are not different types of apps that we’re testing or different types of tests. They’re enhancements that help you perform one of those types of tests that we’ve already mentioned. That’s why it was also important to understand what are the basic types of tests. That way we will better understand different addons, how to choose between them based on what we’re trying to achieve and how to use them.
In this article, we’ve covered some theoretical principles of web and mobile app application testing. Since TestProject provides us with great Addons, it was also important to explain how they fit in the whole picture of application testing. Now that we understand the basic principles, I think it’s time that we create our first test and apply what we’ve learned so far.