As test engineers, it’s not uncommon for us to come across a super-sized, bold lettered "DO NOT TOUCH" post-it on a piece of lab equipment. In today's complicated testing environments, where we find ourselves managing thousands of local or networked resources that are often shared between multiple users, this is often the easiest way to make sure no one else accesses a critical element in our test setup while we are running a test.
Yet, as efficient and as common as this deterrent is, it is often also the sign of inefficient lab resource management. The task of running a lab environment where thousands of elements and topologies are set up, maintained and managed on an ongoing basis is overwhelming.
This commonly results in the inability to fully utilize network elements; the inability to optimize operating expenses such as power consumption, cooling and lab space; the purchase of unnecessary expensive equipment and the loss of many work hours on manual, tedious setups. And since most of us encounter these unfortunate elements of reality on a daily basis, we all know where they eventually lead to: higher lab budgets, longer time to market and overall lower profitability.
The question is – considering the tons equipment, cables, configurations, patching and installations we face every day – is it possible to change this reality or is it a lost cause, somewhat like a teenager's messy room?
"The things you own end up owning you" Tyler Durden, "Fight Club"
The problem begins with unique ownership. The more equipment we own and use uniquely, the bigger the lab management challenges become:
- Any utilization under 100% of our multi-million dollar lab equipment is an instant money loss for our organization
- Setup becomes more and more time consuming and error-ridden
- Proper control of the test environments proves extremely difficult
- Equipment piles up, creating the need for more floor space and inventory management
The solution, therefore, lies in sharing with others. Or, more precisely, centralizing and automating our lab's resource management in order to minimize our equipment and maximize its usage across the board.
Looking at an ideal testing lab setup, we can pinpoint the following elements that can help us materialize an efficient resource management system:Automatic equipment discovery.
We first need to properly understand what equipment we have in the lab and to find the needed equipment for each specific test according to predefined parameters. This is similar to understanding what exactly is in that pile of clothes on the floor in our teenager's room, and then finding a specific shirt that we need... only we have to be able to do it automatically and on a recurring basis.Automatic topology setup.
Now that we know what we have, if we are to share elements between individual testers and even more so between different testing teams, we need to be able to automatically setup the test topology and put an end to manual cabling, configuration and installations.
On the physical infrastructure level, we can achieve this with a Layer1 switch which provides an efficient method of reconfiguring lab equipment without manually rewiring cables. With such a wire-once technology, we can connect any port to any other port within the system using only software commands. Once the lab network equipment is connected, test topology changes are done with a simple click of a mouse. When multiple labs share the same resources, several layer 1 switches are required.
In order to maintain simplicity, we could wrap them all into one cluster or cloud which we would then control with a background service which automatically calculates the optimal topology according to each individual test's requirements and definitions. Ideally, we could reach a situation where testers are "unaware" of the physical switch, and testing procedures do not require any modification.
On the software level – we need to be able to remotely access and fully configure our resources as needed per test – once again automatically and on a recurring basis.Reservation and scheduling.
Once we allocated all required resources from a centralized repository, and created our topology, we need a way to schedule and reserve these resources as needed. This will maximize the test environment usage without creating conflicts between ongoing concurrent tests. Adding a rules and conflict management engine offers further flexibility and efficiency, allowing us to deal with situations where tests overrun their allocated time and may interfere with other tests.Coordinated execution.
Now we need to execute our automated topology, at the time scheduled, in a coordinated manner. A centralized application that can dynamically and remotely control all the resources and test stations will allow us to accomplish execution at the specific time we set, even off-hours, to allow optimized utilization of our resources."Dream on, dream on, dream until your dream comes true.” Aerosmith
Going back to the teenager's room analogy, you might be looking at your lab equipment just about now thinking to yourself "automated resource sharing, yeah right…" The truth is that this is not a futuristic concept, and the benefits that can be achieved are way beyond what a “planning table” or a shared spread sheet can achieve.
Centralized automated lab management combining dynamic resource definition, automated topology configuration, reservation, scheduling and remote coordinated execution is an existing solution that is currently maximizing lab capacity at test labs and sites all around the world.
Overcoming our psychological barrier of "cleaning up the mess in our room" and abolishing our natural human "what’s mine is mine" instinct can leverage the value of our physical, logical and human test resources to greatly increase our overall profitability. It's actually much simpler than might appear – we just need to know it’s out there, and give it a chance.About the authorAriel Kuperman
is Chief Operating Officer at QualiSystems
(Ganey-Tikva, Israel), a provider of enterprise software solutions for lab management, device provisioning and test automation.