An input generation system for android apps by aravind machiry, rohan tahiliani, mayur naik we present a system dynodroid for generating relevant inputs to unmodified android apps. Automated input generation techniques for testing android applications a dissertation submitted in partial ful. Verifying android applications using java pathfinder. We design a android app traffic generation system, androgenerator, which is application. However, this file protocol mechanism, when applied to mobile platforms, could cause unexpected security risks. An input generation system for android apps aravind machiry, rohan tahiliani, mayur naik. Abstractwith the prevalence of androidbased mobile devices, automated testing for android apps has received increasing attention. According to an empirical study 20, monkey reached the highest code coverage compared to other test input generation methods.
Automatically discovering, reporting kevin moran mario. Ui events clicks, drags, system events battey low, sms received, generates events with a observeselectexecute cycle. Android provides an extensible inputmethod framework that allows applications to provide users alternative input methods, such as onscreen keyboards or even speech input. May 18, 2019 machiry a, tahiliani r, naik m 20 dynodroid. In this paper, we present a novel approach and an open source.
Test generation for android for the android platform, recent years have seen a raise of powerful test generators exercising android apps. This will undoubtedly impact the users experience and even lead to economic loss. Improving dynamic analysis of android apps using hybrid. Dynodroid views an app as an eventdriven program that interacts with its environment by means of a. In modern smartphone systems, notably android and ios, each apps sensitive files are stored in their own systemprovided private file zones, which cannot be accessed by other apps or users. Dynodroid machiry, tahiliani, naik, is a more efficient and comprehensive system for input generation. Systems from the software engineering community aim at improving the app test rates by covering more code paths e. By running tests against your app consistently, you can verify your app s correctness, functional behavior, and. Qlearningbased exploration of android applications. An input method editor ime is a user control that enables users to enter text. In this paper, we present sigdroid, an automated system input generation framework for android apps that tackles these challenges.
However, owing to the large variety of events that android supports, test input generation is a challenging task. An input generation system for android apps we evaluated dynodroid on 50 opensource android apps. Automatically discovering, reporting and reproducing. An input generation system for android apps, 9th joint meeting on foundations of software engineering esecfse, pp. Acm symposium on foundations of software engineering. A survey of the main existing test input generation techniques for apps that run on the android operating system. Dynodroid views an app as an eventdriven program that interacts with its. Improving dynamic analysis of android apps using hybrid test. Dynodroid is an automated input generation system for android apps which uses technique based on a novel observe selectexecute principle. The android operating system powers all android devices. Dynodroid yes guidedrandom system, gui, text yes no no no. We randomly chose the 50 apps in our study from the android opensource apps repository fdroid.
Sigdroid combines program analysis techniques with symbolic execution 22 to systematically generate. Dynodroid views an app as an eventdriven program that interacts with. Droidbot offers uiguided input generation based on a state transition model, which is generated onthe. Citeseerx document details isaac councill, lee giles, pradeep teregowda. By instrumenting the framework once and for all, dynodroid monitors the reaction of an app upon each event in a lightweight manner. E, proceedings of the 2015 30th ieeeacm international conference on automated software engineering ase, p. Dynodroid uses random and frequencybased algorithms to dynamically generate gui tests for android applications. Dynamic analysis of applications software research. We present a system dynodroid for generating relevant inputs to unmodified android apps. This demonstration paper presents droidbot, a lightweight uiguided test input generator for android apps. However, many of the apps are released without sufficient testing work, so the users encounter a sudden app crash now and then.
Monkey 9 is a simple fuzz tester, generating random streams of user events such as clicks, touches, or gestures. In particular, the study showed that monkey achieved higher code coverage than more. An analysis of the results that discusses strengths and weaknesses of the different techniques considered and highlights possible. The major approaches can be divided into three categories. The term android can refer to either an android mobile device or to the android operating system. The random input generation method is a stateless approach that sends pseudorandom events of clicks, swipes, touch screens, scrolling etc. Automated concolic testing of smartphone apps saswat anand, mayur naik, hongseok yang, mary jean harrold. More than 40 million people use github to discover, fork, and contribute to over 100 million projects. Dynodroid, human testers, and the monkey achieved code coverage of 55%, 60%, and 53% respectively.
Dynodroid, an input generation system for android applications. Oct 24, 2017 although generating reproducible test cases for android apps is essential to developers, the existing tools do not support such a mechanism. In our comparison, we ran the tools considered on over 60 realworld apps, while evaluating their usefulness along several dimensions. Proceedings of the 20 9th joint meeting on foundations of software engineering. The android system is getting more and more popular on the mobile devices. Dynodroid using each of three different event selection strategies frequency, uniformrandom, biasedrandom.
Thus, lots of apps have sprung up to facilitate peoples daily life. Testing your app is an integral part of the app development process. They clearly expressed the need to introduce human intelligence for exercising some app functionality that cannot be exercised otherwise by an aget. As mentioned before, the stateofthepractice events generator for runtime testing of android apps is the monkey. Android dynamic testing besides our system, there are a number of other android dynamic testing systems proposed for various purposes.
Dynodroid views an app as an eventdriven program that interacts with its environment by means of a sequence of events through the android framework. They proposed a software solution, dynodroid, that is an input generation system for android applications with a technique constructed around the cycle defined by the sequence observeexecuteselect. Compared with the existing manual or synthetic traffic generation approaches, this system can automatically execute android apps and generate more representative network traffic. Model extraction, dependency extraction, sequence generation, and testcase generation. By instrumenting the framework once and for all, dynodroid monitors the reaction of an app upon each event in a lightweight manner, using it to guide the. Among them are the popular firefox, baidu and maxthon browsers, and the more applicationspecific ones, including uc browser hd for tablet users, wikipedia browser, and kids safe browser. The most related work is about automated test input generation for android, which is used to exploring useful information. Guided gui testing of android apps with minimal restart and approximate learning. Automatic input generation system for android apps dynodroiddynodroid. An input generation system for android apps, in proceedings of the 9th joint meeting on foundations of. Automatic input generation system for android apps dynodroid dynodroid. A benchmark of data loss bugs for android apps deepai.
Machine learningbased dynamic analysis of android apps with. Combining automated gui exploration of android apps with. This paper investigates the impact of code coverage on machine learningbased dynamic analysis of android malware. Machine learningbased dynamic analysis of android apps. Targeted and depthfirst exploration for systematic testing of android apps. The design principle of droidbot is to support modelbased test input generation with minimal extra requirements. After installing the desired imes, a user can select which one to use from the system. Pdf improving dynamic analysis of android apps using hybrid.
Think of it as the underlying software that instructs your device what to do, much like how the windows operating system powers laptop and desktop computers. An extensive comparative study of such techniques and tools performed on over 60 realworld android apps. Although generating reproducible test cases for android apps is essential to developers, the existing tools do not support such a mechanism. By instrumenting the framework once and for all, dynodroid monitors the reaction.
Reducing combinatorics in gui testing of android applications. An input generation system for android apps by aravind machiry, rohan tahiliani, mayur naik we present a system dynodroid for generating. Dynodroid works by viewing a mobile application as an eventdriven program that interacts. Automated generation of oracles for testing userinteraction features of mobile apps, icst 14. In order to maximize the code coverage, dynamic analysis on android typically requires the generation of events to trigger the user interface and maximize the discovery of the runtime behavioral features. An input generation system for android apps a machiry, r tahiliani, m naik proceedings of the 20 9th joint meeting on foundations of software, 20. Pdf improving dynamic analysis of android apps using. A robust and extensible test generator for android. We evaluated five input generation approaches on the 50 apps. The monkey also generated 20 times more events than dynodroid suggesting that input generated by the monkey is often redundant. This work adopts a dynamic event extraction approach similar to that of dynodroid. Trimdroid is a novel combinatorial approach for generating gui system tests for android apps.
386 597 1549 275 563 328 1154 1383 1561 745 1324 82 73 1393 1380 586 441 1172 170 932 1580 890 868 226 504 922 34 1143 1419 304 675 783