Ryan Schulte
September 25, 2017

Perk Gets Its Feet Wet With UI Testing Automation

Perk’s Journey to Automated UI Testing

Before this adventure into the land of automated user interface (UI) testing, I had done most of my test development in writing unit and integration automated for back-end systems. I dabbled a little in the world of UI testing automation back when I was in school, but not since then. At Perk we were automation-less and we did our entire UI testing manually for all of our releases.

Now that we have automated UI testing in place, it is hard to look back to the days of performing manual UI tests.

An Investment Worth Making

Generally, one of the things that holds companies back from implementing automation is the cost factor. Automated testing is an investment of time and money—but implementing automation now means more bugs caught before releases as well as more efficient testing of applications in the future.

Even though we were typically releasing with few to no bugs, there was a clear need for UI automation in our suite of tools. Manual testing our UIs was taking up a sizeable amount of our quality assurance (QA) resources on release days and with possibly multiple releases in a week, this resource cost could add up quickly.

On top of the resource cost, a lot of our brands run on a common back-end platform, so when changes are made they could possibly affect multiple brands’ front-end. Additionally, most of our manual testing was similar across the board. All these things made it a logical choice to finally bite the bullet and dive into UI testing automation.

The Tools

TestRail test case management software

Once we had decided it was time to get automated, we had to do some digging in terms of tools and frameworks available for automation to find what would fit our needs. We landed on Selenium as our framework of choice. It offered all we needed, except for a way to share tests and test results without manually sending the results. However, this problem was easily solved by third-party tools that allow for test result generation and sharing.

For our test case management solution, we chose TestRail. TestRail is a web-based test case management tool that allows you to manage all of your testing in the cloud so that all tests, test runs, test plans, and results are accessible in one location. TestRail also provided a simple and clean API that easily integrated with the test automation solution.  This provided a platform where automation test results could easily be viewed by anyone. The ability to have all the test results centralized makes it much easier for issues found to be examined by various teams, whether it is the development team or the QA team.

I won’t say the whole implementation of UI automation went flawlessly—being the first attempt at a UI testing automation solution for the company, there were bound to be some obstacles to overcome. But considering it involved multiple moving pieces and integrations, it went quite smoothly.

Final Thoughts

Our first venture into automated UI testing turned out to be very successful. It has lowered the number of bugs released and has significantly reduced the amount of time we spend testing our releases.

I would recommend Selenium to anyone looking to step into UI testing automation. It is flexible and offers a wide variety of implementation options, from recording actions into scripts that can be re-run, to creating tests manually using languages that developers might already be comfortable with, like C#, Java, JavaScript, PHP, and others.

Now that we have our first iteration of automated UI testing, it is time to look to the future. We will be looking for opportunities to expand our automation to get even more test coverage on our various brands, to ensure we are consistently putting our best foot forward for our users.