I. Introduction
Automated testing has received a lot of attention over the last few decades, especially to keep up with the rapid pace at which software applications are developed and deployed today. This has extended to automating web application testing as well, which offers its own unique set of challenges. Examples of such challenges are having to automatically test on multiple Browsers (and possibly multiple versions of each Browser); testing on different devices/form factors (where mobile views may differ from standard desktop views); being able to reuse test cases, or partial test scenarios, etc. To help address these challenges, tool support for web test automation has come a long way. For example, to facilitate easy test case creation without writing code, a popular option is to employ tools that allow for record and replay
Such a tool first captures inputs and actions (mouse clicks, keyboard entries, navigation commands, etc.) that occur as a web application is utilized. During playback, these inputs and actions are re-delivered to the browser engine.
such as Selenium IDE [19], which is free and open-source. In cases where writing code or scripts, while still leveraging some external tooling, is a viable option, several open-source frameworks also exist such as Selenium WebDriver [20], Appium [1], and CasperJS [6], just to name a few. To facilitate cross-browser execution of tests across a multitude of devices, offerings such as BrowserStack [5] and SauceLabs [18] exist, which allow for users to not have to maintain their own infrastructure by leveraging hosted device farms.