- Views: 4
- Report Article
- Articles
- Computers
- Software
Eliminating Software Testing Constraints through Service Virtualization
![Author: Michael Wade](/data/uploads/0000144000/000/abi_0000144060.thumb.100.jpg)
Posted: Apr 18, 2017
With the growing complexity of software applications, testing teams face a number of testing constraints. Such constraints include restricted access to the mainframe or test environments, unavailability of test data, limited access to third party systems and economic limitations. More often, constraints are faced when parallel development teams require access to the same environment. Service Virtualization is the practice of mocking and stubbing the development and test environments with realism in order to optimize the development time and shift left testing. All this is done with the sole agenda for a faster release process and higher quality delivery.
A Service Virtualization Strategy works on the following approaches for eliminating Software Testing Constraints and establishing Independent testing.
1. Creation of Live Environment: Service Virtualization needs to be applied at or between any layer where dependencies exist in order to provide the most realistic or live-like possible environment. Mostly, teams try to move forward with their own component development by stubbing the next downstream system only. Alternatively, when teams work with real data scenarios, the resulting environment is more realistic and current than manually coded stubs.
Benefits:
- Ability to start development despite the unavailability of the system interface.
- Reduced cycle time for test execution.
- Improvement in test coverage because of reduced data dependency and available testing time.
- Improvement in unit testing with lesser effort.
- Improvement in code quality due to increased test coverage and regression testing.
- Ability to build a simulator with a low maintenance effort.
2. Enabling Parallel Deelopment and Testing: Service Virtualization enables the development and testing team to work simultaneously by acting as a ‘go between’ asset between the system under development and the system under test in a symbiotic manner. Such a solution allows teams to execute under live services where they are available, functionally robust and data synchronized. For situations where the teams do not have the services that support the component correctly, they can switch back to virtual services. This ability to switch between a purely virtual system and a live system is a very powerful asset in creating a robust parallel development capability.
Benefits:
- Increase in the speed of test and development cycles.
- True responsiveness of Agile Iterations.
- Reduced burden of Version control.
- Increase in issue acceptance and resolution prior to production.
- Faster delivery with higher quality and higher accuracy.
3. Handling Test Data for Dependencies that are Out-Of-Scope: Every team, for their activities, has some system and associated data, some of which are in-scope and others that are out-of-scope. An in-scope system refers to the one used directly on that system, while the out-of-scope ones are required for supporting the in-scope system. Service Virtualization allows the teams to always have an on-demand access to the relevant datasets or systems under test, and that data will cover almost infinite valid data scenarios in order to support high-volume performance and regression testing needs.
Benefits:
- Eliminates delay due to lack of access of current data from out-of-scope systems.
- Availability of valid test scenarios 24/7 for multiple test and development teams.
- No overwriting conflicts between activities by different teams.
- Little or no impact on live systems.
- Reduced time spent on data set ups and resets.
4. Support for Heterogenous Technology and Platforms: Heterogenous systems are the norm in enterprise IT environments. Service virtualization needs to be applied to virtualize any and all dependencies that impacts the System Under Test. This includes Web traffic, Web Services, Integration Layer as well as simulating transactions and connections with mainframes, databases and third party services.
Benefits:
- Faster delivery for both the development and testing teams.
- Reduced cost of pre-production infrastructure.
- Eliminates service costs and fees of accessing remote systems.
- Allows shift left testing.
Conclusion
Service Virtualization provides an important platform for enterprise software development and testing. A well rounded Service Virtualization Strategy takes into account not only the technical details, but also the operational details which helps to best guarantee its widespread adoption and success.
About the Author
Michael works for Cigniti Technologies, which is the world's first Independent Software Testing Company to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.
Rate this Article
Leave a Comment
![Author Thumbnail](/inc/images/no-person-100.gif)