Becoming a better Tester!
November 16, 2018
⌚ : 4 min
                                     Click to find relevant articles:

Service Virtualization - When integration points are a dependency for development

Being dependent on is nothing but relying upon. One has to wait for that other thing to get the task at hand started/completed.

If Dependencies are not resolved or not made available, the task cannot be started/completed.

If dependencies are made available, much of the testing from QA & Dev at a component level, Unit level, can “shift left,” or be moved earlier in the SDLC. This is because each component can be tested individually instead of waiting for complete assembly. Unit and regression testing would happen sooner, be more complete, and defects would be identified long before integration or user acceptance testing. Finding bugs earlier means issues are fixed sooner when the code is still fresh on the mind, instead later when people have to learn or regain context - leading to substantially higher remediation costs.

Different dependencies in Software Development and Testing :

Design phase-

Execution:

In this article, we’ll focus on Integration Components as a dependency. In future articles, we’ll explore how to deal with other types of missing dependencies.

Why Integration components may not be available:

Impact when dependencies are not ready / not made available :

How about making a copy of the Integration components for each team as per their requirement rather than waiting for teams to finish their work and then to integrate.?

Virtualization comes to rescue here.

Virtualization = creating a copy / virtual image of something.

In our context, this ‘something’ is the Integration components/legacy systems. So, we create the virtual image/copy of Integration components to represent the functions.

How this works :

  1. Identify the integration components

  2. Capture the Behavior of components. (Request / Response)

  3. Create virtual models - Service Virtualization converts these captured conversations and processed protocol request/response pairs into a model that behaves very similarly to the real thing and provides the scenario coverage and capabilities for software development and testing activities.

  4. Deploy the Virtual models

  5. Execute the Dev / Test activities either Automated or Exploratory way.

How_int

Benefits :

Virtualization is just a helping hand! Myths:

Smelling the coffee and actually drinking the coffee has got a difference. Smelling doesn’t fill your stomach. In a similar way, Virtualization alone doesn’t prove your code or integration completely. You have to test with the actual system to prove.

When NOT to use Service Virtualization Tools:

Stubs, mocks, virtualization - all same? - Read more in my next article!

Summary : Virtualization helps in early identification of the defects, if any, and speeds up test execution. When the actual systems are integrated - as most of the flow is already verified against the virtual models, hence, the chances of failure are less while testing with actual systems. Virtualization helps in speeding up execution and making life simple when actual systems are integrated.


Connect / Follow me

I work on everything Quality!