TESTAR - from academic protoype towards an industry-ready tool for automated testing at the User Interface level

Similar documents
Industrial Adoption of Automatically Extracted GUI Models for Testing

Latest Trends in Testing. Ajay K Chhokra

Model-based approach to design web application testing tool

Comparative Study of Automated testing techniques for Mobile Apps

An Automated Testing Tool Using UI Structure

Learn How to Test a Web Application Using the Classification Tree Method

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN:

Review of Mobile Applications Testing with Automated Techniques

Optimised Realistic Test Input Generation

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization

Test Data Generation for Web Applications: A Constraint and Knowledge-based Approach

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

PESTO: A Tool for Migrating DOM-based to Visual Web Tests

Introduction to Automated Testing

Coverage Criteria for Search Based Automatic Unit Testing of Java Programs

ScreenMatch: Providing Context to Software Translators by Displaying Screenshots

Going Interactive: Combining Ad-Hoc and Regression Testing

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

Industrial Adoption of Automatically Extracted GUI Models for Testing

Cross Platform Mobile. -Vinod Doshi

Environment Modeling for Automated Testing of Cloud Applications

Functional UI testing of Adobe Flex RIA. Viktor Gamov August,

Desktop, Web and Mobile Testing Tutorials

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)

Bailey Testing Framework. An automated graphic based GUI testing framework for TDD process.

Experiences in Test Automation for Multi-Client System with Social Media Backend

Simulation of wireless ad-hoc sensor networks with QualNet

SQL Server Business Intelligence

Testing Low Power Designs with Power-Aware Test Manage Manufacturing Test Power Issues with DFTMAX and TetraMAX

How To Test A Web Based Application Automatically

SourceMeter SonarQube plug-in

Towards Software Configuration Management for Test-Driven Development

The Hitchhiker's Guide to Mobile Apps Test Automation Galaxy

Finding Execution Faults in Dynamic Web Application

Generating Automated Test Scripts for AltioLive using QF Test

extracted Models And Their Uses In Giology Testing

Scriptless Test Automation. Next generation technique for improvement in software testing. Version 1.0 February, 2011 WHITE PAPER

Memory Management Simulation Interactive Lab

Web Application Testing. Web Performance Testing

Citrix EdgeSight for Load Testing User s Guide. Citrx EdgeSight for Load Testing 2.7

Citrix EdgeSight for Load Testing User s Guide. Citrix EdgeSight for Load Testing 3.8

A Graphical User Interface Testing Methodology

Evolutionary Testing of PHP Web Applications with WETT

Benchmarking the Performance of XenDesktop Virtual DeskTop Infrastructure (VDI) Platform

Troubleshooting GeneMapper ID-X Software for HID Laboratories. AFDAA Meeting Austin, TX Feb, 2013

Robot Task-Level Programming Language and Simulation

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

Automating Security Testing. Mark Fallon Senior Release Manager Oracle

TSM for Windows Installation Instructions: Download the latest TSM Client Using the following link:

DYNAMIC LOAD BALANCING IN A DECENTRALISED DISTRIBUTED SYSTEM

A Comprehensive Review of Web-based Automation Testing Tools

Techniques and Tools for Rich Internet Applications Testing

ACO ALGORITHM FOR LOAD BALANCING IN SIMPLE NETWORK

Model-Based Spotify. Kristian Karl

Evaluating the Efficiency of GUI Ripping for Automated Testing of Android Applications

Remote Usability Evaluation of Mobile Web Applications

View Point. Developing a successful Point-of-Sale (POS) test automation strategy. Abstract. - Sujith George

Standard Glossary of Terms Used in Software Testing. Version 3.01

Instructions for using VPN and accessing your files remotely

Android Mobile Automation Framework

Preparing to Install SQL Server 2005

EFFECTIVE APPROACH FOR DYNAMIC TEST CASE GENERATION FOR LOAD TESTING OF HTTP WEB SERVER

Welcome to EMP Monitor (Employee monitoring system):

Regression Testing Based on Comparing Fault Detection by multi criteria before prioritization and after prioritization

Web Usability Probe: A Tool for Supporting Remote Usability Evaluation of Web Sites

A GUI Crawling-based technique for Android Mobile Application Testing

Performance Testing. Why is important? An introduction. Why is important? Delivering Excellence in Software Engineering

