It’s ironic but most QA engineers spend the vast majority of their time doing something other than testing. Those other activities include setting up and tearing down environments, reading documentation, writing test plans, interfacing with engineers, and creating reports. The actual time spent on testing falls into a smaller time window than one would guess. While it would be nice if test engineers could spend more time testing, there are many key impediments that prevent engineers from testing. The secret to a successful testing strategy comes in a simple, 3-word mantra: automate, automate, automate. Here are three suggestion to help optimize your test environment.
1. Automate your test bed configuration
Tests do not occur in isolation. They are built by engineers and run in labs with servers, gateways, switches, and other gear. The lab equipment needs to be fed and cared for, typically through a complicated series of GUI and text based inputs or commands for the setup, configuration, and maintenance of these systems. Much of the work involved in the setup and configuration of these devices is highly repeatable. Through the use of automation the test environment can be configured prior to testing, it can be initialized as part of the test, and it can be reset between tests, to save a lot of time and frustration.
2. Automate the actual test execution and reporting
What’s worse than running an extended performance test suite manually? Running an extended performance test suite and not having any visibility to the test results until well after the test completes. Sounds far-fetched but this scenario plays itself out in QA every day. Use test automation to not only automate the execution of testing, but to automate the ability to capture results in real time, flag errors, and accelerate the time between testing and defect resolution. Create a procedure to roll up your findings into defects and written reports to further accelerate your QA testing cycle.
3. Schedule time for automation
QA engineering is hard work, and automating test cases doesn’t always feel like it saves time in the moment. While it’s easy to identify the time it takes to automate testing, sometimes the initial development effort for the automation takes longer than actually running the test. In fact, some individual test cases may not be worth automating and that’s ok. The advantage to test automation is in the repeatability of testing across a suite of tests, rather than just an individual test case, and the time savings that occur over a period of many test cycles. As release cycles become more aggressive, QA teams are strapped for time to get their testing done, much less automate their testing. Work to make sure automation is included as part of your process and remember to repeat the three word mantra — automate, automate, automate.