For many so-called apps, developers and companies have not adequately ensured that the mini-programs are actually working the way they should. Therefore, computer scientists at Saarland University developed software which tests apps for the Android operating system automatically. From Mar. 5th at the computer expo Cebit in Hannover, the researchers will present how they discover failures even in popular and widespread apps by using their method. A robot arm will click itself through arbitrary apps to find their failures.
Every day, Google's smartphone operating system Android is installed on more than 1.3 million mobile terminals. After that, countless mini-programs are added from the Google Play Store onto the smartphones. However, not every app is working at 100 percent.
"It's kind of sad that Google Play needs to have a '15 minute refund period' due to the lack of quality control in their app store", a New Zealand developer already wrote last year on Twitter. An analyst even described Android as the "wild West of the apps". The computer scientists in Saarbrücken want to bring law and order into this wilderness. "Unfortunately, apps are that complex that it's costly in terms of time and also very tough to detect most of the programming errors", explains Konrad Jamrozik, doctoral candidate at the chair of Software Engineering at Saarland University in Saarbrücken.
In collaboration with his research colleague Florian Gross and professor Andreas Zeller, he developed software named "Droidmate" which tests Android apps automatically. "From now on, developers shall produce working apps with a maximum of guarantee and a minimum of effort by using Droidmate", says Jamrozik. To achieve this, Droidmate simulates the user for the apps which need to be tested. It carries out all possible operation steps, including pressing of virtual keys, and even swiping over the touch-sensitive display is planned in the near future.
In doing so, Droidmate takes advantage of novel methods. Besides graphical user interface construction, genetic algorithms are also counted among those methods. "They work quite similarly to biological evolution. Many test cases are produced arbitrarily. In the next step, those which appear useful get selected. Now, the system modifies them a little and combines them with each other to create a new generation of user input", explains Florian Gross. This generation and the following one also undergo a process of selection and new combination. By using a special optimizing technique, the researchers guarantee that every program code is tested as far as possible. Revealed failures are passed on to the developer.
In addition to the testing, Jamrozik discovers another application of Droidmate: to put a stop to apps that are spying on user data. Plus, it could be extended to define failure patterns in faulty apps and to continue to use them immediately for the testing of similar apps. "The ability to thoroughly explore interactions with an app can also serve as a basis for automatic generation of documentation of the application", explains Jamrozik.
The prototype already works for established apps with simplified algorithms. Now, the researchers are going to present them at the Cebit. They will be supported by a robot arm, which will operate apps on a tablet PC. But this is only a show for the expo visitors. The software doesn't need an arm, just the particular app for the input.
Explore further: Detecting and blocking leaky Android apps
More information: droidmate.org/