XML2Selenium is a powerful test automation tool that unleashes Selenium’s power to testers instead of java developers.
Test AutomationTest Automation in the form of Unit Testing seems to really have arrived now to all forms of software development, big and small, as an integral part of builds and best-practices. This is not the case yet for Functional/Integration Testing, the type of testing where a system is approached as a whole through it’s external interfaces. This type of testing is oftentimes still done the old way, through manual testing by a tester who executes written down test scenario’s.
ToolsThere are however plenty of tools available to automate this type of testing as well. These are particularly useful for regression testing, the practice of running lots of functional tests before every new release, validating as much as functions as possible. Most of them are very costly and no option for startups and companies on a smaller budget. Luckily, there is an Open Source alternative, Selenium, the de-facto standard test automation tool for web apps.
Selenium is a powerful tool, actually a framework, that allows an experienced developer to create a powerful testset. Here is a nice comparison chart between HP QTP, one of the best commercial test tools around, and Selenium.
Drawbacks of SeleniumI have worked with Selenium myself and seen it used on quite a number of projects. I always noticed the following drawbacks:
- It takes a lot of resources to create functional test-set and keep it alive. On a Scrum team of four people, you easily need to employ one to just cover the new functions and changes.
- Because Selenium is a Java tool, it takes java developers to write the tests. Developers, by nature are no testers and don’t bring the required mindset for solid testing. Chances are high that the tests have too much emphasis on the happy scenario’s, and just cover too little.Also, especially when creating regression tests, it is better to run a little bit behind and create them once fresh functionality has stabilized. This way you prevent the extra work of having to adjust tests along with changing functionality all the time. A Java developer in your team though will most probably want to write the test as soon as he finishes a function.
- Last but not least, since Selenium is just a toolkit, it does not provide out of the box reporting. This will also need to be implemented by a developer and if not, chances are high that testers need a developer to help assess the test results.
Enter XML2SeleniumFor this reason, I got really enthusiastic when I started looking into XML2Selenium, the layer on top of Selenium developed by my nearshoring partner Dima Harachka and his team in Soligorsk. It addresses all of the above mentioned drawbacks:
- It allows testers to write functional tests in a declarative way. This unleashes Selenium’s power to the right people, testers. No Java knowledge is required while all the power of the underlying Selenium framework remains.
- It is a huge productivity boost. The tests are written in an XML format in webpage-object-oriented steps. Even being a Java developer myself, I would never return to writing Selenium tests in Java. XML2Selenium is just way faster.
- It provides real nice reports, targeted to testers and business people. This is another feature that takes Selenium out of the development domain. The tests can be run from Jenkins or any other CI server and the reports are available to whoever is interested or needs to act on its results.