Ranger4 DevOps Blog

Integration Testing & Service Virtualization: Why should you do it?

Posted by Paul Hancock on Fri, Mar 7, 2014 @ 13:03 PM

What is Integration Testing and Service Virtualization?

Integration testing is a phase in software testing when individual software modules are aggregated and tested as a group. This phase occurs after unit testing and before validation testing. The inputs to the integration testing phase are the software modules that have been unit tested - they are combined into larger groups tests are applied to the groups as per their definition in an integration test plan. The output is the integrated system ready for system testing

 

Service virtualization is a method to emulate the behavior of specific components in heterogeneous component-based applications and is used to provide software development and QA/testing teams access to dependent system components that are needed to exercise an application under test (AUT), but are unavailable or difficult-to-access for development and testing purposes. Virtualizing the behaviour of the dependent components means that testing can proceed without needing to access the actual live components.

 

Integration Testing, Service Virtualization and DevOps

 

The DevOps movement has been born out of the increasing conflict between IT development and operations teams as a result of businesses’ need to deliver more innovation to their customers via applications and infrastructures of ever-increasing complexity. Where development are all about change, operations are driven to control the stability of the environments they manage and deliver the highest possible uptime to the business - and change puts all of that at risk.

 

With the advent of agile development, and its definition of done, done, done, another new complaint has arisen: developers feel like testers are intruding on their "need for speed” and testers are finding defects in code after the developers have moved on.

 

Integration testing and service virtualization helps development, testing and operations work better together.

 

Why should you do it?

Performing integration testing and service virtualization has a number of high level benefits: 

  • Improved software quality

  • Increased consistency, efficiency, reliability and predictability in the software development lifecycle

  • Fewer defects

  • Reduction in time spent testing

  • Elimination of bottlenecks

  • Doing more with less

  • Increased project delivery capability / reduction of project risk

  • Reduction in transactions lost due to production outages

  • Avoidance of additional hardware infrastructure expenses

  • Less time/cost associated with troubleshooting

  • Improved collaboration between development, testing and operations teams

  • Business-value based innovation to market faster

  • Happier customers

  • Reduction in spend on third party consulting/testing fees

Service virtualization delivers benefits for all types of testing including functional (manual and automated), integration, and performance testing.

 

Service virtualization emulates the behavior of software components to remove dependency constraints on development and testing teams. These constraints occur in complex, interdependent environments when a component connected to the application under test is:

  • Not complete

  • Still evolving

  • Controlled by a third-party or partner

  • Available for testing only in limited capacity or at inconvenient times

  • Difficult to provision or configure in a test environment

  • Needed for simultaneous access by different teams with varied test data setup and other requirements

  • Restricted or costly to use for load and performance testing

 
    

Topics: GreenHat, Service Virtualization, Integration Testing, test automation