An Essential Guide to Automated GUI Testing Of Android Mobile Applications

Similar documents
Automated GUI Testing for Android Applications

On the Accuracy of Automated GUI Testing for Embedded Systems

Sketch-Guided GUI Test Generation for Mobile Applications

DroidWalker: Generating Reproducible Test Cases via Automatic Exploration of Android Apps

EMPIRICAL STUDY ON AUTOMATED GUI TESTING TECHNIQUES FOR ANDROID Madiha Yousaf a, Muhammad Haris b ab

Improving the Accuracy of. Automated GUI testing for. for Embedded Systems. FOCUS: New Perspectives on Software Quality

Web Application Testing in Fifteen Years of WSE

Copyright

Towards Mutation Analysis of Android Apps

Copyright

A Hybrid Approach for Reverse Engineering GUI Model from Android Apps for Automated Testing

Toward testing multiple User Interface versions. 1. Introduction

Copyright

Comparative Analysis of Smartphone Operating system Android Apple ios and Windows

Crowdsourced Testing Services for Mobile apps

Research Article International Journals of Advanced Research in Computer Science and Software Engineering ISSN: X (Volume-7, Issue-6)

TADS: Automating Device State to Android Test Suite Testing

A Comparative Study on Mutation Analysis for Java Applications

Towards Automatic Cost Model Discovery for Combinatorial Interaction Testing

Machines that test Software like Humans

A STUDY OF ANDROID OPERATING SYSTEM WITH RESPECT WITH USERS SATISFACTION

13 th Annual International Software Testing Conference Paper on

On Building Test Automation System for Mobile Applications Using GUI Ripping

Android PC Splash Brothers Design Specifications

Automatic Test Generation for Mobile GUI Applications

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Honours/Master/PhD Thesis Projects Supervised by Dr. Yulei Sui

AUTOMATED GUI TESTING OF SOFTWARE APPLICATIONS USING UML MODELS

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Enterprise Architecture Building a Mobile Vision. David Hunt DCH Technology Services Gill Windall University of Greenwich

WEB & MOBILE AUTOMATION

Andriod-Mobile Application Development. Mobile Application Development Workshop on Andriod Platform.

Copyright

AN EFFICIENT KEYWORD DRIVEN TEST AUTOMATION FRAMEWORK FOR WEB APPLICATIONS

Software Development for Mobile Devices

Performance Testing: A Comparative Study and Analysis of Web Service Testing Tools

Yunho Kim. Software Testing and Verification Group Daehak-ro, Yuseong-gu, Daejeon, South Korea

Verifying Android Applications using Java PathFinder

Development of Smart-CITY Based Convergent Contents Platform Using Bluetooth Low Energy Beacon Sensors

WELCOME Mobile Applications Testing. Copyright

Copyright

9 th CA 2E/CA Plex Worldwide Developer Conference 1

How Manual Testers can execute Test Automation. White Papers. Muthiah Director of Testing. Expedux on How Manual Testers

Test Case Generation for Classes in Objects-Oriented Programming Using Grammatical Evolution

A Ubiquitous Web Services Framework for Interoperability in Pervasive Environments

AdMob Mobile Metrics. Metrics Highlights. May 2010

TESTBEDS Paris

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

1) What is the difference between Mobile device testing and mobile application testing?

Keywords Web crawler; Analytics; Dynamic Web Learning; Bounce Rate; Website

MOBILE APPLICATION TESTING. TekMindz s Testing solutions for enterprises INDZ TM TEK

AN AUTOMATIC TESTING FRAMEWORK APPLIED ON LIW AND IMPLEMENTATION

Performance Analysis of Broadcast Based Mobile Adhoc Routing Protocols AODV and DSDV

Applying Model View View-Model and Layered Architecture for Mobile Applications

Proceedings of the Fourth Engineering Students Conference at Peradeniya (ESCaPe) SDN Flow Caching

International Journal of Advance Research in Computer Science and Management Studies

Smart Android GUI Testing Approaches

Change Detection System for the Maintenance of Automated Testing

An Efficient Technique to Test Suite Minimization using Hierarchical Clustering Approach

Development of a mobile application for manual traffic counts

A NOVEL APPROACH FOR TEST SUITE PRIORITIZATION

Collaborative Framework for Testing Web Application Vulnerabilities Using STOWS

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

GUIs are Event-Driven Driven Software. Choose Your Favorite EDS! Event-driven Software (EDS) in Action!

Analysis of offloading mechanisms in edge environment for an embedded application

A Design and Implementation of Universal Container

