How could Service Virtualization enhance your Agile Testing Strategy?
How often you push your “Phone Updates” to a later date as an update install means your phone would not be available to work. Even though the updates just take a couple of minutes, but in a fast-paced world where a minute delay could mean a lot, non-availability of services for a fraction of seconds frustrate you.
Often the similar situation is faced by a Tester/QA while performing his daily testing jobs – environments are not up, dependencies are ambiguous, developers/business users need the SIT environment and ‘n’ number of such reasons.
That’s where Service Virtualization comes into the picture!
In fact, Service Virtualization is all about continuity and boosting agility!
What is Service Virtualization?
Service Virtualization in laymen terms is providing services in a virtual manner. Just like on the internet you have virtual friends, virtual classroom or virtual 3D view of an art gallery, in a similar fashion the services exist for a tester/QA to test, but are not the real services.
Service Virtualization by its means simplifies the issues faced by a Service-Oriented Architecture [SOA] testing strategy. By providing a virtual set-up of services, it speeds up the testing and development process.
A quick example that I could think of is “market data” provided by Bloomberg, Reuters, ACTIVE, WOMBAT that is the lifeline of many investment firms. But for a tester to test the market data scenarios they are connected either with a simulator or a different service that stores the recorded data [ a replica of live data].
By connecting to a virtual service, testing is continuous, and the live environment does not get affected.
How Service Virtualization Could Enhance Agile Testing
Technology is making things simpler for the end users, but complexity is hidden beneath under wraps giving a tough time to developers and testers. Be it chatbots, Pokemon Go or a virtual reality venture showcasing you hotel suites from your living room, the building/testing of tools and apps is not simple enough. To streamline the testing/developing process service virtualization when combined with #Agile becomes handy –
- Get Continuous – Bid goodbye to delays and waiting time for services from production, DevOps could now leverage virtual services and boost continuous testing.
- Integration is Seamless – With virtual services present at your disposal, integration testing is just a matter of connection and few clicks.
- Real Time Analysis – With virtual services, the analysis could be done real time helping in finding issues at an early stage.
- Cost Efficient – With increased complexity of components, simulating them for development/testing environment could be a risky affair. Service virtualization helps in reducing that cost but still provides the benefit of a real-life scenario.
- Enables Parallel Testing – With virtual services, testers/QA could test the pre-prod/UAT environment in parallel accelerating time-to-market and providing a quality software.
- Competitive Advantage – With Service Virtualization firms could process parallel development, quick fixes and boost quality that provides an added benefit when compared to companies following the linear development strategy.
- Good fit to ever changing requirements – In agile when requirements are ever-evolving, virtual services with their flexibility and easy-to-use parameters helps in maintaining the continuity and still follow the Agile process.
- Collaborate, Share and Grow – With multiple teams working on the assets, it gets tough to share the resources in Agile, but service virtualization facilitates on-demand access to resources anytime to any group.
- Test anytime – With virtual services you can test anytime, be it functional, integration or performance testing.
As in our last post, we saw “ The Best Practices of Continuous Agile Testing” we know continuity is the key for any software/tool to survive. With service virtualization, we are a step closer to make it continuous agile and quality-assured!
LIKE THIS POST SHARE IT WITH YOUR FRIENDS
Need To Know the Best Practices For #Continuous Agile #Testing
The Delivery Manager approached the QA Head – When do you stop testing? The Head replied – We never stop testing, it should be continuous we may put a ‘,’ to pause for a while but make sure to pick it again to near perfection. The day, we stop testing, means our product is going to be the history in the market. Even if your product is stable, we need to test it if it works with new browsers, new java version? We need to test it again to see if it could take up a load of new users. We want to deliver quality, and hence Continuity is the key, we do not deliver use-n- throw software.
That’s the power of Continuity!
So how do manage continuity? Is Continuous Agile a tough game? Let’s a take a sneak peek into the best practice’s that could help you gain control of Agile and keep it continuous –
Know Your Customer
Knowing your customer mindset is of prime importance, just for example if you are testing a bank app – How easy it would be for the user to log in who a layman is? In case he forgets his password, do they have enough information to retrieve his password? Or what kind of information could hacker use to hack the account? Is the password field allowing a ‘copy function’?
Get into the shoes of the customer and then design the test cases/test scripts.
Integration and Automation is the Key
For testing to be Continuous Agile, every piece of code checked in needs to be included in the build. The Build Automation needs to be integrated with Automated Deployments, Test Case Execution, Regression Results and Bug Tracking.
Automate Test Cases TestAutomation
Manual Test Execution is a thing of past! Automate your test cycles to speed up the processes and widen your coverage.
Execute Smoke Test post Deployment
A test suite consisting of some bare minimum test cases in necessary for QA to start on Functional, Regression Testing to ensure the environment stability.
Convert Business UseCases to Test Scripts
Get in touch with the product owners/business users and try to get the use cases that could be elaborated to test scripts.
Access Your Software Risk Appetite RiskBasedTesting
What could be critical for a business user? What are the features that for software should work seamlessly and any issues in that could be disastrous? Weigh your features as per the risk associated with them and devise a Risk Based Test Suite. Either you could assign a number from 1-5 [ 1 being lowest and five being highest regarding risk] to your testcases and then could create a suite. Or you can get help from your business users/ top level professionals to assist you with that.
Adopt Lean Testing LeanTesting
Lean Testing is a concept where the waste is identified at an early stage to maximize quality. Just, for example, your banking app gets a new feature – as a new icon. As a tester now how would you design your test cycle? Does it need to have all the functionality tested or may be few would do? Lean Testing is a process through which you can not only speed up your testexecution but also identify the processes, delays that could hamper your continuous Agile process and provide guidelines for improvement.
Follow Standards, QA Processes, Testing Pyramid
Processes are meant to help you achieve faster and transparent results, so it should be a good practice to stick to them. To work on the test execution, you could also take help from the TestPyramid model and based on your risk appetite could work on UnitTesting, UITesting TestAutomation or IntegrationTesting.
Change is Constant
Charles Darwin said – “It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.” Hence, there would be last minute changes, fixes, builds and processes, the important point is you being prepared for it?
Give some time to Exploratory Testing Exploratory Testing
You cannot automate exploratory testing but is an integral part of any QA cycle, allocate some time for its manual execution.
Continuous Agile Testing is a process that could provide you with maximum throughput when you are Continuous. As the quote says –
A phased approach to continuous delivery is not only preferable; it’s infinitely more manageable.”
– Maurice Kherlakian.