Mobile Testing in Software Industry using Agile: Challenges and Opportunities

Author(s): Andreia Santos, Igor Correia
Venue: 2015 IEEE 8th International Conference on Software Testing, Verification and Validation
Date: 2015


As the number of mobile device users continues to grow, it is important for Software Engineers to recognize that testing mobile applications involves using methods beyond the standard testing tools. It is sometimes essential that mobile applications be tested manually, and this provides a greater challenge when the application is developed under agile methodologies since automated tests will be used. Some of the technical constraints of testing a mobile application include: variety of platforms, battery, approval for publication, and abiding all standards, protocols,and network technologies. It is necessary to test user interfaces, families of hardware and software, sensors, and any interactions with other applications.

For mobile application development, it is recommended to set up automated tests and a continuous integration environment early in the project so that testers are free to worry about other things such as edge cases or integration testing. We will now examine two real apps made by the INDT company that use NFC communication. Both apps uses NFC once the devices tap to share information including photos, payments, and more. This involved testings device functionality that was beyond features such as NFC touch point and Wifi configuration. The first of the three main suggestions offered is to test with real devices and simulators, but to test as much as possible using simulators. Only use real devices later in the sprint to validate performance, safety, and usability objectives. The second suggestion is to automate wherever possible. Create scripts to playback functionality for both real and emulated devices to save time and execute more test cases. The final suggestion is to implement lightweight testing strategy. This means that functional testing should involve acceptance testing of user stories while technical testing should verify security, performance, and data retention rules. In conclusion, testing mobile applications involves a new set of tools not used in traditional software testing. Even teams executing agile methodologies, TDD, and regression testing usually cannot fully test for scalability, security, and system integrations without help. Especially with regards to mobile application development, it is important to consider the tradeoffs when choosing what testing methodologies and techniques to apply.