The new style of IT is pushing DevOps teams to reinvent software building, validation and delivering processes with an aim to shrink development cycle time and reducing defects in production. But in constrained testing environments, DevOps teams face a range of challenges in following the continuous integration and delivery approach for large multi-tier applications. Because release cycles are compressed application testing coverage, and what you test is constrained. And on top of that, consumers demand for an always-on, easily enhanced and mobile experience that comes with cloud-sourced and cloud-delivered composite mobile app offerings.
DevOps’s active collaboration is one way to address these challenges, and the QA police needs advanced solutions and alternative testing methodologies to overcome the constraints of testing composite applications. Challenges emerge when development shops embark on these initiatives with a service-oriented architecture and cloud service integration to test interdependent functional components. DevOps teams relying on third-party cloud services also need to consider security and access limitations as they apply QA testing practices frequently throughout the development lifecycle. For instance, a cloud service delivered on a pay-per-transaction model may incur significant cost when QA teams test application components against it frequently.
In some cases, compliance and privacy restrictions on application data may not allow for testing until later in the development cycle when additional layers of security are applied. Making the application too complex and distributed to accommodate a software overhaul to remove production defects. Sanitization of data for privacy and security also becomes an out-of-scope process of large manual efforts, preventing QA and Ops teams to keep pace with the faster Agile Dev processes. And perhaps most importantly for Big Data applications and testing environments, traditional mockups and stubs barely suffice.
To meet these challenges, teams can utilize a parallel testing approach to perform live testing using the service virtualization layer as a baseline for the production environment. This testing system simulates the behavior, performance and data of the real targeted services, allowing QA teams to perform agile test runs throughout the development lifecycle by:
- Enabling broader test coverage especially in negative test scenarios.
- Performing load testing efficiently for scenarios that require slow response times.
- Simulating testing environments of services restricted due to security and regulatory compliance concerns.
- Re-creating service behavior and introspecting desired service interfaces without incurring the actual cost of using these services.
- Reducing the overall service infrastructure cost.
- Testing the impact of cloud migration and datacenter consolidation on applications.
- Keeping pace with Agile development sprints to enable Agile QA and Ops.
- Creating a unified approach to performing development and testing simultaneously by distributed teams to enable continuous integration.
- Accelerating development to enable continuous delivery.
- Allowing testing without disrupting the operation of essential information systems or exposing sensitive data to potential cyber threats.
The DevOps movement is widely embracing the trend of service virtualization in a bid to enhance test coverage, practicality, accuracy and cost-effectiveness while avoiding risks surrounding security, privacy and compliance. DevOps teams are in a continuous struggle to accelerate time-to-market while maximizing software quality, which prompts parallel development and testing to identify and resolve defects early in the development lifecycle. And according to a recent research study, service virtualization allows development teams to identify 60 to 90 percent more defects at least one step earlier in the development process.
Service virtualization today is not very common, but it is clear that it will be an essential additional component to the modern software delivery pipeline.