What Is Test Lab Automation and Why Is It Important?
Test Lab Automation is the practice of testing applications and devices in a more efficient way than executing tests manually. While there are various levels of Test Lab Automation, a robust Test Lab Automation solution should enable you to:
- Schedule tests and reserve resources ahead of time
- Create test network topologies before a test starts
- Tear down a test network topology when a test ends
- Maximize usage of test lab resources
- Execute tests 24x7 without the need for human intervention
- Minimize the use of equipment that is not part of the test, e.g. routing infrastructure
- Utilize Layer 1 switching infrastructure to create test topologies
Test Automation has become a commonly-used term in Application and Cloud companies. Software as a Service (SaaS) and Cloud-based applications dominate the product development landscape in the B2B and B2C markets. Test Automation in the form of continuous regression of these applications has become a widely-used practice in AGILE and Container-based Dev Ops environments.
What is a Layer 1 Switch?
A Layer 1 switch, also known as a physical layer switch or a crosspoint switch, operates at Layer 1 of the Open Systems Interconnection (OSI) model. Layer 1 switches use specialized hardware that enables you to cable the equipment in your test lab one time and then use software to create or move connections between equipment as needed for test sets. Layer 1 switches move data from one port to another between devices with minimal delay and no modification. Layer 1 switches are ideal for connecting equipment in test labs because they:
- Allow users to rapidly create test topologies
- Do not modify data in any way
- Can pass errored frames that would not pass through a higher-level switch such as a layer 2 switch or a Software Defined Networking (SDN) environment
- Are speed and protocol agnostic
- Have very low and consistent latency
- Create inherently secure network connections
What is Lab as a Service (LaaS)?
LaaS is the practice of sharing test lab resources across different organizations that are sometimes located within the same campus and other times separated by thousands of miles. Historically, each organization that performed device or application testing owned and maintained their own test lab infrastructure including test tools, network switches, and systems under test. Even with only modest organic growth, this type of test lab can quickly lead to huge costs attributed to inefficient use of these resources within the lab. With faster growth, for example through acquisition, a holistic look at a company’s annual investment in test labs shows larger than expected expenses.
LaaS takes the opposite approach where test lab resources are managed centrally and are shared across organizations that require those resources. Since use of the equipment can be scheduled by multiple teams in different time zones, equipment that may have otherwise sat idle can now be utilized more efficiently. Although implementing LaaS requires initial investment in test lab automation infrastructure, the return on investment is significant. A LaaS environment:
- Allows remote access from multiple locations to test lab infrastructure
- Utilizes resources much more efficiently by reducing idle time
- Increases test cycle throughput by eliminating the need for manual topology configuration using patch panels
- Reduces OPEX overhead incurred by maintaining multiple independent labs (power, heat, maintenance…)
- Builds network topologies using Layer 1 technology to eliminate the need for manual patch panels and layer 2/3 network configuration
- Enables remote access to lab resources and working from home
Why Use a Layer 1 Switch Versus a Layer 2 Switch?
A Layer 1 switch emulates a circuit between two ports as if those ports were physically wired or connected to each other. The Layer 1 switch guarantees that traffic is delivered between those ports and is unchanged by the switch.
A layer 2 switch needs to analyze each packet and make routing decisions based on the packet’s destination MAC address and learned MAC address tables. This adds complexity to test labs where the network topology is constantly changing.
If a frame error is discovered, a layer 2 switch will drop the errored frame because it does not know what to do with it. Conversely, a Layer 1 switch does not examine the frames and therefore will pass errored frames to the correct destination because it does not rely on routing protocols.
Why is a Layer 1 Switch Better for Test Labs?
An efficient test bed has as little as possible between the test tools and the device or application being tested. A Layer 1 switch fits this requirement perfectly. Even a manual patch panel is more prone to failure than a Layer 1 switch due to wear and tear on cables that are constantly being switched manually and the potential this creates for dirty fiber connectors.
Imagine a scenario where a stress test is failing. The team debugging the problem determines that the test tool is occasionally seeing a timeout condition due to packets not being received from the server. With a Layer 1 switch connecting the test tool to the server, the team can rule out any packet loss caused by the switch. A layer 2 switch cannot be ruled out so easily since layer 2 routing does not guarantee delivery of packets and the problem could be caused by the switch itself or other test traffic running through the switch.
How do You Manage a Layer 1 Infrastructure?
The Layer 1 infrastructure should be managed by software that is designed to meet the unique requirements of automated testing. The software is supplied by the Layer 1 switch manufacturer or a 3rd party that specializes in lab automation systems. An efficient software management system should include these features:
- A graphical user interface for building test network topologies using the Layer 1 infrastructure
- A reservation system to maximize resource usage while avoiding scheduling conflicts
- A mechanism to authenticate users and apply access controls to test lab resources
- An API to enable custom extensions and integration with existing tools