Companies need to look for new ways to work in quality innovative applications in and out of the development and testing lifecycle. By continuously delivering new features and releases more quickly, an organization can better meet the demands of consumers and outmaneuver its competitors. But how to maintain quality in an always moving delivery cycle remains a core challenge. Learn how CA Service Virtualization works and enables testing across the software lifecycle, allowing developers, QA, and performance teams to work in parallel for faster delivery and more reliable outcomes.
For more visit http://www.ca.com/us/products/ca-service-virtualization.html
We’ll cover how Service Virtualization helps:
Replicates production like dependencies for testing
Helps you control inputs like response times, so you can do more negative testing
Virtualize 3rd party services so they are accessible all the time without fees
Reproduces production defects for faster remediation
Eliminates scheduling conflicts and enable parallel development
Today – We live in a digital world, with 24 x 7 access and give it to me know expectations.
So what are some of the challenges that stop us from going fast??
People.. Process… Resources … FEAR..
We like to refer to this to “continuous challenges”..
Not enough time to create all the test cases that are needed for coverage
The systems are not available when your ready to test
A major change to the initial requirements was mad and all the test cases now need to be recreated
Test data is not available - be it a mainframe system or APIs, or some 3rd party vendor’s system
Testing keeps getting postponed to keep the project moving forward.. so testing doesn’t happen until the end of the cycle when errors and defects require significantly more re-work than if they’re found early.
I love the line if your doing performance testing at the end of release your not really testing but measuring the performance.
So how do then you do you go fast Safely?
This is where Continuous Delivery comes into play.
We recently sponsored a report with Freefrom Dynamics that addresses this exact issue. If you want to read more about the move frame DevOps to Continuous Delivery I recommend reading this.
How.. Really the key is not about doing things faster.. But doing more things better in the time your given.
So what is the best approach/where do you start?
The old adage about how do you eat an elephant – one piece at a time applies here. By breaking into Continuous Delivery into smaller more manageable work-streams you can then start to evaluate where we are and look at the work that needs to be done within each area to move forward.
We could spend a week talking about each of these areas but for the purpose of today’s discussion we’re going to focus in on how we achieve “Continuous Testing”
So what we’re really talking about when we talk about how Service Virtualization enables Continuous Delivery is how Service Virtualization enables Continuous Testing.
Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate.
The key word is “automated”. Automation is the key. Every organization is in a different place when it comes to automation. Automation requires new skill sets and can also create new problems. When you shift skill sets from knowing a process to a tool new checks/reviews need to be put in place to ensure the “tool” is working correctly.
Orgs early in the process with large manual testing teams usually focus on IT Test Automation.
Even the best automation frameworks tend to bring you back to manual test creation, either in the form of script creation or keyword selection. The time spent converting test cases to automated tests can often then outweigh the time saved executing them and maintenance can create a further bottleneck.
With optimized test cases and the ability to auto execute more tests in shorter periods the problem then become availability – how then are you hitting all the systems you need to run you tests.. are they available? Do they behave like the real systems? Can you vary/control run conditions? . This is where Service Virtualization comes into play. When the system or requirements change, brittle automated tests must be updated, or otherwise you risk automated test failures and wasteful over-testing. This time spent identifying the impact of a change on tests and updating them can have a huge impact on speed and quality.
Service Virtualization creates life like copies of APIs, services and systems that can be used for testing and development without the need to access production systems, purchase hardware/software for test environments or pay 3rp party access services.
Without continuous access to the systems and services you need to test its impossible to continuously test.
So who is service virtualization for? Everyone.
Service virtualization listens to the conversation two systems are having. This conversation is translated into a recording that is used to replace the live service. Take for example testing a mainframe service. Access maybe limited to a couple of hours a week with service virtualization you can make a copy of that service and then use it whenever you want.
This also comes into play when working with 3rd parties. Many times the testing environment provided by the 3rd party is not up to snuff. For example we had a client that was experiences significant delays in regression testing because the response times from the 3rd party by using service virtualization they were able to cut their testing times from 6 hours to 45 minutes.
This is when a lot of people say well we can use mocks and stubs to do this type of thing. Mocks and stubs are limited to the same types of pre-canned requests and response every time you run the test. How will a mock and stub respond when you start replicating production level loads and pushing thru thousands of transactions per second. Mocks and stubs can’t scale up to the appropriate load levels needed to replicate the production environment. With service virtualization developers don’t need to create mocks and stubs and get access to the environments they need to test very early in the development time which further enhances productivity.
Enterprise applications are becoming more complex, distributed, and heterogeneous. Application business logic is no longer found only in the UI and the database (as in client/server), but now extends across multiple middle tiers and technologies. This is further complicated when applications consume underlying services from third-parties, or use highly interactive presentation layer technologies.
Organizations are also implementing more agile development methods and distributed teams. Yet, use of shareable, reusable test assets between these teams is limited or non-existent. Different tools are often employed, such as code-based unit testing tools for developers that are unusable by QA; and functional UI testing that does not translate errors into repeatable defects for developers to catch bugs earlier.
Modern application quality can only be ensured when every layer of the application is tested and verified throughout the software lifecycle. This requires a much higher degree of test automation and collaboration among stakeholders.
CA Application Test is not the automated testing solution your QA organization grew up thinking about. It truly automates the processes to be replicated during code creation and allows you to shift testing closer to development. It addresses these challenges and provides complete test coverage, with the ability to invoke and verify the behavior of each component across the end-to-end application. CA Application Test provides automated testability for all of the components in the technology stack. Out of the box, CA Application Test provides industry-leading standards support, with native integration to most J2EE servers, integration suites, and ESBs. Integration with Selenium Builder, a popular open source UI testing tool, enabling end-to-end testing from user interface all the way to backend systems.
CA Application Test also builds portable, executable test cases that are easy to extend, modify and maintain, easy to chain into workflows with other tests or suites of tests, and simple to integrate with existing test repositories. Test cases are designed to be shared across different teams and environments – including mobile and cloud environments, with the ability to easily attach prior results and artifacts to extend them, and the ability to readily execute with different underlying data.
CA Technologies can provide organizations with a comprehensive solution designed to address the issues around isolation and intelligence. CA Service Virtualization addresses the problem of providing intelligent stateful stubs through its ability to observe then simulate the behavior of dependent systems. The use of service virtualization can reduce or eliminate a large amount of manual effort and produces stubs which can be used in many lifecycle phases, including performance testing.
This is a very small set of examples. You literally can virtualize any IT asset.
This is a very interesting report
CA commissioned Forrester Consulting to conduct a Total Economic Impact™ (TEI) study and examine the potential return on investment (ROI) enterprises may realize by deploying CA Service Virtualization. Forrester interviewed four organizations who had implemented this solution in their enterprise. Taken as a whole, this composite company reported:
Early defect detection in QA, leading to $1 million in average annual savings
Development and testing efficiencies equating to $306,000 per year in savings
Testing environment infrastructure cost avoidance of $2,747,971
Highly recommend downloading and giving a ready. The first few pages summarize the findings. The rest of the report provides a really good summary of the key values and features of service virtualization.
Avoided $300,000 in test hardware and software costs
Cut integration time from three days to three hours
Decreased software defects by 25 percent hours
CA Technologies is ready to help your teams deliver high-quality applications faster than ever before. Using our integrated solutions and open framework, you can easily track, automate and manage all application releases—from planning and requirements to development, testing and deployment.
CA Agile Requirements Designer is an end-to-end requirements gathering, test automation and test case design tool which drastically reduces manual testing effort and enables organizations to deliver quality software to market earlier and at less cost.
CA Test Data Manager uniquely combines elements of data subsetting, masking and synthetic, on-demand data generation to enable testing teams to meet the agile needs of the organization.
CA Application Test enables teams to start API, system and response testing prior to the development of UIs.
CA Service Virtualization simulates systems across the SDLC, allowing developers, testers, integration, and performance teams to work in parallel for faster delivery and higher application quality and reliability.
CA Release Automation is a proven, enterprise-ready solution that can help build an agile, resilient and scalable continuous delivery pipeline—from development to test to production.
Thank you for taking the time to meet with us today. With that, I’d like to…..
(take questions, turn the time back over to, etc)