Application Virtualization

 General description

What is Application Virtualization?
Application Virtualization models the behavior of the interfaces to the system under test and stores the model and behavior in a virtual environment for later testing.
Application Virtualization is the practice of simulating the behavior of a physical asset in a software emulator, and hosting that emulator in a virtual environment.
Application Virtualization involves the imaging of software service behavior and the modeling of a virtual service to stand in for the actual service during development and testing.

Capabilities of Application Virtualization

Rapidly create multiple virtual test environments customized for each development and testing team.
Provides testing teams with 24/7 availability for testing as needed without dependencies on back- end systems and data stores.
Delivers realistic simulated development and test environments at a fraction of the cost of physical server environments.
Provides testing teams the ability to test more thoroughly throughout the lifecycle without worrying about data or service availability.

Application Virtualization enables you to create “virtual services”:

  • Virtual Services simulate the behavior of an entire application or system during testing.
  • Virtual Services can run on commodity hardware, private cloud, public cloud.
  • Each developer, tester can easily have their own test environment.
  • Developer and testers continue to use their testing tools (Manual, Web performance, UI test automation).

Client value (eg. virtualized testing lab)

Test Lab costs
  • Test lab infrastructure costs can be reduced by up to 90%
  • Labor involved in setting up test enviroments can be reduced by 80%++
  • Reduced or eliminated the cost of invoking 3rd party systems for non-production use, fee-based web services
Cycle Time
  • Test environments can be configured in minutes vs weeks
  • More testers can be focused on testing, rather than configuring test environments
  • More regression testing can be done independently from the User Interface, during development
Risk
  • Developers have the means to test software earlier at the Service/APi level
  • Large teams working on different parts of an application or system can effectively do parallel development by virtualizing different parts of the system
Application Virtualization enables clients to better manage their test environment, improve time-to-market and increase business agility while reducing cost

 Exercise. Which element will increase and which decrease?

Drag elements from bottom of the table and drop them to the right cell.

Benefits on the example of Deutche Bank

# Benefit Comments Project Impact
1 Contention within and between competing projects or with maintanance releases Caused by project and or maintenance cycles contending for resource Very High
2 Test Earlier in the development cycle Test environments and intelligent harnesses available earlier enabling defects to be identified and resolved earlier in the development life cycle reducing the cost of defect repair High
3 Expands the scope and capabilities of regression testing Regression can encompass interconnected systems to expand scope and reduce bespoke testing Moderate
4 Creates a library of re-usable assets Library of tools that can be used betweend projects removing the need to produce test stubs and harnesses Moderate
5 Reduces the physical assets required Reduction in the size and number of physical environments required. Reduced need to test with 3rd party environments To Be Defined
6 Reduces enviroment managment effort Reduce efffort to create and clear donw test environments Low
7 Simplifies Test Data Managment Simplified creation and managment of test data and the reser of test data sets Low
8 Greater overall test efficiency and flexibility The use of tools such as Application Virtualization greatly increases the overall flexibility and efficiency of the test process creating the opportunity to increase the volume of testing and projects that can be performed Very High
9 Application Chains Creation of reusable artefacts that can simulate components and systems will remove application chain dependencies High
Table 4.8/1 Benefits on the example of Deutche Bank