Automated driver management for Selenium WebDriver

Selenium WebDriver is a framework used to control web browsers automatically. It provides a cross-browser Application Programming Interface (API) for different languages (e.g., Java, Python, or JavaScript) that allows automatic navigation, user impersonation, and verification of web applications. Internally, Selenium WebDriver makes use of the native automation support of each browser. Hence, a platform-dependent binary file (the so-called driver) must be placed between the Selenium WebDriver script and the browser to support this native communication. The management (i.e., download, setup, and maintenance) of these drivers is cumbersome for practitioners. This paper provides a complete methodology to automate this management process. Particularly, we present WebDriverManager, the reference tool implementing this methodology. WebDriverManager provides different execution methods: as a Java dependency, as a Command-Line Interface (CLI) tool, as a server, as a Docker container, and as a Java agent. To provide empirical validation of the proposed approach, we surveyed the WebDriverManager users. The aim of this study is twofold. First, we assessed the extent to which WebDriverManager is adopted and used. Second, we evaluated the WebDriverManager API following Clarke’s usability dimensions. A total of 148 participants worldwide completed this survey in 2020. The results show a remarkable assessment of the automation capabilities and API usability of WebDriverManager by Java users, but a scarce adoption for other languages.

[1]  Boni García,et al.  Designing and evaluating the usability of an API for real-time multimedia services in the Internet , 2016, Multimedia Tools and Applications.

[2]  Robert Feldt,et al.  Maintenance of automated test suites in industry: An empirical study on Visual GUI Testing , 2016, Inf. Softw. Technol..

[3]  J. M. Cortina,et al.  What Is Coefficient Alpha? An Examination of Theory and Applications , 1993 .

[4]  Boni García,et al.  Practical Evaluation of VMAF Perceptual Video Quality for WebRTC Applications , 2019, Electronics.

[5]  S. Downing Validity: on the meaningful interpretation of assessment data , 2003, Medical education.

[6]  Michi Henning API: Design Matters , 2007, ACM Queue.

[7]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

[8]  Filippo Ricca,et al.  Comparing the maintainability of selenium WebDriver test suites employing different locators: a case study , 2013, JAMAICA 2013.

[9]  Douglas G. Bonett,et al.  Cronbach's alpha reliability: Interval estimation, hypothesis testing, and sample size planning , 2015 .

[10]  Jesús M. Alvarado,et al.  Best Alternatives to Cronbach's Alpha Reliability in Realistic Conditions: Congeneric and Asymmetrical Measurements , 2016, Front. Psychol..

[11]  Rahul Raghvendra Joshi,et al.  Analysis and Design of Selenium WebDriver Automation Testing Framework , 2015 .

[12]  Maria Kutar,et al.  Cognitive Dimensions of Notations: Design Tools for Cognitive Technology , 2001, Cognitive Technology.

[13]  Sususmu Cato Pareto principles, positive responsiveness, and majority decisions , 2011 .

[14]  Andreas Kornstädt,et al.  Web Application Tests with Selenium , 2009, IEEE Software.

[15]  Rudolf Ramler,et al.  Economic perspectives in test automation: balancing automated and manual testing with opportunity cost , 2006, AST '06.

[16]  Antonio Vallecillo,et al.  Measuring the usability of software components , 2006, J. Syst. Softw..

[17]  Galia Novakova,et al.  Automation Testing Framework for Web Applications with Selenium WebDriver: Opportunities and Threats , 2017 .

[18]  Walter Binder,et al.  Advanced Java bytecode instrumentation , 2007, PPPJ.

[19]  S. Green,et al.  Coefficient Alpha: A Reliability Coefficient for the 21st Century? , 2011 .

[20]  Syed Mohammad Khurshaid Quadri,et al.  Framework for Automation of Cloud-Application Testing using Selenium (FACTS) , 2020 .

[21]  Umer Farooq,et al.  API peer reviews: a method for evaluating usability of application programming interfaces , 2010, CSCW '10.

[22]  Leland Wilkinson,et al.  Revising the Pareto Chart , 2006 .

[23]  Paolo Tonella,et al.  APOGEN: automatic page object generator for web testing , 2016, Software Quality Journal.

[24]  Özgür Ulusoy,et al.  Strategies for setting time-to-live values in result caches , 2013, CIKM.

[25]  H. Cleve,et al.  Locating causes of program failures , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[26]  Filippo Ricca,et al.  What 5 million job advertisements tell us about testing: a preliminary empirical investigation , 2020, SAC.

[27]  Joshua J. Bloch How to design a good API and why it matters , 2006, OOPSLA '06.