When Aristotle said, "We are what we repeatedly do. Excellence, then, is not an act but a habit,” he probably wasn't thinking about automated network testing… but the truth in his words rings loudly in every testing environment and QA lab today. In thousands of telecom provider and manufacturer testing labs, both management and engineers face the daunting task of testing and validating components and infrastructures by performing hundreds of thousands of repetitive actions and procedures. The ongoing proper execution of these actions is essential to ensure the quality of the network and products under test.
Unfortunately, most of these procedures are script-based and not reusable; every small change in an element or network layout requires manual retyping of the script. When the question of automating these processes arises, more often than not test teams shy away from the subject. And not without reason. Problematic past experiences naturally raise skepticism regarding the possibility of creating user-friendly, cost-saving automated frameworks in even the most seasoned testing personnel. These experiences may include:
- self-developed automated systems that were so complicated that only the developing team could use them
- long automation projects that weren't worth the development time that was spent on them instead of performing the actual testing work
- “automated" systems that relied heavily on "capture and replay" scripting that required a huge amount of effort for recording thousands of component-specific scripts.
- Once we've created automated testing for a certain network layout with certain components, changing a component or a small part of the layout will only require us to change a certain building block, not recreate the whole automation from scratch.
- We can leverage the knowledge of our domain experts by letting others use their setups later on.
- Ease of use. How many people in our team will able to use it, how complex is the training process, and how quickly will we be able to ramp up its use?
- Robustness of the interface library. Does it support all the device and application controls we need? How easily (if at all) can we deal with steps that are not “out of the box?”
- Flexible and future-proof. Will we be dependent on the vendor to add future controls? What are the commercial implications of additional capabilities -- and what happens when we buy new test equipment? Will the system support large scale operations as the company grows?
- Maximum functionality. Apart from the actual testing, the core functionality of any good automation framework should support the tasks surrounding the actual testing, as they too lead to a more cost-effective process. These include lab management, asset reservation and scheduling, device integration, topology definition and setup, automation development and execution, data collection aggregation, and reporting and dashboards.
- Vendor. And finally, when choosing such a framework, we need to take a good look at the vendor. What is its core business? Does the product have a roadmap, and how aligned is it with our requirements? What support can we expect? And perhaps the most important factor: What references of successful automation deployments does the vendor have?
In summary, test automation doesn't have to be painful. Adopting the right approach can lead to great results.
Eitan Lavie serves as vice president of product marketing at QualiSystems, where he is responsible for product strategy, marketing activities, and for overseeing key product management functions. QualiSystems provides enterprise software products for lab management, device provisioning, and test automation.