No doubt, mobile devices present an integral part of human life these days. Development of mobile applications demonstrates rocketing progress: they become a reliable helping hand for a person in the variety of life aspects, such as communication, business, entertainment and the like.
The simplicity of installing and usage is making mobile apps more and more popular and sets them apart from web applications. Still, it has to be noted that the former cannot fully replace the latter due to numerous reasons. Having discussed the issue with Tubik QA engineer Olga Krasnokutskaya, today we would like to review some benefits and features of testing iOS mobile apps.
Types and features of testing mobile apps
No doubt, every case of creating a mobile application is a sort of unique story. It needs its own deep research and specific approach to design solutions and their realization in code. Still, there are some general schemes and methods that are applicable to most cases. Olga says that working on iOS apps she takes Mobile Testing Cheat Sheet as a basis and adapts it for every specific case. As we mentioned in the full guide to creating a mobile app, testing is one of the crucial phases: it helps to reveal bugs before the app is brought out to real users. Testing enables to understand the quality of the app and find the way to improve it via real interactions.
The main difference of a mobile application in comparison to a web app is the requirement of its installing on device which has a particular platform, OS version, screen size, and variety of functions the device is able to fulfill, such as making and receiving calls, texting, taking calls and doing loads of other operations simultaneously. Let’s review the types of testing deeper in detail.
This type of testing can be carried out both in simulators and real devices. However, here in Tubik testing on a variety of real devices is recommended as a more efficient method, because simulators do not reflect all the functionality of real devices and variety of possible users’ actions. For example, simulator in Xcode can give incorrect presentation of interface elements on the screen and doesn’t allow testing an accelerometer and a camera.
Testing doesn’t end when an app is launched and used by real users: it’s a never-ending journey. Another important type is testing updated versions of the app saving all the data.
For installation of the mobile app on the device, we use several services of app distribution such as HockeyApp, Fabric, TestFlight. Each of them has both benefits and drawbacks. For instance, Hockeyapp allows installation of different app versions, while Fabric provides installation of earlier versions of the app and then updating them with later versions saving the data. TestFlight is needed to release the app on AppStore and is convenient for testing new features as it uses production certificate which speeds up check of the new build and its release on AppStore.
This type of testing enables to check if the unit of testing is correctly integrated on devices with different operation systems and on the screens of various resolutions. It’s also important to mention that, according to the latest requirements to app distribution via AppStore, any mobile app created for iPhones has to perform correctly on iPad.
One of the big advantages of the mobile application is the ability to use them “on the go”. However, this aspect determines a constant change of the Internet source and signal — GPRS/3G/4G/WiFi; users can interact with the application in conditions of good or bad connection, repetitive disconnection, Plane mode. Incoming calls and messages, device locking, limited memory available, battery charge level or accidental taps – all those things can have a great influence on the app performance. Creative approaches to testing of this kind in maximum diversity of cases is highly recommended.
This type checks the feasibility of functional requirements. Testing the functions of the app, it’s advisable for QA specialist to create test-cases or detailed check-lists. The documentation of this sort can be helpful for the team in defining possible “weak spots” even at the early stage when project requirements are analyzed.
Gestures present the core distinctive feature of mobile apps in comparison with web apps. Naturally, this difference of interactions advances specific demands to designers, developers and QA engineers working over the product. Gesture testing checks the operability for the variety of gestures such as touch, swipe, tap, multi-touch, 3D-touch, turn, shake etc.
This sort of testing is aimed at correct app performance under conditions of several active apps on the background or when the tested app is minimized. Considering the specific nature and features of the device, the application should perform adequately in case of an incoming call or screen lock, without crashing or losing data.
Another aspect to be checked is localization, in particular the format of dates and time, translation, UI adaptation etc. What makes a real difference in comparison with testing this aspect for web applications is the screen size of a mobile device. On the one hand, the content in different languages should occupy the same place on the screen to save the style and visual consistency; on the other hand, it has to be adapted considering specific features of a particular country. For example, the content for the Arab countries has to be reflected in inverted manner and requires other sizes of buttons due to specific nature of their writing.
Mobile applications for iOS have to comply with iOS Human Interface Guidelines to get to the AppStore. Basically, it has to be convenient for the user to read and use the app using one hand which means that the content and fonts have to adapt to the screen size. It’s also important to check that users understand the warnings and notifications about errors.
Testing mobile applications is mostly handled in environments and conditions which are maximum close to real life when there are several background active apps and actively used devices with a variety of settings, apps and cash data. It’s also highly advisable to remember — or it’s even better to create a detailed check-list – about the system settings of the device used for this aim, to avoid some unwanted cases, like, for example, activation of saving mode right in the process of the test.
The time-consuming aspects of app testing are imitation of incoming calls and SMS, inputting long texts, creating videos for bug-reports, handling tests on every kind of real device.
Tubik QA engineer Olga says that knowledge on the variety of test types, their benefits and pitfalls, tools and types of devices is an issue of great impact, still practice plays even bigger role for performing high-quality tests of mobile applications for iOS. It’s not reasonable to state that having a considerable experience in testing web applications, QA specialist will easily plan and accomplish mobile app testing. Certainly, there are basic methods and principles which mostly deal with functionality, still, nothing can work better than practical experience, enabling a tester to reveal more bugs in the process of mobile app development in the future. We have to remember that the price of the error found before the release is much lower for the client than the one found after launching the product. Another aspect to consider is that it’s impossible to reveal all the potential errors due to the massive amount of incoming data in terms of limited time. That is when theory becomes a great help for QA specialists because it lets them to reduce the number of test cases via using the established techniques and methods with saving the necessary test covering.
Welcome to read The Ultimate Guide to Creating a Mobile Application