Getting Started with STATISTICA Enterprise Programming

Automate Your BI Administration to Save Millions with Command Manager and System Manager

How do I use Citrix Staff Remote Desktop

Developing Web Browser Recording Tools. Using Server-Side Programming Technology

Model-based Automated GUI Testing For Android Web Application Frameworks

A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems

What Test Oracle Should I Use for Effective GUI Testing?

Load testing with. WAPT Cloud. Quick Start Guide

Image Processing Application Development: From Rapid Prototyping to SW/HW Co-simulation and Automated Code Generation

Optimize workloads to achieve success with cloud and big data

STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM

Application Testing Suite: A fully Java-based software testing platform for testing Oracle E-Business Suite and other web applications

How To Use Outlook On A Virtual Desktop On A Pc Or Macbook

BASED TESTING TOOL FOR EVENT DRIVEN SOFTWARE

WebMate: Generating Test Cases for Web 2.0

User Interface Test Automation and its Challenges in an Industrial Scenario

Automated Performance Testing of Desktop Applications

KnowledgeSTUDIO HIGH-PERFORMANCE PREDICTIVE ANALYTICS USING ADVANCED MODELING TECHNIQUES

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Open-Source, Web-Based, Framework for Integrating Applications with Social Media Services and Personal Cloudlets

Evaluating Software Maintenance Testing Approaches to Support Test Case Evolution

Collaborative Open Market to Place Objects at your Service

Quality assurance for mobile applications Case studies for GUI test automation. Alexandra Schladebeck

Quick Start Guide. User Manual. 1 March 2012

DEVELOPMENT OF HASH TABLE BASED WEB-READY DATA MINING ENGINE

Toad for Oracle 8.6 SQL Tuning

Towards Mitigating Human Errors in IT Change Management Process

SECTION 4 TESTING & QUALITY CONTROL

Comparative Analysis of Open Source Automated Software Testing Tools: Selenium, Sikuli and Watir

MyCloudLab: An Interactive Web-based Management System for Cloud Computing Administration

Guide to the LBaaS plugin ver for Fuel

BarTender s.net SDKs

Utilizing Domain-Specific Modelling for Software Testing

Transcription:

TESTAR - from academic protoype towards an industry-ready tool for automated testing at the User Interface level Urko Rueda, Tanja E.J. Vos, Francisco Almenar, Mirella Oreto, and Anna Esparcia Alcazar Universidad Politecnica de Valencia, Spain, Camino de vera s/n, 46022 Valencia {urueda,tvos,fraalpe2,mimarmu1,aesparcia}@pros.upv.es https://staq.dsic.upv.es/webstaq/ Abstract. Testing applications with a Graphical User Interface (GUI) is an important, though challenging and time consuming task. The state of the art in the industry are still capture and replay tools, which may simplify the recording and execution of input sequences, but do not support the tester in finding fault-sensitive test cases and leads to a huge overhead on maintenance of the test cases when the GUI changes. While search-based test case generation strategies are well researched for various areas of testing, relatively little work has been done on applying these techniques to an entire GUI of an application. In this paper we present the tool TESTAR, an automated search-based approach to test applications at the GUI level whose objective is to solve part of the maintenance problem by automatically generating test cases based on a structure that is automatically derived from the GUI. Keywords: Automated, Search-Based, Testing, User Interface level 1 Introduction Testing software applications at the Graphical User Interface (GUI) level, is a very important testing phase to ensure realistic tests from a user s perspective. From the GUI, the product functionality is accessed, which poses the GUI as a natural access point towards customer acceptance testing. Nowadays, a substantial part of GUI testing tools at industry are still based on the Capture and Replay (C/R) technique [1], which requires significant human intervention to produce application interactions. These interactions (i.e. clicks, keystrokes, drag/drop operations) are recorded by the C/R tool and used as regression tests for new product releases. However, a main concern in C/R is that of evolvable software forcing testers to fix old test cases. This is a critical maintenance problem of the technique, which makes companies to return to manual regression testing. A more advanced technique, Visual testing [2] [3],

