Search-Based Energy Testing of Android

The utility of a smartphone is limited by its battery capacity and the ability of its hardware and software to efficiently use the device's battery. To properly characterize the energy consumption of an app and identify energy defects, it is critical that apps are properly tested, i.e., analyzed dynamically to assess the app's energy properties. However, currently there is a lack of testing tools for evaluating the energy properties of apps. We present COBWEB, a search-based energy testing technique for Android. By leveraging a set of novel models, representing both the functional behavior of an app as well as the contextual conditions affecting the app's energy behavior, COBWEB generates a test suite that can effectively find energy defects. Our experimental results using real-world apps demonstrate not only its ability to effectively and efficiently test energy behavior of apps, but also its superiority over prior techniques by finding a wider and more diverse set of energy defects.

[1]  Mark Harman,et al.  Search Based Software Engineering: Techniques, Taxonomy, Tutorial , 2010, LASER Summer School.

[2]  Mayur Naik,et al.  Dynodroid: an input generation system for Android apps , 2013, ESEC/FSE 2013.

[3]  Clément Ballabriga,et al.  EnergyPatch: Repairing Resource Leaks to Improve Energy-Efficiency of Android Apps , 2018, IEEE Transactions on Software Engineering.

[4]  Alireza Sadeghi,et al.  Energy-aware test-suite minimization for Android apps , 2016, ISSTA.

[5]  David E. Goldberg,et al.  Efficient Parallel Genetic Algorithms: Theory and Practice , 2000 .

[6]  Ming Zhang,et al.  Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof , 2012, EuroSys '12.

[7]  Christian Bird,et al.  Mining energy traces to aid in software development: an empirical case study , 2014, ESEM '14.

[8]  Yan Wang,et al.  Sentinel: Generating GUI Tests for Android Sensor Leaks , 2018, 2018 IEEE/ACM 13th International Workshop on Automation of Software Test (AST).

[9]  Tao Xie,et al.  A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications , 2013, FASE.

[10]  Ding Li,et al.  Making web applications more energy efficient for OLED smartphones , 2014, ICSE.

[11]  Abhik Roychoudhury,et al.  Automated Re-factoring of Android Apps to Enhance Energy-Efficiency , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[12]  Brink van der Merwe,et al.  Execution and property specifications for JPF-android , 2014, SOEN.

[13]  Gabriele Bavota,et al.  Optimizing energy consumption of GUIs in Android apps: a multi-objective approach , 2015, ESEC/SIGSOFT FSE.

[14]  Yepang Liu,et al.  Understanding and detecting wake lock misuses for Android applications , 2016, SIGSOFT FSE.

[15]  S. Malek,et al.  PATDroid: permission-aware GUI testing of Android , 2017, ESEC/SIGSOFT FSE.

[16]  John Regehr,et al.  Intent fuzzer: crafting intents of death , 2014, WODA+PERTEA 2014.

[17]  Alireza Sadeghi,et al.  Reducing Combinatorics in GUI Testing of Android Applications , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[18]  Sam Malek,et al.  SIG-Droid: Automated system input generation for Android applications , 2015, 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE).

[19]  Alireza Sadeghi,et al.  EcoDroid: An Approach for Energy-Based Ranking of Android Apps , 2015, 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software.

[20]  Jun Yan,et al.  Light-Weight, Inter-Procedural and Callback-Aware Resource Leak Detection for Android Apps , 2016, IEEE Transactions on Software Engineering.

[21]  Gabriele Bavota,et al.  Mining energy-greedy API usage patterns in Android apps: an empirical study , 2014, MSR 2014.

[22]  Mukul R. Prasad,et al.  Automated testing with targeted event sequence generation , 2013, ISSTA.

[23]  Uwe Aßmann,et al.  Energy Consumption and Efficiency in Mobile Applications: A User Feedback Study , 2013, 2013 IEEE International Conference on Green Computing and Communications and IEEE Internet of Things and IEEE Cyber, Physical and Social Computing.

