As a Quality Assurance technician at Concentric Sky, I use a lot of tools to make me better, stronger, faster. Perhaps the most powerful tool is Selenium, a suite of products that records web activity and plays it back faster than the human hand can click.
I think about software Quality Assurance as, in essence, two big sides of one coin. Make sure the product does what it’s supposed to do, and make sure it doesn’t do things it’s not supposed to do. The first side is really pretty straightforward, and tends to say the same through the life of the product. Making the product do what it’s supposed to do is the realm of documentation, test cases and test plans. Order, structure, repetition. That’s where Selenium beats the heck out of a human tester.
I can use the Selenium IDE to record the process of making your web-based software do everything it’s supposed to do, click by click, keystroke by keystroke, menu selection by menu selection. And I tell it exactly what it’s supposed to see — or not see — with every new page that’s loaded as a result. And then I can replay that test at warp speed, again and again. If our developers make a change under the hood, I can use that recorded test to make sure that change hasn’t created an unintended consequence. It just takes a few mouse clicks, and then I can watch the process unfold like a fast-forward documentary about every single tiny thing that software is supposed to do. If there’s a failure, Selenium tells me where and why. To put it in less technical terms, it’s software testing magic.
And if the software I’m testing changes, I don’t have to start all over. It’s easy to make small edits to Selenium to account for software growing and evolving. And when I find strange features that are hard for Selenium’s core functionality to accomplish, Selenium dovetails with scripting languages to make it even more flexible and powerful - scripting languages like Java, Python, Perl, PHP, .NET, and Ruby. I’ve even used Selenium’s script support to throw random input at an application to make sure it can handle the wide array of inputs real-world users might throw at it. Again, magic.
The other side of the QA coin is a bit outside of Selenium’s reach. Making sure software doesn’t do things it isn’t supposed to do is a bit… murky. I have to explore dark corners, break rules, and try dirty tricks. Selenium is too structured and consistent to be good at this kind of shifty business, but that doesn’t mean it doesn’t help. By doing the structured, repetitive parts of QA for me, Selenium frees me up to do the things that only a human can be good at - to be creative and to seek out holes and vulnerabilities. Of course, once I find an attack that works, I can teach it to Selenium, and Selenium will make sure the fix doesn’t fail somewhere down the road.
I’ve used Selenium on a number of projects, and its power impresses me more and more every time. The time we save by using it helps us meet tight budgets and makes sure our testing is consistent and reliable. In the world of software QA, this is real magic.
Subscribe
Leave a Comment