Robust test automation using contextual clues

Despite the seemingly obvious advantage of test automation, significant skepticism exists in the industry regarding its cost-benefit tradeoffs. Test scripts for web applications are fragile: even small changes in the page layout can break a number of tests, requiring the expense of re-automating them. Moreover, a test script created for one browser cannot be relied upon to run on a different web browser: it requires duplicate effort to create and maintain versions of tests for a variety of browsers. Because of these hidden costs, organizations often fall back to manual testing. We present a fresh solution to the problem of test-script fragility. Often, the root cause of test-script fragility is that, to identify UI elements on a page, tools typically record some metadata that depends on the internal representation of the page in a browser. Our technique eliminates metadata almost entirely. Instead, it identifies UI elements relative to other prominent elements on the page. The core of our technique automatically identifies a series of contextual clues that unambiguously identify a UI element, without recording anything about the internal representation. Empirical evidence shows that our technique is highly accurate in computing contextual clues, and outperforms existing techniques in its resilience to UI changes as well as browser changes.

[1]  Saurabh Sinha,et al.  Guided test generation for web applications , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[2]  Paolo Tonella,et al.  State-Based Testing of Ajax Web Applications , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[3]  Alessandro Orso,et al.  WEBDIFF: Automated identification of cross-browser issues in web applications , 2010, 2010 IEEE International Conference on Software Maintenance.

[4]  Vicente Ferreira de Lucena,et al.  Software Test Automation practices in agile development environment: An industry experience report , 2012, 2012 7th International Workshop on Automation of Software Test (AST).

[5]  Rob Miller,et al.  Sikuli: using GUI screenshots for search and automation , 2009, UIST '09.

[6]  Porfirio Tramontana,et al.  Rich Internet Application Testing Using Execution Trace Data , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[7]  Michael D. Ernst,et al.  Automatically repairing broken workflows for evolving GUI applications , 2013, ISSTA.

[8]  Saurabh Sinha,et al.  Efficiently scripting change-resilient tests , 2012, SIGSOFT FSE.

[9]  Rob Miller,et al.  GUI testing using computer vision , 2010, CHI.

[10]  Mauro Pezzè,et al.  Automated GUI refactoring and test script repair , 2011, ETSE '11.

[11]  Atif M. Memon,et al.  Automatically repairing event sequence-based GUI test suites for regression testing , 2008, TSEM.

[12]  Saurabh Sinha,et al.  Automating test automation , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[13]  S. Berner,et al.  Observations and lessons learned from automated testing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[14]  Alessandro Orso,et al.  CrossCheck: Combining Crawling and Differencing to Better Detect Cross-browser Incompatibilities in Web Applications , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[15]  Chen Fu,et al.  Maintaining and evolving GUI-directed test scripts , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[16]  Ali Mesbah,et al.  Automated cross-browser compatibility testing , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[17]  Eben M. Haber,et al.  CoScripter: automating & sharing how-to knowledge in the enterprise , 2008, CHI.

[18]  Rob Miller,et al.  Automation and customization of rendered web pages , 2005, UIST.

[19]  Arie van Deursen,et al.  Invariant-based automatic testing of AJAX user interfaces , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[20]  Alessandro Orso,et al.  WATER: Web Application TEst Repair , 2011, ETSE '11.