SMARTPHONE BASED SURVEILLANCE SYSTEM WITH INTRUSION DETECTION

A MODEL FOR COMPARATIVE ANALYSIS OF THE SIMILARITY BETWEEN ANDROID AND IOS OPERATING SYSTEMS

TCM: Test Case Mutation to Improve Crash Detection in Android

Competitive Analysis. Client MSC Apex Software UX Team Defenders of UX 2nd Presentation Date

A Study on Issues Associated with Mobile Network

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS

Comparison Study of Software Testing Methods and Levels- A Review

CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1

Role of Automated Testing Tools in Software Testing

MARATHI TEXT-TO-SPEECH SYNTHESISYSTEM FOR ANDROID PHONES

17655: Discussion: The New z/os Interface for the Touch Generation

Chapter 2: Operating-System Structures

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)

Development of Measurement Software Platform

Chapter 5: Vulnerability Analysis

Software verification and testing, software evolution, program analysis, and formal methods.

Porting mobile web application engine to the Android platform

Chapter 2. Operating-System Structures

Implementation of an Android Phone Based Video Streamer Using LIVE555 Streamer and FFMPEG

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Advanced Computer Graphics CS 525M: Understanding Mobile Web. Today s Dynamic Mobile Landscape

VISUAL SUMMARY SYSTEM SOFTWARE OPERATING SYSTEMS. System Software

Building Construction Management System Using Android Application

CS260 Intro to Java & Android 04.Android Intro

International Journal of Computer Engineering and Applications, Volume XII, Special Issue, September 18, ISSN SOFTWARE TESTING

Development of Performance Testing Suite Using Apache JMeter

Impact of Length of Test Sequence on Coverage in Software Testing

IUT Job Cracker Design and Implementation of a Dynamic Job Scheduler for Distributed Computation

Whitepaper on Test Automation Mechanisms for Mobile Apps

Mobile Application Development

Web Mining Using Cloud Computing Technology

A Framework for the Performance Evaluation of Operating System Emulators. Joshua H. Shaffer. A Proposal Submitted to the Honors Council

Interaction of JVM with x86, Sparc and MIPS

Preliminary Research on Distributed Cluster Monitoring of G/S Model

Transcription:

RESEARCH ARTICLE OPEN ACCESS An Essential Guide to Automated GUI Testing Of Mobile Applications Anureet Kaur *(Dept of Computer Science,Guru Nanak Dev University, Amritsar) ----------------------------------------************************---------------------------------- Abstract: Mobile platform has taken over all aspects of human activities, and researchers are emphasising on providing efficient and bug free applications running on mobile platform. As the time to market for mobile applications are very short so there is a need for techniques which are automated and provide robust and reliable applications. Although manual testing is the most popular technique for testing graphical user interfaces, but manual testing is often cumbersome and prone to errors. This paper presents a literature review of existing Automated GUI Testing of Applications techniques. Because of popularity and open-source nature of android devices the focus of research paper is on techniques used in devices. Keywords Automated, GUI, testing techniques, Mobile Applications, ----------------------------------------************************----------------------------------, But out of all these is predicted to become the largest mobile Operating System [1, 2], because of its open-source nature and many programmability features. I. INTRODUCTION Mobile devices are rapidly taking over desktop computers and are becoming a very important part of our life. As the users of the mobile devices are growing, so does the significance of quality app is becoming obligatory. Automated testing is one of the important factors in increasing application quality. The apps written for mobile devices are becoming more and more advanced and complex, adjusting to the constantly improving computational power of hardware. In this paper we focus on reviewing the techniques available for automating the testing of GUI mobile applications on platform. This paper first provides a brief introduction to android and its underlying architecture. Then discusses challenges that are faced in testing mobile application and finally provides a comparison of existing techniques for testing based on some parameters. There are many mobile platforms available in market such as Symbian, Research In Motion, BlackBerry OS, Palm OS, PSP, Windows Mobile,Apple ios and A. Overview is java based which is used or developing mobile applications and has Linux kernel. Delvik is android compiler which is responsible for converting application code written in java to machine code. The basic use of android is in developing applications running on smart phones which are capable of having touch screen interface. As shown in Figure 1 below, the platform is composed of 4 layers: platform is divided into four layers namely 1. Top Layer is Applications. Applications are running at the top layer of architecture. 2. Second layer is Application Framework layer responsible for providing services to applications which include controlling activities for each application and loading the content provider ISSN :2394-2231 http://www.ijctjournal.org Page 8