2 Authors Suppressed Due to Excessive Length takes advantage of image processing algorithms to simulate step by step human interactions. Though visual approaches simplify the work of testers, they are slow, imprecise (prone to false positives with wrong UI element identification, and false negatives with missed UI elements), and also rely on the GUI stability. With TESTAR (Test Automation at the user interface level) [4] [5], we present a Model-Based Testing approach for testing that automatically generates and executes test cases based on a tree model (automatically derived from the GUI through the Accessibility API). Since the GUI is not assumed to be fixed tests still run even though the GUI evolves, which reduces the maintenance problem that threatens the techniques mentioned earlier. Next, the paper presents the TESTAR tool engine and its Search-Based capabilities, together with industrial cases performed to evaluate the approach. 2 TESTAR engine for Automated User Interface testing TESTAR uses the Operating System s Accessibility API, which has the capability to detect and expose a GUI s widgets, and their corresponding properties 1. Fig. 1 shows a sample TESTAR widget inspection over a simple Calculator application. The tool enables programmatic interaction with the identified widgets. It derives sets of possible actions for each state that the GUI is in and automatically selects and executes appropriate ones in order to drive the tests. In completely autonomous and unattended mode, the oracles can detect faulty behaviour when a system crashes or freezes. Besides these free oracles, the tester can easily specify some regular expressions that can detect patterns of suspicious titles in widgets that might pop up during the executed tests sequences. For more sophisticated and powerful oracles, the tester can enrich the default (Java-based) protocol that is used to drive the tests. A basic testing cycle with TESTAR can easily be setup by: (1) install the Systen Under Test (), setting the running command, and customize the testing environment for the (i.e. time to wait for the to start, desired length of a test run, etc.) (2) inspect the widgets of the s and decide on how to fine-tune the testing environment (i.e. do not click any button with the title disconnect, close or exit, etc.) (3) add simple oracles based on suspicious titles containing words like Error, Exception or Problem. (4) Define custom actions like a login with user and pass to a system, etc.). Once the the setup is ready, the customizable testing protocol (described in the following) is put in scene and performs the steps as is shown in Fig. 2: starting the, obtaining the GUI s State (a widget tree with properties detail), deriving the sensible actions from a s state (i.e. clicks, text inputs, mouse gestures), selecting and executing actions, applying oracles to check invalid states, and driving the test runs in concordance with the test settings specified by the tester (i.e. time limit, number of faults found). Additionally, TESTAR stores any suspicious sequence to a dedicated directory, which can be later replayed and carefully inspected and analysed. 1 Properties like: display position, widget size, ancestor widgets, etc.

TESTAR - Automated User Interface Testing Tool for Industry Adoption 3 Fig. 1. TESTAR widget inspector for a desktop Calculator application Protocol customization is performed through an end-user compilable Java class file, which contains the following methods (each coinciding with a phase in Fig. 2) that can be edited: // initial setup before starting test 01. void initialize(settings settings) // clean-up tasks for new test runs 02. void beginsequence() // any action to be taken during execution 03. startsystem() // step-by-step STATE of the, with an attached ORACLE 04. State getstate( system) // determines the STATE ORACLE verdict 05. Verdict getverdict(state state) // the set of available ACTIONs from a s STATE 06. Set<Action> deriveactions( system, State state) // which ACTION should be PERFORMED next (i.e. random, Search-Based) 07. Action selectaction(state state, Set<Action> actions) // runs an ACTION from a STATE, with return code (success?) 08. boolean executeaction( system, State state, Action action) // determines the stopping criteria 09. boolean moreactions(state state) // finishing tasks for an ending test run 10. void finishsequence(file recordedsequence) // determines whether to continue testing (additional runs) 11. boolean moresequences() 2.1 Applying SBSE for intelligent automated testing The default TESTAR Action selection mechanism is random (randomly selecting an action from a set of actions available in a concrete s state). To try to

