How to Make Software Testing Faster and Cheaper
September 11, 2014
3 min read
A recent survey asking software developers, testers, and performance test engineers a series of questions about their access to test environments found that:
- Testing today’s composite, distributed applications requires interacting with a number of dependent (connected) applications, which are difficult to access. Our survey indicates that an average of 30 dependent applications, of which only 20% are available for early testing.
- Access to testing resources is extremely limited in practice, with 76% of respondents having restricted access to test environments and 71% of them having to schedule specific times to access these environments.
- The time available to access test environments is extremely limited (4 hour slots) and 30% of that limited time was consumed by configuration/setup tasks.
- Ultimately, testers had time to execute only 50% of the available test plan.
Why are so many organizations taking their chances with quality rather than providing unconstrained access to the environments required for effective testing? One key factor could be the exorbitant costs and complexity traditionally associated with today’s test environment.
Attempting to resolve test environment access constraints by building out a staged test environment or virtual test lab can be extraordinarily expensive. In many situations, building such an environment with staged application instances and virtual test labs can be technically impossible—for example, when the dependent application is a third-party application, a complex system (like a mainframe) hosted by another division, or an application beyond the “geo-political” boundaries of the group executing the tests. And even when building a “complete” test environment is feasible, configuring and maintaining all the dependent applications involves a high ongoing operational cost.
Service virtualization reduces the risk of failure — while cutting costs
Service virtualization poses a more efficient and cost-effective approach to resolving test access constraints in situations where a dependent application is difficult to access and/or configure for dev/test purposes.
Service virtualization provides 24/7 access to the dependent application behavior that is required for development and testing. In addition to eliminating the access constraints that impede testing, it also significantly reduces the CapEx and OpEx associated with establishing, configuring, and maintaining test environments. Organizations leveraging service virtualization are able to conduct testing earlier, faster, more thoroughly, and more accurately—significantly reducing the risk of application failure.
Service Virtualization Helps Overcome Testing Challenges
Across industries, service virtualization accelerates inter-application testing:
- Retail: Service virtualization provides rapid prototyping for immediate, real-time feedback.
- Telecommunications: Access multiple networked services and partner applications as virtualized services.
- Financial Services: Simulate legacy mainframe behavior to shift application integration testing left.
- Utilities: Test partner APIs for cross-partner integration.
Service Virtualization Enables Continuous Testing
Service virtualization helps development and QA teams access the complete, realistic test environments needed to develop or test an application—anytime, anywhere. The biggest roadblock to efficient continuous testing is access to complete, realistic test environments required to test meaningful transactions. By replacing unavailable dependencies with easily accessible and configurable “virtual assets”, service virtualization allows teams to start testing earlier, test more completely, and test continuously.
- Capture and simulate live system behavior from recording
- Rapidly model incomplete/unavailable components from service definitions and logs
- Easily configure complex test conditions (e.g., “what-if,” security, concurrency, fail-over, performance, and negative test scenarios)
- Simulate any system interactions—supports REST & web services, plus an industry-leading 120+ protocols/message types
Why Service Virtualization?
Service virtualization provides clear benefits:
- Tests application in near to complete production environment or not, depending on the needs of the test and the availability of the dependencies at the time.
- Shift left testing by testing application in the production environment as soon as possible. It’s always possible to transfer to live services as they are available and stable.
- Reduce the time and effort of diagnosing test failures. Tools make it easy and painless to pinpoint where tests have failed.
- Extend application testing with API testing that is configurable in both the environment manager and as part of a C/CD pipeline.
- Increase test coverage by creating scenarios that are difficult to implement from the UI alone.
- Enable continuous testing by increasing access to test assets via virtualized services
These benefits reduce the overall burden on testers to setup, run and diagnose application tests while increasing test coverage and allowing testing to be done sooner, more comprehensively.