defined by each application while restricting data accessibility across applications 3. Third layer is Library/VM layer The Library/VM layer contains static libraries having common system and applications libraries for applications. It also has runtime environment which has runtime libraries and the Dalvik virtual machine 4. Bottom layer is the Linux kernel. It contains the OS and software. [3] Fig.1 Architecture of platform [3] B. Automated Testing of GUI Mobile Application In GUI based automation testing of android applications, the test scripts are written which mimic or simulate the way user interacts with graphical interface of the application. These interactions are then forming the basis for testing them with actual interactions and then differences are corrected. There are many automation tools which can be capably used to test traditional PC applications or web applications.however, for android it is difficult to use these automated tools because of various reasons such as Performance Factor, Power Factor, Band Factor, Connectivity Factor, Context Factor, Graphic Interface Factor, Input Interface Factor etc. Also due to lack of experience of android developers, android development is liable to to several kinds of multifaceted bugs which cannot be tested automatically. Automated GUI testing is to develop testing scripts which simulate user interactions with the GUI application and verify the correct behavior, state and control flow in the GUI to discover possible deviations from the expected behavior. The tests are structured against the GUI application to elucidate and clarify what is required from user perspective [4]. II. CHALLENGES WITH GUI TEST AUTOMATION IN ANDROID Some of the factors responsible for these challenges are: (1)Diversity:-The diversity of -based handsets in terms of screen size, OEM, operators. Etc. (2)Fragmentation: -Multiple devices in the market with different versions of OS -Testing applications on different OS versions is a huge challenge. (3)Testing on multiple devices: -Due to large number of devices available in the market, it is difficult to test app on every single device and Simulators are not reliable. (4)Time to market: -Time to market is reduced greatly -Very short and rapid release cycles. (5)Newer Versions -The upgraded version (typically there is a new release every 6-7 months) Overcoming these challenges is an opportunity for software testing to reach to the next level of testing, i.e. fully automated testing. has provided frameworks and tools for automated testing, and these tools can be broadly categorized as: -based test framework GUI-based testing tools Third party cloud-based testing services. III. VARIOUS AUTOMATED GUI TESTING TECHNIQUES FOR ANDROID MOBILE APPLICATIONS 1. A GUI Crawling-Based Technique for Mobile Application Testing.[5] 2. Automated GUI Testing on the Platform. [4] 3. Automating GUI testing for applications. [3] ISSN :2394-2231 http://www.ijctjournal.org Page 9

4. Experiences of System-Level Model- Based GUI Testing of an Application [6] 5. GUI Testing using computer vision.[7] 6. Using GUI Ripping for Automated Testing of Applications.[8] 7. Testing Apps through Symbolic Execution. [9] 8. Automated Concolic Testing of Smartphone Apps. [10] 9. Combining Model-based and Combinatorial Testing for Effective Test Case Generation [11] 10. A Grey-box Approach for Automated GUI-Model Generation of Mobile Applications.[12] 11. Keyword-Driven Testing Framework for Applications.[13] 12. Guided GUI Testing of Apps with Minimal Restart and Approximate Learning. [14] A review of the Automated GUI testing Techniques for Mobile Applications are shown in table 1 based on certain parameters. IV. CONCLUSIONS The Exhaustive study of various GUI based testing techniques was done on various parameters which revealed their characteristics, field of application and scope of application. Furthermore, critical limitations of the testing method were identified. So the study is helpful in selecting an appropriate methodology for requisite testing needs. [3] Hu, C., Neamtiu, I.: Automating GUI testing for android applications. In: Proc. 6 th International Workshop on Automation of Software Test. AST '11 (2011) 77-83 [4] Kropp, M. & Morales, P. 2010. Automated GUI Testing on the Platform. Proceedings of the 22nd IFIP International Conference on Testing Software and Systems: Short Papers, Montreal: CRIM, pp. 67 72 [5] D. Amalfitano, A. Fasolino, and P. Tramontana. A GUI crawling-based technique for android mobile application testing. In IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pages 252 261. IEEE, 2011 [6] Takala, T., Katara, M., Harty, J.: Experiences of system-level modelbased GUI testing of an android application. In: Proc. 2011 Fourth IEEE International Conference on Software Testing, Verifcation and Validation. ICST '11 (2011) 377-386 [7] Chang, TH., Yeh, T. & Miller RC. 2010. GUI testing using computer vision. CHI 10 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems,pp. 1535 1544. [8] Amal_tano, D., Fasolino, A.R., Tramontana, P., De Carmine, S., Memon, A.M.:Using GUI ripping for automated testing of android applications. In: Proc. 27 th IEEE/ACM International Conference on Automated Software Engineering. ASE 2012 (2012) 258-261 [9] Mirzaei, N., Malek, S., P_as_areanu, C.S., Esfahani, N., Mahmood, R.: Testing android apps through symbolic execution. In: SIGSOFT Softw. Eng. Notes. Vol-ume 37. (November 2012) 1-5 [10] Anand, S., Naik, M., Harrold, M.J., Yang, H.: Automated concolic testing of smartphone apps. In: Proc. ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. FSE '12 (2012) 59:1-59:1 [11] Nguyen, C.D., Marchetto, A., Tonella, P.: Combining model-based and combi-natorial testing for effective test case generation. In: Proc. 2012 International Symposium Software Testing and Analysis. ISSTA 2012 (2012) 100-110 [12] W. Yang, M. Prasad, and T. Xie. A grey-box approach for automated GUI-model generation of mobile applications. In FASE, 2013 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering Pages 250-265 [13] Zhongqian, Wu, Liu Shu, Li Jinzhe, and Liao Zengzeng. "Keyword- Driven Testing Framework For Applications." Proceedings of the 2ndInternational Conference on Computer Science and Electronics Engineering(ICCSEE 2013) [14] Choi, Wontae, George Necula, and Koushik Sen. "Guided GUI testing of android apps with minimal restart and approximate learning." Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applicatio ns. ACM, 2013 REFERENCES [1] http://thenextweb.com/mobile/2013/10/31/strategy-analytics-androidsmartphone-shipments-81-3-q3-2013-ios-13-4-windows-phone-4-1/ [2] http://techcrunch.com/2013/08/07/android-nears-80-market-share-inglobal-smartphone-shipments-as-ios-and-blackberry-share-slides-peridc/ TABLE 1 EXISTING AUTOMATED GUI TESTING TECHNIQUES FOR ANDROID MOBILE APPLICATIONS ISSN :2394-2231 http://www.ijctjournal.org Page 10

