This week we talked to Andrei, one of our iOS mobile testers. At Thinslices, our colleagues perform both automated and manual tests.
During the last decade, testing has become an almost vital part of any type of development, but it is of utmost importance in creating mobile apps, where users’ expectations are exceptionally high. Testing is somewhat similar to a hidden object game: errors must be found in order to be eliminated. Anything from functionality to user interface and usability is estimated and perfected during a regular testing process.
Mobile app testing. Best practices.
Andrei says that the first key to a successful iOS app testing process is to start early. This presumes that some key features of testing must be taken care of while development is still in progress. In fact, testing isn’t just an individual portion of the entire process through which, ultimately, a mobile app is created. Consistent and continuous talks between testers and developers take place every day.
Another tip that Andrei recommends in this case is to use real devices for testing and do it as often as possible. For instance, if you develop mobile products for iOS devices, test the way they react with an iOS device. The same goes for Android development. Testing on an emulator is different and it frequently results in various outcomes. On the other hand, performing automated testing on a real device usually takes more time, which is why it is often ignored or delayed towards the end of the testing process. However, using real devices vividly exposes the behavior of an app.
According to Andrei, it is futile to look for the absolute best way to test a mobile product. In fact, it should be tested both using manual and automated testing techniques. Since each automated technique presents either advantages or disadvantages, it isn’t a matter of making a choice between one or the other. Both are equally important and should be applied all along the testing process. From an automation point of view, usability testing is both the most common and the most important one.
What are the best tools for testing iOS apps?
Andrei says there is a wide range of testing tools that currently exist on the market, such as Frank, Appium or MonkeyTalk.
Frank is a tool used for writing structured text tests, acceptance tests and requirements (with the help of Cucumber). The smart part about using Frank is it allows a tester to execute pieces of text against the iOS application that is in the course of development.
As is the case of Frank, Appium is an open source test automation framework, that can be employed for testing both native and hybrid applications. By using Appium, iOS and Android applications are driven through the WebDriver JSON wire protocol. MonkeyTalk is used for automating practical, interdependent and correlative tests, for native and hybrid apps, both on real devices and on simulators.
From this multitude of available options, the Thinslices team has chosen Calabash for its development process. This tool is also used for writing and executing automated tests. Calabash is cross-platform and can assist in testing native apps for Android and iOS devices. Calabash is composed of a number of libraries with the help of which test-code can come into contact with native and hybrid apps. It’s also open source and free. Interactions between the test-code and the apps are actual end-user actions, such as gestures, assertions and screenshots. To quote from the official Calaba.sh site, "Calabash provides APIs that are specialized to native apps running on touch screen devices".
According to Andrei, Calabash is not only versatile and intuitive, but it also makes the iOS device testing process a quick and fun experience.
How are iOS apps tested before they are launched to the public?
As is the case of any other apps, iOS apps are also tested using both manual and automated testing. The only difference is that mobile apps can be tested on both simulators and real devices, but testing on the real device is preferred because the app will ultimately run on a device instead of a simulator.
Mobile application testing resources
Development and iPhone app testing are similar from one main point of view: they both require consistent and continuous learning. Andrei enjoys keeping updated to his domain, which is why he’s put together a list of resource recommendations.
First come the LinkedIn forums which he joined some years ago, in an attempt to find out more about what’s being released in the field of testing:
Eager learners are always interested in finding out more about the tools they use. Doing so is possible with the help of online tutorials:
A useful blog for testers is Bug Huntress, as it contains articles about automation tools, testing strategies, quality control and assistance and an entire plethora of testing ideas and tips.
Finally, Andrei claims that reading about the process is what keeps testers on the hook. He has selected two interesting titles that he thinks would be helpful: