Service Virtualization and API Testing

Cynthia Dunlop

Subscribe to Cynthia Dunlop: eMailAlertsEmail Alerts
Get Cynthia Dunlop: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Cloud Computing, Virtualization Magazine, SOA & WOA Magazine, Cloud Expo on Ulitzer, Software Testing Journal, Service Virtualization

Cloud Computing: Article

Be Thankful for Service Virtualization & Simulated Test Environments

Test earlier, faster, and more completely

To reduce the risk of business interruption in today's interconnected systems, organizations need to test across a complex set of applications, such as SAP, mainframes, third-party services, etc.. However, such systems are extraordinarily difficult to access for the purpose of testing. Service Virtualization provides simulated test environments that eliminate these constraints- enabling organizations to test earlier, faster, and more completely. Here are 10 specific reasons to be thankful for service virtualization...

Thankful For Service Virtualization

10. Dev.QA control over the test environment inclusive of dependencies
Development and QA often need to jump through hoops in order to get access to the test environments required to complete their development and testing tasks. Even worse, when the test environment is finally available, it typically lacks applications that lie beyond the organization's control. Service virtualization, with its test environment simulation technology, gives development and QA access to all the relevant application dependencies-including third-party applications-to create complete test environments on demand.

9. Scenario based testing from the outside-in
With today's highly-distributed systems, developers and testers need to invest a significant amount of effort to properly manipulate the environment that the application under test interacts with. As crunch time hits, the amount of work required often becomes prohibitive, resulting in incomplete testing. With service virtualization, it's fast and easy to immediately alter dependent system behavior so that tests can address a broad array of scenarios.

8. Reduce the risks of project failure
It's well known that delaying quality efforts until the end of the project places the entire project at risk-not only for missed deadlines and go-to-market dates, but also significant business risks. Using simulated test environments allows for continuous testing much earlier in the SDLC, which significantly reduces the organization's exposure to risk.

7. Release from large complex data management scenarios
Managing and resetting data from the database perspective requires considerable setup and teardown time. Service virtualization gives you granular control of test data at the component level. This allows the team to start testing earlier, and frees up resources previously required for test data management.

6. Performance testing under variable load from dependent systems
There's no doubt that server virtualization technology has enabled broader access for performance testing. However, the instability of this environment does not allow for consistent testing. Moreover, server virtualization is not applicable for applications that lie beyond the organization's control. Service virtualization's simulated test environments not only allow for discrete independent control over each endpoint, but also enable any permutation of endpoints to be orchestrated in the various ways needed to mimic realistic variable load from dependent systems.

5. Freedom to test early, getting the big showstoppers out of the way
When the team has early dev/test access to a simulated test environment, critical security, performance, and reliability issues will surface earlier-when they are exponentially faster, easier and cheaper to fix.  This early identification and resolution of defects allows for more complete testing later in the lifecycle and increases the prospects of meeting schedule and budget targets.

4. Simulate the performance of mobile applications
The biggest concern around mobile applications is variable performance of mobile apps across different provider networks. Service virtualization can simulate network performance (e.g., latency, error conditions, sporadic connection), allowing for the broad testing needed to test under a realistic spectrum of real-world conditions.

3. Make Agile teams truly agile
It's widely-accepted that testing has become a casualty of iterative development processes. Incomplete and evolving systems seem to limit the depth and breadth of tests that dev and QA are able to execute.  Additionally, the challenge of accessing a realistic test environment typically delays testing until late in each iteration. Service virtualization's test environment simulation eliminates these barriers by providing a realistic, complete test environment on demand-allowing Agile or Agile-ish teams to get to "done."

2. Test from the perspective of an environment, not just the app
The migration to cloud/SaaS applications, as well as SOA/composite applications, has distributed dependencies to a previously unfathomable extent. Service virtualization technologies give developers and testers visibility into-and control over-these "dependencies gone wild." They 1) paint a complete picture of the many dependencies associated with a test environment; 2) provide flexible access to a complete test environment (including the behavior of dependencies such as APIs and third-party applications); and 3) help the team identify evolving environment conditions that impact their test and service virtualization assets-and automatically refactor those assets for fast, intelligent updating.

1. Significantly reduce CapEx and OpEx associated with test infrastructure
Although server virtualization can assist to reduce the CapEx associated with test environments, it applies only to applications that are under your organization's control. Extending staged environments is extraordinarily costly and the OpEx associated with staged environments is a significant deterrence given the total cost of ownership. Using service virtualization and its test environment simulation technologies delivers control to the end users (dev/QA) and eliminates the need for superfluous hardware.

More Stories By Cynthia Dunlop

Cynthia Dunlop, Lead Content Strategist/Writer at Tricentis, writes about software testing and the SDLC—specializing in continuous testing, functional/API testing, DevOps, Agile, and service virtualization. She has written articles for publications including SD Times, Stickyminds, InfoQ, ComputerWorld, IEEE Computer, and Dr. Dobb's Journal. She also co-authored and ghostwritten several books on software development and testing for Wiley and Wiley-IEEE Press. Dunlop holds a BA from UCLA and an MA from Washington State University.