Join Us on Apr 30: Unveiling Parasoft C/C++test CT for Continuous Testing & Compliance Excellence | Register Now

Control Your Test Environment With Virtual Reality

Parasoft cube logo 300x300
January 21, 2021
5 min read

How about controlling your test environment with virtual reality? This post will introduce you to what it feels like to control your test conditions by adopting service virtualization.

One of the wonderful things about Parasoft is that the company has a strong focus on helping organizations of all sizes achieve compliance and high levels of quality to develop software solutions using our continuous quality testing suite. This blog isn’t to tell you about the cool stuff we do at Parasoft, but to share with you an observation I made recently.

Drawing Test Environment Parallels

Every so often we receive updates from our customers about their projects. Recently I heard from one of our long-time customers sharing how they’re using our solution. I became really intrigued by their application. Some of you might be familiar with the Leopard 2 tank.

Leopard 2 Tank
Leopard 2 Tank | Source: KMW

In warfare, tanks have a relatively short history. They were first widely used in the early 1900s. Throughout the decades, significant improvements have been made, including the introduction of technology. There’s much to be said about what’s possible today when it comes to technology.

I found it particularly interesting how the process of training the crew offers parallels with the development of software.

According to the essay, Training: The Foundation for Success in Combat:

When designing a military combat training program, there are generally three components.

  1. The task itself – what is expected to be accomplished by who/what.
  2. The conditions – the circumstances in which the task is to be completed (e.g., day or night, moving or stationary, full capabilities or not, heavy enemy resistance or not).
  3. The standards – the level of competence and effectiveness at which the task is expected to be accomplished (e.g., percentage of systems ready and available, enemies killed, accuracy of hitting the target).

With those training components in mind, what are the methods to transform a diverse group of soldiers into a battle-hardened team that is ready for every possible encounter?

Test Environments: Real Vs. Virtual

The traditional, and still effective, way to train a military team is in the field, in an actual environment with real weather conditions and live ammunition. The downside of this type of training is that it’s very costly.

Additionally, many of the conditions encountered are not repeatable. This can be very frustrating when the task did not meet the standards and cannot be tried again because there is no control over the conditions in the training environment.

Illustration showing same military tanks in same training locations during different seasons to demonstrate cost of waiting
Waiting for the right season or moving training to a different location is a costly and time-consuming endeavor.

Back in the early 1980s, the U.S. military realized that being able to control the conditions during training would allow it to be more efficient and effective. As such, SIMNET was realized in 1986.

SIMNET would allow multiple crews to undergo rigorous training in a fully controlled, virtual reality (VR) environment. You can probably imagine that having full control over the environment, and its conditions, allowed the crew to be exposed to many different scenarios, becoming better prepared for whichever task they would need to complete in real battle.

Image of fighter aircraft simulator training room with multiple screens and controls to practice test environment simulation
Fighter aircraft simulators in a training room.

What Does This All Have to Do With Software Development?

As a developer, you need to produce working software. The software components often have to integrate or interact with other software. This often happens in a “hostile” environment called production.

In production, the software needs to be able to deal with many different scenarios, many for which we can prepare. Do you recognize the parallel with the military delivering well-trained crews to complete their missions?

Two illustrations of tanks Left - Training in the field | Right - Training using test environment simulation
It’s impossible to execute the same training session in a different season or a different geographical location (left). With VR (right), you can change the training conditions with just a push of a button.
Two illustrations of tanks: Left - Dev/Test in the field; Right - Dev/Test using simulations
Using the military as an analogy for software development: Teams on the left working on the system under test (SUT) are not in control of the upstream and downstream systems and their behavior. By introducing VR for the SUT (aka service virtualization) the teams remove unwanted influences and are now fully in control of the behavior of up and downstream systems.

Developing Software for the Real World

When developing software, you want the application to be as ready as possible before exposing it to the real world—much like a tank crew. All the components of the software must function like a well-oiled machine.

You’re designing the software to handle all expected situations and to be capable of managing unexpected ones. It begs answers to questions.

  • What happens if you put tremendous pressure on the software?
  • What if one of the components becomes incapacitated?
  • Will you still be able to achieve the defined goals if something unexpected happens?

The cost of unpreparedness could be catastrophic.

How Can We Move Software Development Beyond the Limitations of Reality?

Many organizations are wasting many resources and are still not able to deliver battle-hardened software before releasing it. We need to break through the idea that testing can only be done against the actual environment. We’ve made some steps forward. Now it’s time to leap forward.

Much like the military uses virtual reality to take control of their environments’ conditions, development organizations can leverage service virtualization for the same effect.

Take Control of Your Test Environment With Service Virtualization

By taking control over your test conditions, you make it easier to fully test and verify your application’s tasks and ensure that it meets the necessary standards for deployment. This results in lower costs, higher productivity, and faster delivery to production.

Fortunately, we’re seeing more organizations take the first steps to gain control of their development and testing environments by adopting service virtualization. Are you curious about how you could take control of your environments? Wondering what the right adoption strategy is for you?

Contact Parasoft to discuss test environment simulation with an expert.

How to Choose the Right Service Virtualization Solution