skip to main content
research-article

Translating Video Recordings of Complex Mobile App UI Gestures into Replayable Scenarios

Published: 01 April 2023 Publication History
  • Get Citation Alerts
  • Abstract

    Screen recordings of mobile applications are easy to obtain and capture a wealth of information pertinent to software developers (e.g., bugs or feature requests), making them a popular mechanism for crowdsourced app feedback. Thus, these videos are becoming a common artifact that developers must manage. In light of unique mobile development constraints, including swift release cycles and rapidly evolving platforms, automated techniques for analyzing all types of rich software artifacts provide benefit to mobile developers. Unfortunately, automatically analyzing screen recordings presents serious challenges, due to their graphical nature, compared to other types of (textual) artifacts. To address these challenges, this paper introduces <sc>V2S+</sc>, an automated approach for translating video recordings of Android app usages into replayable scenarios. <sc>V2S+</sc> is based primarily on computer vision techniques and adapts recent solutions for object detection and image classification to detect and classify user <italic>gestures</italic> captured in a video, and convert these into a replayable test scenario. Given that <sc>V2S+</sc> takes a computer vision-based approach, it is applicable to both hybrid and native Android applications. We performed an extensive evaluation of <sc>V2S+</sc> involving 243 videos depicting 4,028 GUI-based actions collected from users exercising features and reproducing bugs from a collection of over 90 popular native and hybrid Android apps. Our results illustrate that <sc>V2S+</sc> can accurately replay scenarios from screen recordings, and is capable of reproducing <inline-formula><tex-math notation="LaTeX">$\approx$</tex-math><alternatives><mml:math><mml:mo>&#x2248;</mml:mo></mml:math><inline-graphic xlink:href="cooper-ieq1-3192279.gif"/></alternatives></inline-formula> 90.2&#x0025; of sequential actions recorded in native application scenarios on physical devices, and <inline-formula><tex-math notation="LaTeX">$\approx$</tex-math><alternatives><mml:math><mml:mo>&#x2248;</mml:mo></mml:math><inline-graphic xlink:href="cooper-ieq2-3192279.gif"/></alternatives></inline-formula> 83&#x0025; of sequential actions recorded in hybrid application scenarios on emulators, both with low overhead. A case study with three industrial partners illustrates the potential usefulness of <sc>V2S+</sc> from the viewpoint of developers.

    References

    [1]
    M. Nayebi, “Eye of the mind: Image processing for social coding,” in Proc. 42nd IEEE/ACM Int. Conf. Softw. Eng. New Ideas Emerg. Results, 2020, pp. 49–52.
    [2]
    Watchsend, 2019. [Online]. Available: https://new.watchsend.com
    [3]
    Testfairy, 2019. [Online]. Available: https://testfairy.com
    [4]
    Instabug, 2021. [Online]. Available: https://instabug.com/screen-recording
    [5]
    Bird eats bugs, 2021. [Online]. Available: https://birdeatsbug.com
    [6]
    R. Schusteritsch, C. Y. Wei, and M. LaRosa, “Towards the perfect infrastructure for usability testing on mobile devices,” in Proc. CHI Extended Abstr. Hum. Factors Comput. Syst., 2007, pp. 1839–1844.
    [7]
    Mr. Tappy mobile usability testing device, 2019. [Online]. Available: https://www.mrtappy.com
    [8]
    N. Bettenburg, S. Just, A. Schröter, C. Weiss, R. Premraj, and T. Zimmermann, “What makes a good bug report?,” in Proc. 16th ACM SIGSOFT Int. Symp. Found. Softw. Eng., 2008, pp. 308–318.
    [9]
    K. Mao, M. Harman, and Y. Jia, “Crowd intelligence enhances automated mobile testing,” in Proc. 32nd IEEE/ACM Int. Conf. Automated Softw. Eng., 2017, pp. 16–26.
    [10]
    K. Moran, C. Bernal-Cárdenas, M. Linares-Vásquez, and D. Poshyvanyk, “Overcoming language dichotomies: Toward effective program comprehension for mobile app development,” in Proc. 26th Int. Conf. Prog. Comprehension, 2018, pp. 7–18.
    [11]
    G. Hu, X. Yuan, Y. Tang, and J. Yang, “Efficiently, effectively detecting mobile app bugs with AppDoctorr,” in Proc. 9th Eur. Conf. Comput. Syst., 2014, pp. 18:1–18:15.
    [12]
    N. Jones, “Seven best practices for optimizing mobile testing efforts,” Gartner, Stamford, CT, USA, Tech. Rep., 2013.
    [13]
    M. Linares-Vásquez, G. Bavota, C. Bernal-Cárdenas, M. Di Penta, R. Oliveto, and D. Poshyvanyk, “API change and fault proneness: A threat to the success of Android apps,” in Proc. 9th Joint Meeting Found. Softw. Eng., 2013, pp. 477–487.
    [14]
    G. Bavota, M. Linares-Vásquez, C. Bernal-Cárdenas, M. Di Penta, R. Oliveto, and D. Poshyvanyk, “The impact of API change- and fault-proneness on the user ratings of Android apps,” IEEE Trans. Softw. Eng., vol. 41, no. 4, pp. 384–407, Apr. 2015.
    [15]
    A. Ciurumelea, A. Schaufelbühl, S. Panichella, and H. Gall, “Analyzing reviews and code of mobile apps for better release planning,” in Proc. IEEE 24th Int. Conf. Softw. Anal. Evol. Reeng., 2017, pp. 91–102.
    [16]
    A. Di Sorboet al., “What would users change in my app? Summarizing app reviews for recommending software changes,” in Proc. 24th ACM SIGSOFT Int. Symp. Found. Softw. Eng., 2016, pp. 499–510.
    [17]
    F. Palombaet al., “Recommending and localizing change requests for mobile apps based on user reviews,” in Proc. 39th Int. Conf. Softw. Eng., 2017, pp. 106–117.
    [18]
    F. Palombaet al., “Crowdsourcing user reviews to support the evolution of mobile apps,” J. Syst. Softw., vol. 137, pp. 143–162, 2018.
    [19]
    F. Palombaet al., “User reviews matter! Tracking crowdsourced reviews to support evolution of successful apps,” in Proc. IEEE Int. Conf. Softw. Maintenance Evol., 2015, pp. 291–300.
    [20]
    D. Han, C. Zhang, X. Fan, A. Hindle, K. Wong, and E. Stroulia, “Understanding Android fragmentation with topic analysis of vendor-specific bugs,” in Proc. 19th Work. Conf. Reverse Eng., 2012, pp. 83–92.
    [21]
    L. Wei, Y. Liu, and S.-C. Cheung, “Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps,” in Proc. 31st IEEE/ACM Int. Conf. Automated Softw. Eng., 2016, pp. 226–237.
    [22]
    Android fragmentation statistics, 2014. [Online]. Available: http://opensignal.com/reports/2014/android-fragmentation/
    [23]
    M. Linares-Vásquez, K. Moran, and D. Poshyvanyk, “Continuous, evolutionary and large-scale: A new perspective for automated mobile app testing,” in Proc. IEEE Int. Conf. Softw. Maintenance Evol., 2017, pp. 399–410.
    [24]
    C. Bernal-Cárdenas, N. Cooper, K. Moran, O. Chaparro, A. Marcus, and D. Poshyvanyk, “Translating video recordings of mobile app usages into replayable scenarios,” in Proc. ACM/IEEE 42nd Int. Conf. Softw. Eng., 2020, pp. 309–321.
    [25]
    I. Malavolta, S. Ruberto, T. Soru, and V. Terragni, “Hybrid mobile apps in the Google Play store: An exploratory investigation,” in Proc. 2nd ACM Int. Conf. Mobile Softw. Eng. Syst., 2015, pp. 56–59.
    [26]
    J.-W. Lin, R. Jabbarvand, and S. Malek, “Test transfer across mobile apps through semantic mapping,” in Proc. 34th IEEE/ACM Int. Conf. Automated Softw. Eng., 2019, pp. 42–53.
    [28]
    C. Bernal-Cárdenaset al., “V2s online appendix,” 2022. [Online]. Available: https://sites.google.com/email.wm.edu/video2scenario/home
    [29]
    A. Krizhevsky, I. Sutskever, and G. E. Hinton, “ImageNet classification with deep convolutional neural networks,” in Proc. 25th Neural Inf. Process. Syst., 2012, pp. 1097–1105.
    [30]
    K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in Proc. Int. Conf. Learn. Representations, 2014.
    [31]
    M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional networks,” in Proc. 13th Eur. Conf. Comput. Vis., 2014, pp. 818–833.
    [32]
    C. Szegedyet al., “Going deeper with convolutions,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2015, pp. 1–9.
    [33]
    K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2016, pp. 770–778.
    [34]
    M. Tan and Q. Le, “EfficientNet: Rethinking model scaling for convolutional neural networks,” in Proc. 36th Int. Conf. Mach. Learn., 2019, pp. 6105–6114. [Online]. Available: https://proceedings.mlr.press/v97/tan19a.html
    [35]
    A. Vaswaniet al., “Attention is all you need,” in Proc. 31st Int. Conf. Neural Inf. Process. Syst., 2017, pp. 6000–6010.
    [36]
    B. Wuet al., “Visual transformers: Token-based image representation and processing for computer vision,” 2020,.
    [37]
    I. O. Tolstikhinet al., “MLP-mixer: An all-MLP architecture for vision,” 2021,.
    [38]
    R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2014, pp. 580–587.
    [39]
    J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, and A. W. M. Smeulders, “Selective search for object recognition,” Int. J. Comput. Vis., vol. 104, no. 2, pp. 154–171, Sep. 2013.
    [40]
    N. Carion, F. Massa, G. Synnaeve, N. Usunier, A. Kirillov, and S. Zagoruyko, “End-to-end object detection with transformers,” 2020,.
    [41]
    S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards real-time object detection with region proposal networks,” in Proc. 28th Int. Conf. Neural Inf. Process. Syst., 2015, pp. 91–99.
    [42]
    Google Play screen recording apps, 2019. [Online]. Available: https://play.google.com/store/search?q=screen%20recording&c=apps
    [43]
    Android show touches option, 2019. [Online]. Available: https://tinyurl.com/show-touches
    [44]
    S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards real-time object detection with region proposal networks,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 39, no. 6, pp. 1137–1149, Jun. 2017.
    [46]
    FFmpeg tool, 2019. [Online]. Available: https://www.ffmpeg.org/
    [47]
    K. Moran, C. Bernal-Cardenas, M. Curcio, R. Bonett, and D. Poshyvanyk, “Machine learning-based prototyping of graphical user interfaces for mobile apps,” IEEE Trans. Softw. Eng., vol. 46, no. 2, pp. 196–221, Feb. 2020.
    [48]
    Tensorflow object detection API, 2019. [Online]. Available: https://github.com/tensorflow/models/tree/master/research/object_detection
    [49]
    Track touch and pointer movements, 2019. [Online]. Available: https://developer.android.com/training/gestures/movement
    [50]
    Manage touch events in a viewgroup: Use viewconfiguration constants, 2019. [Online]. Available: https://developer.android.com/training/gestures/viewgroup#vc
    [52]
    L. Gomez, I. Neamtiu, T. Azim, and T. Millstein, “RERAN: Timing- and touch-sensitive record and replay for Android,” in Proc. 35th Int. Conf. Softw. Eng., 2013, pp. 72–81.
    [53]
    [54]
    K. Moran, C. B. Cardenas, M. Curcio, R. Bonett, and D. Poshyvanyk, “The ReDraw dataset: A set of Android screenshots, GUI metadata, and labeled images of GUI components,” 2018. [Online]. Available: https://zenodo.org/record/2530277#.YrOFTy-B27M
    [55]
    T. Y. Linet al., “Microsoft COCO: Common objects in context,” in Proc. Eur. Conf. Comput. Vis., 2014, pp. 740–755.
    [56]
    K. Moran, M. Linares-Vásquez, C. Bernal-Cárdenas, C. Vendome, and D. Poshyvanyk, “Automatically discovering, reporting and reproducing Android application crashes,” in Proc. IEEE Int. Conf. Softw. Testing Verification Validation, 2016, pp. 33–44.
    [57]
    K. Moran, M. Linares-Vásquez, C. Bernal-Cárdenas, and D. Poshyvanyk, “Auto-completing bug reports for Android applications,” in Proc. 10th Joint Meeting Eur. Softw. Eng. Conf. 23rd ACM SIGSOFT Symp. Found. Softw. Eng., 2015, pp. 673–686.
    [58]
    O. Chaparroet al., “Assessing the quality of the steps to reproduce in bug reports,” in Proc. 27th ACM Joint Eur. Softw. Eng. Conf. Symp. Found. Softw. Eng., 2019, pp. 86–96.
    [59]
    Z. Qin, Y. Tang, E. Novak, and Q. Li, “MobiPlay: A remote execution based record-and-replay tool for mobile applications,” in Proc. 38th Int. Conf. Softw. Eng., 2016, pp. 571–582.
    [60]
    M. Fazzini, E. N. De A. Freitas, S. R. Choudhary, and A. Orso, “Barista: A technique for recording, encoding, and running platform independent Android tests,” in Proc. 10th IEEE Int. Conf. Softw. Testing Verification Validation, 2017, pp. 149–160.
    [63]
    Proximus, 2019. [Online]. Available: https://www.proximus.be
    [64]
    C.-C. Lin, H. Li, X. Zhou, and X. Wang, “Screenmilker: How to milk your Android screen for secrets,” in Proc. Netw. Distrib. Syst. Secur. Symp., 2014.
    [65]
    P. Krieter and A. Breiter, “Analyzing mobile application usage: Generating log files from mobile screen recordings,” in Proc. 20th Int. Conf. Hum.-Comput. Interact. Mobile Devices Serv., 2018, pp. 1–10.
    [66]
    L. Bao, J. Li, Z. Xing, X. Wang, and B. Zhou, “scvRipper: Video scraping tool for modeling developers’ behavior using interaction data,” in Proc. 37th Int. Conf. Softw. Eng., 2015, pp. 673–676.
    [67]
    C. Frisson, S. Malacria, G. Bailly, and T. Dutoit, “InspectorWidget: A system to analyze users behaviors in their applications,” in Proc. CHI Conf. Extended Abstr. Hum. Factors Comput. Syst., 2016, pp. 1548–1554.
    [68]
    T. A. Nguyen and C. Csallner, “Reverse engineering mobile application user interfaces with REMAUI,” in Proc. 30th IEEE/ACM Int. Conf. Automated Softw. Eng., 2015, pp. 248–259.
    [69]
    T. Beltramelli, “pix2code: Generating code from a graphical user interface screenshot,” in Proc. ACM Symp. Eng. Interactive Comput. Syst., 2018, Art. no.
    [70]
    C. Chen, T. Su, G. Meng, Z. Xing, and Y. Liu, “From UI design image to GUI skeleton: A neural machine translator to bootstrap mobile GUI implementation,” in Proc. 40th Int. Conf. Softw. Eng., 2018, pp. 665–676.
    [71]
    G. Hu, L. Zhu, and J. Yang, “AppFlow: Using machine learning to synthesize robust, reusable UI tests,” in Proc. 26th ACM Joint Meeting Eur. Softw. Eng. Conf. Symp. Found. Softw. Eng., 2018, pp. 269–282.
    [72]
    N. Cooper, C. Bernal-Cárdenas, O. Chaparro, K. Moran, and D. Poshyvanyk, “It takes two to TANGO: Combining visual and textual information for detecting duplicate video-based bug reports,” in Proc. 43rd IEEE/ACM Int. Conf. Softw. Eng., 2021, pp. 957–969.
    [73]
    G. Kordopatis-Zilos, S. Papadopoulos, I. Patras, and I. Kompatsiaris, “Near-duplicate video retrieval by aggregating intermediate CNN layers,” in Proc. Int. Conf. Multimedia Model., 2017, pp. 251–263.
    [74]
    Airtest project, 2019. [Online]. Available: http://airtest.netease.com/
    [75]
    “Replaykit: Command line tools for recording, replaying and mirroring touchscreen events for Android,” Mar. 9, 2019. [Online]. Available: https://github.com/appetizerio/replaykit
    [76]
    J. Jeon and J. S. Foster, “Troyd: Integration testing for Android,” Dept. Comput. Sci., Univ. Maryland, College Park, MD, USA, Tec. Rep. CS-TR-5013, 2012.
    [77]
    K. Moran, R. Bonett, C. Bernal-Cardenas, B. Otten, D. Park, and D. Poshyvanyk, “On-device bug reporting for Android applications,” in Proc. IEEE/ACM 4th Int. Conf. Mobile Softw. Eng. Syst., 2017, pp. 215–216.
    [78]
    Y. Hu, T. Azim, and I. Neamtiu, “Versatile yet lightweight record-and-replay for Android,” in Proc. ACM SIGPLAN Int. Conf. Object-Oriented Program. Syst. Lang. Appl., 2015, pp. 349–366.
    [79]
    W. Lamet al., “Record and replay for Android: Are we there yet in industrial cases?,” in Proc. 11th Joint Meeting Found. Softw. Eng., 2017, pp. 854–859.
    [80]
    D. Nurmuradov and R. Bryce, “Caret-HM: Recording and replaying Android user sessions with heat map generation using UI state clustering,” in Proc. 26th ACM SIGSOFT Int. Symp. Softw. Testing Anal., 2017, pp. 400–403.
    [81]
    J. Tuovenen, M. Oussalah, and P. Kostakos, “MAuto: Automatic mobile game testing tool using image-matching based approach,” Comput. Game, vol. 8, pp. 215–239, 2019.
    [82]
    M. Halpern, Y. Zhu, R. Peri, and V. J. Reddi, “Mosaic: Cross-platform user-interaction record and replay for the fragmented Android ecosystem,” in Proc. IEEE Int. Symp. Perform. Anal. Syst. Softw., 2015, pp. 215–224.
    [83]
    D. T. Milano, “Android ViewServer client. Contribute to dtmilano/AndroidViewClient development by creating an account on GitHub,” 2019. [Online]. Available: https://github.com/dtmilano/AndroidViewClient
    [84]
    Create UI tests with espresso test recorder, 2019. [Online]. Available: https://developer.android.com/studio/test/espresso-test-recorder
    [85]
    HiroMacro auto-touch macro - apps on Google Play, 2019. [Online]. Available: https://play.google.com/store/apps/details?id=com.prohiro.macro&hl=en
    [86]
    [ROOT] bot maker for Android - apps on Google Play, 2019. [Online]. Available: https://play.google.com/store/apps/details?id=com.frapeti.androidbotmaker_paid&hl=en_US&gl=US
    [87]
    M. Linares-Vásquez, C. Bernal-Cardenas, K. Moran, and D. Poshyvanyk, “How do developers test Android applications?,” in Proc. IEEE Int. Conf. Softw. Maintenance Evol., 2017, pp. 613–622.
    [88]
    Applause crowdsourced testing service, 2019. [Online]. Available: https://www.applause.com/crowdtesting
    [89]
    Testbirds crowdsourced testing service, 2019. [Online]. Available: https://www.testbirds.com
    [90]
    Mycrowd crowdsourced testing service, 2019. [Online]. Available: https://mycrowd.com
    [91]
    M. Linares-Vásquez, M. White, C. Bernal-Cárdenas, K. Moran, and D. Poshyvanyk, “Mining Android app usages for generating actionable GUI-based execution scenarios,” in Proc. 12th Work. Conf. Mining Softw. Repositories, 2015, pp. 111–122.
    [92]
    M. Wan, N. Abolhassani, A. Alotaibi, and W. G. J. Halfond, “An empirical study of UI implementations in Android applications,” in Proc. IEEE Int. Conf. Softw. Maintenance Evol., 2019, pp. 65–75.
    [93]
    S. Talebipour, Y. Zhao, L. Dojcilović, C. Li, and N. Medvidović, “UI test migration across mobile platforms,” in Proc. 36th IEEE/ACM Int. Conf. Automated Softw. Eng., 2021, pp. 756–767.
    [94]
    F. YazdaniBanafsheDaragh and S. Malek, “Deep GUI: Black-box GUI input generation with deep learning,” in Proc. 36th IEEE/ACM Int. Conf. Automated Softw. Eng., 2021, pp. 905–916.
    [95]
    J. Canny, “A computational approach to edge detection,” IEEE Trans. Pattern Anal. Mach. Intell., vol. PAMI-8, no. 6, pp. 679–698, Nov. 1986.

    Cited By

    View all
    • (2024)Unveiling ChatGPT's Usage in Open Source Projects: A Mining-based StudyProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644918(571-583)Online publication date: 15-Apr-2024
    • (2024)MotorEase: Automated Detection of Motor Impairment Accessibility Issues in Mobile App UIsProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639167(1-13)Online publication date: 20-May-2024
    • (2024)On Using GUI Interaction Data to Improve Text Retrieval-based Bug LocalizationProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3608139(1-13)Online publication date: 20-May-2024
    • Show More Cited By

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Software Engineering
    IEEE Transactions on Software Engineering  Volume 49, Issue 4
    April 2023
    1635 pages

    Publisher

    IEEE Press

    Publication History

    Published: 01 April 2023

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 14 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Unveiling ChatGPT's Usage in Open Source Projects: A Mining-based StudyProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644918(571-583)Online publication date: 15-Apr-2024
    • (2024)MotorEase: Automated Detection of Motor Impairment Accessibility Issues in Mobile App UIsProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639167(1-13)Online publication date: 20-May-2024
    • (2024)On Using GUI Interaction Data to Improve Text Retrieval-based Bug LocalizationProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3608139(1-13)Online publication date: 20-May-2024
    • (2023)SmartRecorder: An IMU-based Video Tutorial Creation by Demonstration System for Smartphone Interaction TasksProceedings of the 28th International Conference on Intelligent User Interfaces10.1145/3581641.3584069(278-293)Online publication date: 27-Mar-2023
    • (2023)WebUI: A Dataset for Enhancing Visual UI Understanding with Web SemanticsProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581158(1-14)Online publication date: 19-Apr-2023
    • (2022)Toward interactive bug reporting for (android app) end-usersProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549131(344-356)Online publication date: 7-Nov-2022

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media