{"599276":{"#nid":"599276","#data":{"type":"news","title":"Georgia Tech Researchers Create DiffDroid to Detect Android App Inconsistencies","body":[{"value":"\u003Cp\u003EA new automated technique developed at Georgia Tech identifies potential platform-based glitches in Android apps. Developers will save time and money, and users will have more stable apps regardless of their Android platform.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EProfessor \u003Ca href=\u0022https:\/\/www.scs.gatech.edu\/people\/10892\/alessandro-orsos\u0022\u003E\u003Cstrong\u003EAlessandro Orso\u003C\/strong\u003E\u003C\/a\u003E and Ph.D. student \u003Ca href=\u0022https:\/\/www.cc.gatech.edu\/~mfazzini\/\u0022\u003E\u003Cstrong\u003EMattia Fazzini\u003C\/strong\u003E\u003C\/a\u003E with the School of Computer Science introduced the new technique, \u003Ca href=\u0022https:\/\/sites.google.com\/view\/diffdroid\/home\u0022\u003EDiffDroid\u003C\/a\u003E, in their paper \u003Cem\u003E\u003Ca href=\u0022https:\/\/www.cc.gatech.edu\/~mfazzini\/publications\/2017_ase_fazzini.pdf\u0022\u003EAutomated Cross-Platform Inconsistency Detection for Mobile Apps\u003C\/a\u003E\u003C\/em\u003E. Fazzini presented it at the \u003Ca href=\u0022http:\/\/ase2017.org\/\u0022\u003E32nd IEEE\/ACM International Conference on Automated Software Engineering\u003C\/a\u003E in October.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026ldquo;Doing research on Android is very rewarding because you can immediately see how the techniques you develop have the potential to positively impact a large number of people,\u0026rdquo; Fazzini said.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ETesting software is one of the most expensive and challenging parts of the development process. Testing Android apps is even harder due to the fragmentation of the ecosystem. Because apps can run on devices with different hardware, display size, and operating systems, they can exhibit cross-platform inconsistencies (CPIs), meaning they behave differently on different phones. CPIs can make or break the success of an app, which is where DiffDroid comes in.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EDiffDroid identifies CPIs through the combination of input generation, user interface modeling, and differential testing. The automated technique operates in four steps:\u003C\/p\u003E\r\n\r\n\u003Col\u003E\r\n\t\u003Cli\u003EIt automatically generates a large set of inputs for an app.\u003C\/li\u003E\r\n\t\u003Cli\u003EIt runs the app with these inputs on a reference device and builds a model of the app.\u003C\/li\u003E\r\n\t\u003Cli\u003EIt runs the app with these inputs on a wide variety of platforms.\u003C\/li\u003E\r\n\t\u003Cli\u003EIt compares the model of the app on these different platforms with the model created for the reference device, noting and reporting inconsistencies to developers.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Cp\u003EFazzini and Orso created a tool from this technique and evaluated the effectiveness of it on five real-world apps and considered more than 130 platforms. DiffDroid was able to spot 96 CPIs resulting from differences in screen resolution, screen density, and operating system. For example, users could not access the full functionality of the app on certain devices, like an important app button being no longer visible to users.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026ldquo;DiffDroid is particularly useful when it can find inconsistencies that affect an app\u0026rsquo;s functionality and can result in user frustration,\u0026rdquo; Fazzini said.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EDiffDroid can be run overnight, so that developers can get a full report of issues in the morning. Not only is DiffDroid efficient, it\u0026rsquo;s also precise, with only two out of ten reports coming up as false positives in the apps studied so far. The researchers have made the tool \u003Ca href=\u0022https:\/\/sites.google.com\/view\/diffdroid\/home\u0022\u003Eopen source\u003C\/a\u003E, so developers can use it and future researchers can build on the technique and extend it.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026ldquo;This DiffDroid idea could also become a start-up,\u0026rdquo; Orso said.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EAccording to Fazzini and Orso, this is only the beginning of this area of research. First, they hope to work with developers on how to make the tool more useful in the real world. Second, future development could extend DiffDroid so that it also finds differences in the execution of operating system APIs. Finally, they hope to design a technique to automatically repair reported inconsistencies.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EThe researchers also plan to help Android developers with ideas that follow different research directions. For instance, they plan to automatically generate test cases from bug reports by combining natural language processing with program analysis techniques. In this way, developers can spend less time analyzing reports and instead just fix the bugs.\u003C\/p\u003E\r\n","summary":null,"format":"limited_html"}],"field_subtitle":"","field_summary":"","field_summary_sentence":[{"value":"DiffDroid is a tool that detects cross-platform inconsistencies in Android apps."}],"uid":"34541","created_gmt":"2017-11-29 21:56:35","changed_gmt":"2017-11-29 22:03:02","author":"Tess Malone","boilerplate_text":"","field_publication":"","field_article_url":"","dateline":{"date":"2017-11-29T00:00:00-05:00","iso_date":"2017-11-29T00:00:00-05:00","tz":"America\/New_York"},"extras":[],"hg_media":{"599277":{"id":"599277","type":"image","title":"DiffDroid","body":null,"created":"1511992959","gmt_created":"2017-11-29 22:02:39","changed":"1511992959","gmt_changed":"2017-11-29 22:02:39","alt":"How DiffDroid works","file":{"fid":"228456","name":"DiffDroid.jpg","image_path":"\/sites\/default\/files\/images\/DiffDroid.jpg","image_full_path":"http:\/\/www.tlwarc.hg.gatech.edu\/\/sites\/default\/files\/images\/DiffDroid.jpg","mime":"image\/jpeg","size":34727,"path_740":"http:\/\/www.tlwarc.hg.gatech.edu\/sites\/default\/files\/styles\/740xx_scale\/public\/images\/DiffDroid.jpg?itok=NeL-0Njx"}}},"media_ids":["599277"],"groups":[{"id":"47223","name":"College of Computing"},{"id":"50875","name":"School of Computer Science"}],"categories":[],"keywords":[],"core_research_areas":[{"id":"39541","name":"Systems"}],"news_room_topics":[],"event_categories":[],"invited_audience":[],"affiliations":[],"classification":[],"areas_of_expertise":[],"news_and_recent_appearances":[],"phone":[],"contact":[{"value":"\u003Cp\u003ETess Malone, Communications Officer\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Ca href=\u0022mailto:tess.malone@cc.gatech.edu\u0022\u003Etess.malone@cc.gatech.edu\u003C\/a\u003E\u003C\/p\u003E\r\n","format":"limited_html"}],"email":["tess.malone@cc.gatech.edu"],"slides":[],"orientation":[],"userdata":""}}}