Decreasing Costs, Increasing Complexity
The complexity of enterprise systems is constantly increasing, further complicated by integration with other internal, external, partner and cloud systems. Gone are the days when systems testing could be isolated to individual applications. Functionality today typically transcends individual systems, drawing on data and computations within other systems.
While complexity increases, there is pressure to decrease the costs and time to deliver these systems. Developers and testers are working more closely together through lean or Agile practices, but are finding that integration testing can be a significant bottleneck. A Shift Left approach to testing only starts at the point of development actually delivering testable systems. Can the Quality Assurance process be shifted further left into the development cycle?
Hardware Virtualization is a well-understood concept, allowing physical systems to be partitioned into several virtual ones. While utilizing Hardware Virtualization in order to host some of the components involved in the overall solution may decrease costs, it still requires additional time, resources, and overhead for:
- Operating System installation and configuration
- Infrastructure license costs, configuration and administration (e.g. database)
- Integration and management
These components also typically involve their own test cycles just to get implemented. This can add to the testing complexity, as well as to the total cost of ownership to maintain throughout the testing cycle.
In Service Virtualization, software components are virtualized by simulating the service interface of the system under development, providing only a minimal amount of the system’s behaviors required for testing. Service Virtualization focuses on emulating only what’s needed by testing. This approach offers a much lower total cost of ownership, and requires far less development and administration.
Shifting Further Left
Adopting Service Virtualization can move the testing processes further left in to the overall development cycle by enabling access to the interfaces presented by the systems, if not the actual systems themselves. By simulating the behavior of the system being developed, and presenting the interfaces that the system will eventually present in production, Service Virtualization enables testing to begin long before the actual system’s development is complete, or even started.
Service Virtualization provides numerous benefits to the testing and even development folks by making systems functionality available prior to production, including:
- Identification and correction of defects and errors in interface protocols, data structures and other inter-communications while still being developed. This brings testing into the Agile development cycle.
- Identification of potential architectural issues during development. These are typically the most expensive problems to correct once a system is mostly complete or in production. Service Virtualization can help identify these types of issues while the project is still in the design phase, enabling a much less expensive correction process and avoiding other costs related to correction if the system development was mostly complete.
- Having User Acceptance Testing earlier in the development cycle can also save time and money during development by ensuring the system delivers on the business requirements. It is much easier to keep development aligned to requirements by enabling UAT throughout the development cycle, thereby avoiding potentially costly remediation for those missing or faulty features and functions if they are only identified once development is complete.
Prolifics’ Service Virtualization isolates individual components of the integration solutions, allowing for validation of each component under strict conditions. This reduces testing complexity and cost significantly:
- Each component is tested and validated individually
- Errors and defects are identified and isolated faster and easier
- Testing can be performed without all of the participating applications
- Participating applications can be simulated if they are not yet available or are too costly to provision for testing purposes
- Changes to participating applications can be tested faster, and more effectively
While Service Virtualization has tremendous benefits during the development cycle, it also benefits post-production system testing and support. Depending on the type of system, it may be physically impossible, and/or cost-prohibitive, to test the systems once they go live. Service Virtualization enables testing of the functionality of the systems without access to the production systems directly, so that future changes, upgrades and modifications can still be properly tested and vetted.
Contact Us About Your Next Service Virtualization Project
Contact Prolifics today at firstname.lastname@example.org to find out how Service Virtualization can be implemented within your current and future projects to improve your testing, reduce costs and improve overall system reliability.