Testing at the Resumator2013-07-12
Recently at work I was tasked with creating a customer-facing self-service billing utility. Given the complexity required in the spec, testing was bound to be a pain in the butt. Further, because billing is such an important piece of a web application the testing had to be very thorough.
After a short while we transitioned our tests to Selenium-WebDriver scripted with Ruby. It doesn’t run on as many devices as our previous solution, but it doesn’t have HTTPS problems. I initially wrote my test code in Python but transitioned to Ruby since several of my coworkers were more familiar with it and it would be easier to teach them to use Selenium. In hindsight we should have probably gone with PHP since our site is built on PHP, but that’s for another discussion. Selenium has been a boon to productivity for us. While I will admit the Selenium-WebDriver gem has very verbose actions, our test suite still has been surprisingly easily maintainable, even beyond 1000 lines of code.
We’re still using some in house solutions for unit testing. I think our next step will be putting together a suite of tests in PHPUnit. Eventually it would be great to get a Continuous Integration system rolling, but that may still be quite a ways away. I’d love to see more testing in place.