This week AppFutura starts a new mobile app development report series. With these reports we want to show an overview of the most important topics on app development with the insightful opinions of our top developers.
For this week's report we have interviewed Alexey Gavrilov, Marketing Manager at Redmadrobot; Vasily Malyshev, Founder and CEO at Messapps; Ravish Baliyan, Quality Analyst at Appstudioz and Greg Fraczek, CEO at Ready 4S.
Mobile app development consists of creating, developing and testing. It is very important to test every step of your development process as well as the final app before sending it to the client to make sure that you deliver your best. We have spoken with some of our top developers about mobile app testing to know how their app testing processes.
Mobile app testing checks the functionality, usability (key to commercial success, making sure that user experience is uniform), installation, security and scripting. Since the app market has grown so much in the last couple of years, having the best and original app you can develop is key to achieve thousands of downloads. There two are different ways of testing apps: manual or automated testing.
About 90% of our effort is still manual for our clients, but we have a plan to automate up to 30% of our manual testing by the end of 2016.
We use manual testing and automated. Basically, we try to test with all available resources because submitting a bug free app is very important. Each and every app goes through multiple hands-on testing stages performed by project managers who compare the functionality of the app with our comprehensive app audit for functionality. Utilizing recorded screens during testing and function-by-function analysis, manual testing is an integral part of ensuring an app’s success.
Manual and automated testing are carried out to test different features. New functionality? Use manual testing. Only testing once? Make it manual. Automated tests are essential for complex scenarios. We also have QA people who have good knowledge about various mobile automated testing tools like Appium, Robotium, Calabash, etc.
There are different types of apps in the market: native, hybrid, cross-platform and web applications. Some apps are more difficult to develop and test, but provide the final user with a greater and more customized experience according to their specific features. Cross-platform apps have the need to be tested in all the platforms they are developed for: an app can work efficiently on iOS but not on Android.
We test the applications on all the platforms for which they have been developed. We have a set of devices with different OS and hardware configurations for each platform [...] to ensure maximum coverage on different devices along with varying capabilities for each platform available in the market.
Cross-platform apps are simultaneously tested on every platform on which they will be working. It is really important for the functionalities to be the same on every platform. Cooperation of the whole team has a significant influence on the final result.
Most of our developers try manual and automated system, a mix that makes them reach almost perfection on their apps. Whether you test manually or automatically, there are a lot of different devices and softwares out there so testing can be a little bit expensive if you want to test your apps with all the available devices. You can always sign up to the waiting list of manufacturers so they loan you the smartphones and tablets they have.
What can you do to make sure your app works on all the devices available? Using real devices and emulators. Physical devices give you the opportunity to test with all the limitations and potential, but it takes time and you don’t get automatic analytics. On the other hand, emulators are easy and have all the devices in the market available. However, there are some circumstances an emulator cannot anticipate.
We use physical iOS and Android devices in our office (over 50 devices with different OS versions). We rely on real devices for many reasons but first of all because of all the differences noticed in app behavior on real platforms vs. simulators.
We test on both. Unfortunately, the simulator does not cover all the issues that might come up and therefore it is very important to test on actual devices. Testing functionality on the device(s) that the app will be used is important in ensuring real-word functional operations for final launch.
So, physical devices and simulators can be helpful, but as a developer, don’t trust only one of these platforms to test your app. Each method has its flaws, keep in mind that the smartphones, wearables and tablets out in the market differ in screen sizes, QWERTY, touch and hardware capabilities, Android, iOS, Windows Phone or Blackberry, and the app must respond the same in all those platforms.
On the other hand, unlike mobile app development, outsourcing the test part is not recommended:
It is very important the quick information flow and direct contact with programmers. It gives the possibility to react immediately to errors and problems. An Iterative model of the project forces a quick reaction to the errors so that the next iterations are tested and are ready to be presented to the client.
We have good QA resources in our company. The QA team gets involved in the project from initial phase.
It is essential that the collaboration between project managers and designers/developers is as transparent as possible so that any issues can be fixed in real-time with ease. External testing resources are only helpful to other developing companies that don’t prioritize transparency and work collaboration or simply lack the internal resources.
As we can see, the figure of a QA analyst is very important during the app testing process. And all this work, how long does it take? Every mobile app development company uses its own method, here we have some opinions about it:
Our QA efforts depend on many things starting from a certain release scope, amount of functionality implemented by our development team, client-approved requirements, number of devices under test and approved set of assumptions. For every single release QA of Redmadrobot starts with planning and efforts evaluation. Usually, this effort is about 40% from development effort.
The time for testing the application is strongly connected with the specification of the application, its appointment, the number of functionalities, and their complexity. In most of the cases, the time for testing takes 20% of the total time for the whole project. However, in special cases or in the case of some functionalities of a particular application, the tests can take even 50% of the time.
So, testing an app has to be a process with no hurries. As we’ve read on our developers opinions, to test an app is as important as a good design and a good development. After all, what’s the point of having a nice app if it doesn’t work?
Here there are some tools that may be interesting for mobile app development companies:
If you want to talk about about mobile app testing or any other interesting topic for developers, you can post it in our forum. You can also hire these top mobile app development companies from our directory.