Every day many people use mobile phones. Some of them have even more than one phone. With the growing number of smartphones and tablets, mobile applications became more and more popular. Users expect that installed applications are simple, intuitive, and work stable. So mobile application development and its testing (as a part development lifecycle) are very important nowadays. With monitoring and testing software from such suppliers as Apica Systems, they can help these applications reach their full potential as they identify any performance issues that could hinder the expansion of the app. This type of testing also helps in protecting the application from potential data breaches. Businesses often employ services, to ensure the safety of their mobile applications.
Nonetheless, at times, mobile application testing tends to be more complex than testing traditional desktop and web applications. There are specific factors that need to be considered in the testing process:
screen orientation (landscape, portrait);
screen resolution;
different OS versions;
different devices’ manufacturers;
turning on/off GPS (in Android 6 and iOS GPS and can be enabled/disabled for each app).
Functional testing is testing performed to ensure the mobile application developed according to requirements. Basic Functional test scenarios are:
check work-ability of all functions;
check the correct work of all form fields;
check the correct work of the user registration and authorization process;
check that the page scrolling scenarios are being enabled in the application as necessary;
check correct buttons working (tapping on the buttons should be displayed and after tapping on the buttons the correct actions should be done);
check search field working (if it is implemented in app);
check the app navigation menu working;
check app reaction while tap navigation buttons (Home, Back; Resent App List);
check the correct app work when it is launched and when quit from it;
check app interaction with database;
check that the application allows necessary social network options such as sharing, posting and navigation etc.;
check the correct working with payment system (if it is implemented in app);
check that the user receives an appropriate error message in case of possible exceptions(for example: “No Internet connection” if Internet is turned off);
check that the installed app does not interfere with the normal work of other applications;
check that the app saves all settings on exit;
check that the app works correctly with all appropriate languages (if the app is multilanguage);
check if app can return to initial condition after system crash or hard device reboot;
It is important to conduct Usability testing. This kind of testing is a non-functional testing technique that is a measure of how easily the app can be used by end users. The main goal is to answer the question “Can people use this app design conveniently?”. For usability testing is necessary to:
check if the design ensure visual focus on the most important elements of each screen;
ensure that the buttons have the required size and be suitable to big fingers;
ensure that the buttons are placed in the same section of the screen to avoid confusion to the end users;
ensure that the buttons, which have the same function type also have the same color;
ensure that minimal keyboard input was provided;
ensure that user can return or cancel the action if press the wrong button;
ensure that the text is simple, clear and visible for user;
ensure that the app is free of technical text display issues such as: Text cut off / Text overlapping;
ensure that the optimal font size was found;
ensure that the app can be terminated from any state and that it resumes it’s working at the same state;
ensure that the contextual menus are not overloaded because it has to be used quickly;
check visual indication of the function execution progress (for example if user moves between screens);
check correct work of zoom-in and zoom-out functions;
check availability the user’s guide to help to understand the app and use it effectively;
It is necessary to check app stable working after external interrupts:
incoming and outgoing SMS;
incoming and outgoing calls;
removing tho phone battery;
disconnect and connection USB cable;
insertion and removal memory card;
connection and disconnection the wall charger;
receiving a file/picture via Bluetooth from another device;
receiving incoming email to device;
alarm clock alarm;
low battery notification;
connection and disconnection a wired headset;
connection to wifi and then 3G and on the contrary;
notifications from another apps;
device going into sleep mode;
The app must not crash or freeze at any time while running on the device. Of course it must be free of spelling errors.
These are only the most obvious cases for the testing. Of course, each app has it’s own specific users, technical complexities, domains. It must be considered during the testing process to get bug-free and useful applications.