One of the banes of old-school software development was painful, manual testing. All developers committed lots of their time to clicking through the most mundane options over and over again, with no guarantee that they will not overlook something.
Test automation aims to ease the process and ensure that everything is always performed and confirmed. At SoftwarePlant, we maintain a weekly release cycle and each subsequent version introduces a lot of new fixes and features, hence fast testing is absolutely crucial. Our continuous delivery requires automation.
“Selenium lets you write code and enchant it. After running this enchanted code, browser starts quality-assurance-dance in front of your eyes. Things just happen on their own and you can overlook them with a cup of tea”
Dastin is the head of our testing department and he directs development of test base, built using Selenium framework. It allows him to automate user-like behaviour, then scale and distribute test scenarios across many concurrent nodes.
Continuous integration provides up-to-date feedback channel – we set up Jenkins, so that test results are displayed on one of the huge TVs in our office. Any kind of red color means the build is off and it’s time to push the big red intervene button.
What’s more, whenever Selenium cannot finish a test successfully due to technical problems or a bug in the build, it provides history of steps in the scenario with the problem along with a screenshot of what happened at the failure moment. Based on this we can dive into the specific problem instead of going through everything all over again.
Jenkins is invaluable and customizable tool. It is responsible for launching Selenium tests. Builds can be started by various means, including being triggered by changes of code in a version control system or by building when other builds have completed. This gives us the needed flexibility, as some parts of the code are shared between our apps (like with BigGantt and BigPicture’s gantt chart module).
We do perform some manual testing, as all tools can fail and we want to ensure everything is 100% in order. Automation simply increases the number of scenarios covered and helps us save a lot of time, which we then commit to develop great new features.