Discovery of Real World Context Event Patterns for Smartphone Devices Using Conditional Random Fields

Mobile applications are Event Driven Systems that react to user events and context events (e.g. changes in network connectivity, battery level, etc.) The large number of context events complicate the testing process. Context events may modify several context variables (e.g. screen orientation, connectivity status, etc.) that affect the behavior of an application. This work examines a data set of real-world context changes on Android phones. We collect every context event that occurs on the mobile devices of 58 Android users over 30 days to identify complex relationships and patterns. This work uses Machine Learning (ML) techniques including Conditional Random Fields (CRFs) and Deep Neural Networks (DNNs) to predict sequence labels for context events. These techniques are compared to Majority Baseline (MB). The trade-offs among these methods reveal that CRF is the most effective technique for sequence prediction/labeling of the data-set. Future work may apply the data collection strategy and ML techniques to domains for emerging technologies in areas such as Internet of Thing, smartwatches, and autonomous vehicles.

[1]  Andrew McCallum,et al.  An Introduction to Conditional Random Fields , 2010, Found. Trends Mach. Learn..

[2]  Aytug Onan,et al.  Classifier and feature set ensembles for web page classification , 2016, J. Inf. Sci..

[3]  Jürgen Schmidhuber,et al.  LSTM recurrent networks learn simple context-free and context-sensitive languages , 2001, IEEE Trans. Neural Networks.

[4]  Jan Sedivý,et al.  Deep Neural Networks for Web Page Information Extraction , 2016, AIAI.

[5]  Atif M. Memon,et al.  The first decade of GUI ripping: Extensions, applications, and broader impacts , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[6]  Kenneth Ward Church,et al.  Word2Vec , 2016, Natural Language Engineering.

[7]  Gaël Varoquaux,et al.  Scikit-learn: Machine Learning in Python , 2011, J. Mach. Learn. Res..

[8]  Lawrence R. Rabiner,et al.  A tutorial on hidden Markov models and selected applications in speech recognition , 1989, Proc. IEEE.

[9]  Penelope Sibun,et al.  A Practical Part-of-Speech Tagger , 1992, ANLP.

[10]  Alex Graves,et al.  Generating Sequences With Recurrent Neural Networks , 2013, ArXiv.

[11]  Rouvoy Romain,et al.  Reproducing Context-Sensitive Crashes of Mobile Apps Using Crowdsourced Monitoring , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[12]  Tariq M. King,et al.  Abstract flow learning for web application test generation , 2018, A-TEST@ESEC/SIGSOFT FSE.