4 Authors Suppressed Due to Excessive Length Oracle SCAN GUI + START 03 04 OBTAIN WIDGET TREE 11 more sequences? optional instrumentation DERIVE SET 06 OF USER ACTIONS SELECT 07 ACTION Domain Experts Action Definitions Yes STOP 10 No 09 more actions? EXECUTE 08ACTION Replayable Erroneous Sequences No Yes 05 FAULT? 05 ORACLE Fig. 2. TESTAR testing flow enhance the capabilities of TESTAR search-based techniques are investigated to intelligently guide which actions to execute over the s GUI. In [6] re-inforcement learning (Q-Learning) was investigated. The main idea was to change the probability distribution over the sequence space, so that seldom executed actions will be selected with a higher likelihood than others, in order to favor exploration of the GUI. It was found that the technique helps to better explore the s GUI to its extents, yet it does not become faster in crashing the application. In [7] Ant Colony Optimization (ACO) with a metric called the Maximum Call Tree (MCT) for the adequacy criterion was studied, adopted from [8]. MCT is used to reduce the size of existing test suites, by instrumenting the and extracting the method call tree for each generated GUI test sequence. These first experiments showed that the implementation worked, that the algorithm continuously improved the candidate solutions and eventually found a better sequence than the random strategy. Both studies leave a lot of open questions for future research work. However, since for industry random seems to be working just fine, we are currently concentrating on transferring TESTAR to practice (see next Section). 3 Conclusions TESTAR has been successfully applied in three different industrial context [9], obtaining feedback for improved innovation transfer and eventual market-adopting. Currently, TESTAR is presented as one of the research results that are transferred to industry as part of the Spanish Software Testing Innovation Alliance 2. This alliance brings together key Spanish stakeholders in software testing to jointly work to improve innovation and technology transfer from University to 2 http://innovationalliance.eu

TESTAR - Automated User Interface Testing Tool for Industry Adoption 5 SME. The objective is to increase research impact in practice, education, business and also feedback into the research. Within this context, TESTAR is currently being evaluated at PINEA (for their cloud management system Clickeen 3 ), Indenova 4 (a software technology provider for businesses and institutions) and Sopra 5 (a consultancy company that provides technology services and software). Acknowledgments. This work was financed by the FITTEST project, ICT- 2009.1.2 no 257574, the SHIP project (SMEs and HEIs in Innovation Partnerships) (reference: EACEA/A2/UHB/CL 554187) and the PERTEST project (TIN2013-46928-C3-1-R). References 1. B. N. Nguyen, B. Robbins, I. Banerjee, and A. M. Memon, Guitar: an innovative tool for automated testing of GUI-driven software, Journal of Automated Software Engineering (ASE), vol. 21(1), pp. 65-105, 2014 (DOI:10.1007/s10515-013-0128-9) 2. T. Yeh, T.-H. Chang, and R. C. Miller, Sikuli: Using gui screenshots for search and automation, In Proceedings of the 22nd annual ACM Symposium on User Interface Software and Technology (UIST), pp. 183-192, New York, NY, USA, 2009 (DOI:10.1145/1622176.1622213) 3. E. Alegroth, M. Nass, and H. Olsson, JAutomate: A tool for system- and acceptance- test automation, IEEE sixth international conference on Software testing, Verification and Validation (ICST), pp. 439-446, March 2013 (DOI:10.1109/ICST.2013.61) 4. S. Bauersfeld, and T.E.J. Vos, Guitest: a Java library for fully automated GUI robustness testing, In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 330-333. New York, NY, USA, 2012 (DOI:10.1145/2351676.2351739) 5. S. Bauersfeld, and T.E.J. Vos, A reinforcement learning approach to automated GUI robustness testing, In fast abstracts of the 4th Symposium on Search-Based Software Engineering (SSBSE), pp. 7-12, 2012. 6. S. Bauersfeld, and T.E.J. Vos, User interface level testing with TESTAR; what about more sophisticated action specification and selection?, In Proceedings of the 7th edition of the Seminar Series on Advanced Techniques & Tools for Software Evolution (SATToSE), L Aquila, Italy, July 2014, CEUR (in press). 7. S. Bauersfeld, S. Wappler, and J. Wegener, A Metaheuristic Approach to Test Sequence Generation for Applications with a GUI, In Proceedings of the Third International Symposium on Search Based Software Engineering (SSBSE), pp. 10-12, Szeged, Hungary, September, 2011 (DOI:10.1007/978-3-642-23716-4) 8. S. McMaster, and A. Memon, Call-stack coverage for gui test suite reduction, In IEEE Transactions on Software Engineering (TSE), vol. 34, pp. 99-115, 2008. 9. T.E.J. Vos, P. Kruse, N. Condori-Fernández, S. Bauersfeld, and J. Wegener, TES- TAR: Tool Support for Test Automation at the User Interface Level, In Proceedings of the International Journal of Information System Modelling and Design (IJISMD), 2015 (in press). 3 http://www.clikeen.com 4 https://www.indenova.com 5 http://www.sopra