No Method Used to automate testing? Testing Tool Used? 1. GUI Crawler Automated android Testing tool (Robitium test framework) 2. GUI Testing on the Platform 3. Automating GUI testing for Applications 4. Experiences of System-Level Model-Based GUI Testing of an Application 5. GUI Testing using Computer Vision Framework and Positron Framework Monkey Monkey and TEMA tools Sikuli Test 6. GUI Ripper Robotium and class 7. Testing Apps Through Symbolic Execution 8. Automated Concolic Testing of Smartphone Apps 9. Combining Modelbased and Combinatorial Testing for Effective Test Case Generation Extended Symbolic Pathfinder (SPF) tool, Java Pathfinder (JPF) framework. M[agi]C http://selab.fbk.eu/m agic. Tests supported by tool? Crash testing, Regression Testing Can testers Write their own scripts? Does not support flexibity for testers to write their own tests Testers are able to write their own test cases Weakness of the method? Lack of scripting available to testers, Limited usefulness of tool in many testing activities Positron Framework would not be used for performance testing due to its slow execution times. Additional bugs are to yet to reveal. Regression testing N/A Need to make the test modelling easier. Regression testing, Testdriven development Stress testing, system testing, Acceptance testing, functional testing Automated generation of test cases performance testing, N/A Method is designed to test the GUI s visual feedback and not checking the internal functionality. Can t be used for any time-critical testing. Limited usability because Sikuli test is limited to emulator environments. Not a re-usable model for use in future testing,only for stress testing Integration of SPF tool suite with cloud testing infrastructure to detect both functional and security vulnerabilities. Works only for touch screen and does not handle input values problem effectively. Functional testing The improvement required in current approach is to investigate the automated test cases which were otherwise not automatically produced in these ISSN :2394-2231 http://www.ijctjournal.org Page 11

10. A Grey box Approach International Journal of Computer Techniques - Volume 2 Issue 6, Nov- Dec 2105 11. A Keyword driven approach 12. Guided GUI Testing of Apps with Minimal Restart and Approximate Learning ORBIT and Robotium Robotium and Testing Framework SwiftHand Functional testing, system testing, Acceptance testing Functional testing, Acceptance testing Regression testing, Functional testing executable test cases. Needs controlling the order of event sequences in crawling algorithm used. Requires more planning and longer initial time investment than going directly to the test creation stage First, the current implementation does not support Apps whose main entry routine is native. Second, the current implementation works correctly only with devices with 4.1 or higher versions. Third, SwiftHand cannot handle apps that use internet Connectivity to store data on a remote server. ISSN :2394-2231 http://www.ijctjournal.org Page 12