Today’s DevTest teams are under immense pressure to deliver more software, and faster than ever before. Because most organizations rely on software as a primary interface to the customer, compromising on quality to accelerate a release is no longer an option.
There’s no silver bullet for delivering quality at speed, but one essential element is to have unrestrained access to a trustworthy and realistic test environment (e.g., including the application under test (AUT) and all of its dependent components). Otherwise, you can’t accurately and thoroughly validate the change impacts associated with each user story, or be confident that the evolving application doesn’t degrade the overall user experience.
Access to a complete test environment not only helps you achieve greater velocity; it also enables you to assess the risk of a release candidate during a CI/CD process and identify high-risk release candidates early in the delivery pipeline.
The challenge is that with today’s complex systems, this type of test environment access is the exception rather than the rule. Although it was once common for organizations to stand up a local physical staged test environment, the complexity of modern applications has made that approach too slow and cost-prohibitive for today’s development processes. Moreover, in many cases, it is downright infeasible due to dependencies that can’t be reproduced in the test environment.
You can combine technologies like Microsoft Azure (for elastic scalability), Microsoft Visual Studio Team Services (for build and deployment automation), and Parasoft Virtualize (to simulate and access dependencies) to access a complete, realistic test environment. It looks something like this:
By taking advantage of a Microsoft ecosystem with VSTS and Azure, organizations can gain immediate access to scale and bandwidth, meaning that you can get the resources needed to enable flexible and ubiquitous access to application stacks that are under your control for DevTest purposes.
But what about the dependent system components that are beyond your scope or control (e.g., third-party applications, SAP, mainframes, not-yet-implemented services, etc.)? This is where service virtualization comes in. You can simulate their behavior using Parasoft Virtualize, eliminating the final test environment access gap that commonly impedes teams’ testing efforts.
The combination of Microsoft Azure, Microsoft VSTS, and Parasoft Virtualize (which can operate natively within the Microsoft environment) enables organizations to rapidly deploy a complete test environment on demand. The most realistic dependent components available at that specific point in time are aggregated from a central repository and then provisioned automatically. The “most realistic set of dependent components” is often a combination of both real components and simulated components delivered via service virtualization.
These simulated test environments are lightweight and Azure-compatible, so when you need to scale (e.g., for performance testing), you can do that on demand. They are also disposable. A test environment can be instantly provisioned from a golden template, used and dirtied, and then simply destroyed. There’s no need to spend time re-setting the environment or test data to its original state. The exact same environment can be instantly spun up whenever it’s needed (e.g., for reproducing or verifying defects).
To streamline and accelerate the provisioning process, you can take advantage of Microsoft Azure and Microsoft VSTS to automatically deploy disposable test environments onto servers running in the cloud, making complete test environments available in a matter of seconds.
The following diagram shows one way that you can use Microsoft Azure and Microsoft VSTS to rapidly deploy a complete test environment in less than 10 minutes:
Extending this to Parasoft Virtualize, here’s a quick overview of how the service virtualization and environment-focused steps can be configured (we’re assuming you already understand how to deploy your AUT).
Parasoft Virtualize servers can be automatically deployed to cloud-based Azure VMs that have been allocated by Azure Resource Manager. This not only streamlines installation, but also provides elasticity and scalability.
“Golden copies” of simulated test environments are defined using Parasoft’s browser-based interface. A system diagram helps you define a complete environment, including all dependent components. You can then leverage simulation technologies to coach the environment to behave in certain ways.
For example, assume you have the following environment for a sample banking application. From a single Parasoft environment, you can leverage simulation technology to configure the behavior of the system environments. It would be highly time-consuming to achieve this with the actual applications.
Any of the various “golden” environment instances can then be automatically deployed to your Azure VMs at any phase of the Microsoft VSTS pipeline. For example, you could deploy a simulated test environment as a build step as follows…
Want to try this yourself? You can get started with service virtualization in a matter of minutes. Parasoft Virtualize is available on the Microsoft Azure Marketplace and Microsoft VSTS Marketplace. There are two license models for Parasoft Virtualize: hourly-billing consumption or bring-your-own license.
Parasoft Virtualize, which was recently named the leading service virtualization innovator by voke Research, is recognized for its unique environment-based approach. The combination of Microsoft Azure, Microsoft VSTS, and Parasoft Virtualize is designed to provide teams the rapid, scalable, and flexible test environment access required for Agile, DevOps, and “Continuous Everything.”
To learn more about Parasoft’s continuous testing offering, please visit: www.parasoft.com/solutions/continuous-testing/
Parasoft’s industry-leading automated software testing tools support the entire software development process, from when the developer writes the first line of code all the way through unit and functional testing, to performance and security testing, leveraging simulated test environments along the way