So why is mobile app testing so important?
Hannes Lenke, TesObject’s
CCO and CFO, has drove all the way down to Munich to specifically answer this question and clear the fog around it. The talk presented at the WJAX 2013 conference in Munich
was called “Mobile App Testing in Agile Environment”.
Some questions that were answered during the talk, among many others, were: Why testing? What methods you should use in an agile environment? When is test automation useful and when not? So in case you’ve missed the talk, we’ve summed up some of the matters mentioned:
Most of mobile users won’t be unfamiliar with this message:
In today’s apps market reality, user’s ratings and reviews are the measures by which an app’s failure or success will be determined. “Your app’s rating is one of the most important factors influencing its ranking in the various lists and search results in Google Play,” says the Google Developers guide. Therefore, providing the best user experience and ensuring the app’s functional integrity
is inevitable for its survival.
What problems we may encounter?
The mobile market is highly fragmented and poses extreme challenges that must be addressed by app developers and testers. Naming some of the reasons leading to it: more than 11,000 Android devices in the market, various operating systems, different screen types, sizes and densities.
This is where testing comes in.
Studies have long showed that the later testing is implemented the higher the debugging costs will be. Although testing is implemented, most organisations still don’t have a specific approach to testing agile projects
and testing will be presented only at a later stage of the process, usually as the product is pre-released.
One of the reasons companies still fail to carry out testing in the right manner is the lack of knowledge and relevant tools when it comes to agile development.
That’s where Continuous Integration comes in. Continuous Integration is a work flow method that orchestrate the way new code is being added to a shared mainline code repository and runs a testing cycle each time a commit is being executed by the developers. With CI testing is executed continuously and with every change in the main code repository. With the right tool-chain, the testing solution notifies developers immediately should any test fail and provides detailed reports allowing devs to quickly find and fix those breaks.
A key part of a successful CI infrastructure in agile testing methods is test automation
. Rather than executing tests manually by testers who would run test scripts for each device any time an update is presented, Automated testing runs previously recorded tests with each new iteration on multiple devices and configurations automatically. Some benefits one can expect from test automation are:
- Reduce manual testing costs
- Reusable test scripts
- A wide and global coverage of device types
- Faster iterations and time to market
Testing methods that should be considered when testing in an agile environment are: unit testing, monkey testing, and UI testing. Though most of testing is done as early as possible (development phase), some practices, such as crowd testing are implemented in later stages (pre-release) should be also considered to be added to the testing strategy.
Remember, QA is always a mix of different methods but… it all comes down to the resources and budget available for the project in hand.
Got any questions? Post the at the comment box below! We will be happy to hear your thoughts.