In this article, I will mention about how mobile applications that almost everyone uses for different purposes are tested and the points to be considered while testing these applications.
Today, we use various mobile applications for many different reasons. Social media applications, banking applications, and e-commerce applications used for shopping are the most preferred mobile applications in our lives. Most of us now do most of our work in the bank via mobile banking without the need to go to the bank. E-commerce applications are now used very often for shopping, especially with the effect of the pandemic period. In line with developing technology and increasing needs, companies tend to constantly develop their mobile applications and expand their scope. Using mobile applications, as they are useful and more accessible, prevents the use of websites. As a result, mobile applications are an important part of our lives.
Let’s consider the testing processes:
In the test planning phase, the scope for testing the application is determined. At this stage, subjects such as test item feature to be tested, and test approaches are discussed. The test plan can be updated according to new requirements in the later stages of the project.
Preparation of Test Scenarios
Software test engineers begin testing the application by identifying test cases. Test scenarios are determined according to the expectations from the software developed according to the requirements of the application. We can say those test scenarios are the guide to the software testing process. Priorities may vary depending on the intended use of the application. For example, if we are testing a login screen, a successful login check may come to mind first. However, the failed login contains more than one case and needs to be tested.
- The username is correct and the password is incorrect.
- Incorrect user name, correct/incorrect password
- Username field left blank, correct/wrong password typed
- The username is written correctly / incorrectly, the password field is left blank
- Whether the show password button works after entering a character in the password field.
- Forgot password button check
- Checkbox control, if any, to remember user information
- Checking the input function with a line, if any
- SMS OTP control if available
These controls can be reduced or increased according to the needs of the application.
Creation of Test Data and Test Environment
At this stage, all necessary requirements are provided before starting the test. The data required for the test run are prepared. For example; providing data to be tested for each user type in applications with more than one user type. When the developments are completed, installing the most up-to-date version of the application in the test environment can be given as an example of the creation of the test environment. The necessary devices for manual testing and the compiler environment where the automation code will be written if automation testing is to be prepared.
A test run is a stage where the application is tested according to previously created test scenarios. Each test case is thoroughly tested.
According to the test scenarios written during the reporting phase or as a result of the exploratory tests, the problems detected are communicated to the developers with supporting materials (screenshots, screen recording, error logs, etc.). Manual and automation reports received at the end of certain processes are shared with the relevant people in the project.
Now let’s talk about the points to be considered in mobile application tests.
- The application should be checked while working together with other functions in the device. The application’s responses to these functions should be reported if any. These:
- Checking when Bluetooth is on.
- Controlling the app with internet connections such as wifi/mobile data.
- Screen recording/checking when taking screenshots.
- Check this function if the app supports / does not support screen rotation.
- Check the status of receiving a call or a message while the application is open in case there is a line on the device.
- Control should be maintained even when different applications are in the background. In case of switching between applications, the response of the tested application should be checked.
- It should be checked whether the application works as it should on different screen sizes and different operating system versions. The dynamic size of the elements in the application can minimize UI errors on devices with different screen sizes. Devices with large screens may not have problems, while devices with small screens may have UI problems. However, a bottom sheet view supported in the latest OS version may be problematic as it is not supported in previous versions.
- When development is made on the application, it may cause corruption outside the developed part of the application. In particular, the control of such situations can be made easier with automation tests. Automation scenarios are recorded and previous results are also reported. Problems can be noticed early in case of probable regression.
- There may be cases where operating systems do not behave the same. For example; While Android devices have their own back button, this button is not available on iOS devices. On iOS devices, it is possible to switch to the previous screen with a finger movement.
- How the notifications received by the application affect the application should be checked. The screens that need to be opened when the notifications are clicked should be checked, and it should be tested whether the notification sound on the device is reflected correctly when the notification is received. It should be checked that the number of unread notifications is displayed correctly on the notification panel or the icon of the application.
- It should be ensured that the data coming from the backend services are transferred to the application interface correctly. Especially in applications such as banking applications, the correct reflection of these values can cause serious problems.
- The application is tested with screen rotation to check if there is a UI-side issue.
- In applications with a payment system, it should be ensured that this infrastructure works correctly.
- The texts, messages, notification contents, and pop-up messages within the application should not differ between operating systems.
- It is necessary to test whether the application uses permissions such as location permission, and notification permission correctly and how they are controlled.
- Keyboard control should be provided. In the application, only numbers should be found on the keyboard that opens in an area where only numbers can be entered. In addition, it should be ensured that the opened keyboard does not cause a deterioration in the UI side.