[24]  Jan S. Rellermeyer,et al.  An empirical study of the robustness of Inter-component Communication in Android , 2012, IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2012).

[25]  Matthew L. Dering,et al.  Composite Constant Propagation: Application to Android Inter-Component Communication Analysis , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[26]  Suman Nath,et al.  PUMA: programmable UI-automation for large-scale dynamic analysis of mobile apps , 2014, MobiSys.

[27]  Jun Yan,et al.  Characterizing and detecting resource leaks in Android applications , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[28]  Xin Chen,et al.  Sketch-guided GUI test generation for mobile applications , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[29]  Hongseok Yang,et al.  Automated concolic testing of smartphone apps , 2012, SIGSOFT FSE.

[30]  Sam Malek,et al.  EvoDroid: segmented evolutionary testing of Android apps , 2014, SIGSOFT FSE.

[31]  Alessandra Gorla,et al.  Automated Test Input Generation for Android: Are We There Yet? (E) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[32]  Giuliano Antoniol,et al.  Concept Location with Genetic Algorithms: A Comparison of Four Distributed Architectures , 2010, 2nd International Symposium on Search Based Software Engineering.

[33]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[34]  Mark Harman,et al.  Crowd intelligence enhances automated mobile testing , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[35]  Enhong Chen,et al.  Systematically testing background services of mobile apps , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[36]  Marco Pistoia,et al.  Dynamic detection of inter-application communication vulnerabilities in Android , 2015, ISSTA.

[37]  Yang Liu,et al.  Guided, stochastic model-based GUI testing of Android apps , 2017, ESEC/SIGSOFT FSE.

[38]  Hui Ye,et al.  DroidFuzzer: Fuzzing the Android Apps with Intent-Filter Tag , 2013, MoMM '13.

[39]  Rui Zhang,et al.  An Empirical Study of Practitioners' Perspectives on Green Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[40]  Abram Hindle,et al.  An exploratory study on assessing the energy impact of logging on Android applications , 2018, Empirical Software Engineering.

[41]  Mark Harman,et al.  A Theoretical and Empirical Study of Search-Based Testing: Local, Global, and Hybrid Search , 2010, IEEE Transactions on Software Engineering.

[42]  Yingjun Lyu,et al.  Remove RATs from your code: automated optimization of resource inefficient database writes for mobile applications , 2018, ISSTA.

[43]  Haowei Wu,et al.  Static detection of energy defect patterns in Android applications , 2016, CC.

[44]  Jian Lu,et al.  GreenDroid: Automated Diagnosis of Energy Inefficiency for Smartphone Applications , 2014, IEEE Transactions on Software Engineering.

[45]  Abhik Roychoudhury,et al.  Detecting energy bugs and hotspots in mobile apps , 2014, SIGSOFT FSE.

[46]  George C. Necula,et al.  Guided GUI testing of android apps with minimal restart and approximate learning , 2013, OOPSLA.

[47]  Yingjun Lyu,et al.  Automated Energy Optimization of HTTP Requests for Mobile Applications , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[48]  Kun Yang,et al.  IntentFuzzer: detecting capability leaks of android applications , 2014, AsiaCCS.

[49]  Laurie Hendren,et al.  Soot: a Java bytecode optimization framework , 2010, CASCON.

[50]  Yue Jia,et al.  Sapienz: multi-objective automated testing for Android applications , 2016, ISSTA.

[51]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[52]  Lori L. Pollock,et al.  SEEDS: a software engineer's energy-optimization decision support framework , 2014, ICSE.

[53]  Reyhaneh Jabbarvand,et al.  µDroid: an energy-aware mutation testing framework for Android , 2017, ESEC/SIGSOFT FSE.

[54]  Porfirio Tramontana,et al.  MobiGUITAR: Automated Model-Based Testing of Mobile Apps , 2015, IEEE Software.

[55]  Jeff Huang,et al.  EHBDroid: Beyond GUI testing for Android applications , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).