Selenium for Automated Test Development
Test automation is a hugely important part of modern agile software development. In this blog, we are going to focus on just one part of the challenge of testing in software development – building comprehensive software testing for user interfaces (UI).
User interfaces present a challenge for test development because of the complexity of user interaction with the software product. Most application user interfaces have users making choices, for instance, “where to save a file?”, “what to print?”, or “what file(s) to open?”, and these choices grow application pathways that require validation by manual or automated testing. Agile software development typically puts further demands on the software testing because of the requirement to have testing completed within the short agile iteration timeboxes. It is not uncommon for Agile Scrum teams to require their full testing validation to be complete within a two-week Scrum sprint cycle. These time constraints put more pressure on the testing approach and most importantly, the decision for which testing tools to rely on.
This blog illustrates some of our observations during our trial adoption of the automated testing tool Selenium, in our journey to providing automated testing for our Agile software development.
Our first challenge in the adoption of automated testing for our software development was to build a system that enabled us to write and run automated tests. Building these tools and test capabilities from scratch is normally way too expensive for software teams, and there is a myriad of automated software testing frameworks available to make the adoption much simpler. We investigated some common choices but settled on building our automation using the Selenium framework. Many of our developers had experience with Selenium automation testing development, and that made the choice of Selenium easy for our team.
Our second challenge for our software testing approach was to ensure that our testing could accommodate complex application user interface components, like user prompts and user dialogs, because all user paths must be validated thoroughly with test cases. Our challenge was to find a test automation tool that made testing of user prompts much easier, and we hoped Selenium would make our automation test development more effective for these UI requirements.
Without a tool like Selenium, we either had to physically monitor our test software, to ensure our test cases didn’t get blocked by a UI prompts, or we had to write extensive test code to deal with the UI prompts automatically, requiring a lot of test case development time. We were relying on Selenium to address these challenges, enabling us to quickly and easily build automated tests, without the need for manual intervention or a large test development cost, for quality product assurance.
Selenium is an opensource framework for test automation. Selenium is commonly used for test automation for web-based applications. Selenium has built in methods that allow selection of buttons or prompts. Selenium specifically enables web development test coverage because it provides good solutions for supporting UI prompts and buttons. Selenium is equally effective supporting the testing of dropdown menus, checkboxes and various other UI components. Selenium has definitely made our automation testing more effective, and that has led to better quality software, and a better user experience.
In addition, Selenium’s browser support and OS support further enhances the scope and coverage of automation testing build on Selenium, so the investment in test development goes much further than just the initial platform the tests were built on. This reduces the time for creation and maintenance of an automation testing system.
In summary, Selenium is designed to dramatically improve the effectiveness of automation testing for complex web-based apps. In the next blog we’ll look at the benefits of Selenium for code at the infrastructure or data level, because Selenium is not just a user interface automation support tool.
For more information, please contact our Software Development Team at firstname.lastname@example.org.
Author: James Harrison, Software Developer, Aspira.