Many companies – large, small, public, private, start-ups – are looking into test automation, continuous integration (CI) and continuous deployment (CD) to get their code to customers as efficiently as possible, while not sacrificing quality or reliability. They realize that automation is essential for them to scale up and be competitive.
But if you’re the lone test engineer on a project and have little or no test automation nor any kind of existing CI infrastructure, just getting started can seem insurmountable.
Thinking about everything in your project that should have test automation can feel like when you were a kid and your parents asked (demanded) you clean your room. You walked into the disaster area that was your bedroom and just stared at it, not knowing where to begin.
If you think about automating all the things that you’re currently manually testing and all the things you and your project team would like to test before you release software updates to customers, you might be tempted to throw your hands up and walk away, because it can feel so daunting.
Pick A Corner
But if you remember back to when you had to clean your room, the process was simplified (and much less intimidating) if you started in one corner with one small thing and worked your way around the room picking things up and putting them away — and before you knew it, you could see the floor again (you’d forgotten what color the carpet was, I bet). Pretty soon the room was at least a semblance of organized, if not entirely clean.
The same rationale will work with test automation. Get with your developers and project management team, and pick one small area of your project that you’d like to see covered by automation. Focus on that.
Using Selenium and web UI testing as an example, here’s how to get started in that corner:
- Pick your feature to put under test automation — For Rackspace Cloud Load Balancers, that feature was creating a load balancer.
- Code some tests around a single feature in your project — You can use the Selenium IDE to record a small, short set of test modules. Again, for load balancers, this amounted to about 12 test steps, including three for logging in.
- Get a few servers (make life easy and get some cloud servers from a cloud host like Rackspace).
- Get a continuous integration system (Jenkins) up and running (again on the aforementioned cloud servers).
- Find a Jenkins plugin for your version control system (i.e. Github) — when developers check in code, your CI will run your tests against the updates.
Sure, there will be a learning curve if you’ve never used Selenium or Jenkins before. But a few days’ time investment (it really doesn’t take more than that to learn the basics of each) will be well spent.
Once you get started, you’ll come away with some great insight and know-how, such as:
- Knowledge of a testing framework (Selenium in this example)
- Knowledge of a CI system (Jenkins in this example)
- Your own CI system
- One part of your project under automated testing
Now that you have done the heavy lifting of getting CI in place, and you know how to code some tests, getting automation in place for the next feature will be a breeze. And before you know it, you will see the number of test modules you create snowball.