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
Solve Business Problems by being Agile-Checked! Would you?kinkar brain was cluttered, being a technical head he was committed to delivering a project within six months, and after working for five months on a project when they were ready for the first UAT, the code refused to float because of incompatibility of browsers.
Had he been Agile-Checked; he could have avoided the last-minute pressure. Seems unbelievable? Let’s run through some facts.
What is Agile Checked?
The two things that drive a business are
- What Do Customers want?
- How Quickly can you present them with Assured Quality?
Rest all are supporting parameters like skills, logistics, monetary fund’s, etc.
Being a business owner, you do not have much control over “What customers want” as they can demand a “Trip to Moon.”But being a businessman you do have a control on how quickly you present “A Trip To Moon” with Assured Quality! That’s where Agile Manifesto AgileManifesto comes into the picture.
Being Agile-Checked is all about
- How frequently you push your software/application into a live site
- Concrete Planning with user stories and set timelines
- Working in smaller chunks that could be rolled back in case of issues
- Your Client Could view “How the Trip to Moon “is being Planned i.e. setting the expectations right!
- Tracking and evaluating manhour that helps in SMART planning
- Continuous Execution and Deployment
- Working as a TEAM – that involves each and keeps them motivated.
- Growing your business as you involve stakeholders
- Continuous testing that helps in improving the quality
How To Be Agile-Checked?
To be educated about SCRUM/Agile is easy as many courses and certifications could help you, but all that learning can only be put into practice when you know the “Best Practices” to be followed –
- Collaborate with Customers as team
- Review your Product Backlog before every iteration
- Keep it time-boxed
- Let business and technology be compatible
- Weigh each user story with three parameters – Complexity, time and Business Value
- Keep SCRUM short and crisp
- Automate testing
- Have strict programming guidelines or go for pair programming
- Adopt to Test Driven Development
- Let the Burndown charts not burn your skills
- Package your code as a gift that is easy to deploy and ready to use
- Let the Sprint demo meeting be as the code is going LIVE
- The best communication is through speech
- Change is welcome, be adaptive
Does Agile-Checked Help Me to Deliver Quality?
The short Answer is Absolutely YES, and the long answer is let me explain with an example.
Koovy, the head of the development team, is working on the new product that needs to be delivered within six months, they bagged this project because they bid less time against their competitors. So now Sales team has done their job it’s time for the Tech-heads to prove themselves. Let’s compare the three models under different parameters –
|Expected Met Actual|
If we pick a Waterfall, model –
It could be risky, as considering we devote 4.5 months to designing, developing and unit testing we would need another months’ time to test and fix the bugs, now if there are any changes to the code or design changes that would not have enough time to set. So, could lead to uncertainty!
If we Pick V-Model –
With flexible requirements, V-model could prove to be a timely affair, as the verification and validation happen in parallel, any change would also need to be reworked. Just for example if there is a change in the login screen, the parallel task of user manual also needs to be redone, and as we have limited time, this model may not prove to be effective.
If We Pick Agile- Methodology-
If we structure the work and divide it into deliverable modules, we could complete the work within the estimated time, would be ready for any surprises and clients could review the work in parallel, helping them to know what’s being cooked and if it matches their expectations.
Well, there are no clear ground rules defined as which methodology should be picked up under which circumstances, however with ever-evolving technology it’s highly recommended to be adaptive to changes and mark your application/software as Agile-Checked. Would you?
LIKE THIS POST SHARE IT WITH YOUR FRIENDS
Fast track your testing process
Micro Services – The new kid on the block
As the Agile form of software development is making waves and ruling the roost in the software game, a new player is slowly emerging – microservices. It is similar to the many small iterations that characterize the Agile development module. So what exactly is microservices?
To understand this, let us first take into account the two basic styles of software development. First, we have a monolithic design, which is a single application entirely contained in a single process.
This sort of application has several groups of classes that are interdependent. Thus, if changes are made to one class, it affects all the other classes.
Next, we have the microservices architecture. Here, the application has micro-services that come together to make up the whole or combine their processes to execute a task.
Every single microservice has its own specialized, customized responsibility within the application’s structure. They are not dependent on each other, and thus, can be deployed and tested individually instead of having to rewrite the entire application.
Applications in Testing
Microservices have various applications in the automated testing field. Let us first examine testing in isolation. Since microservices are isolated from the application, the entire application need not be changed when you change a microservice, and therefore you can test a microservice in isolation. This is an easy place to start your automated testing journey as it will not affect your entire product, only a part of it.
This does not mean that you don’t have to test your entire application after testing the microservice in isolation. You still have to do that to ensure the microservice has integrated as well as its predecessor, but this is very easy and doable to start to the automated testing journey that will save you a lot of time in the development field.
In an application that is based on microservices, end-to-end testing becomes complicated. For your end-to-end testing needs, a good idea is to follow the Pareto Principle that states that 80% of the consequences stem from 20% of the causes. Thus, the approach you should take is to identify your core services that are absolutely essential and automate them, as you need the least margin of error in testing there.
Pro-tip: Do your testing in production
If you want to keep the quality of your output high, you need to test while in production to end up with the best possible version of your product. Microservices development module is fluid, as every piece does its own work, and behaves in isolation. Thus, unless you test during production, you will not have a clear idea of how the services are interacting with each other, nor will you be able to test this interaction.
Another important aspect that you will need to incorporate into your development module is an excellent monitoring and alerts infrastructure. This is because you need to quickly get on top of any issues that might crop up. Since every single service needs to work in order for your product to achieve an end result, you need to be able to identify, isolate and fix any problem that comes up with lightning speed.
This is cut down if you have a good testing in production framework that includes monitoring and alerts as well. Finally, if your monitoring and production testing is spot on, then not only will you be able to respond to the issue quickly, but you might be able to devolve to a more stable build even before your users know that a problem has occurred.
If you want to learn more about being more productive with Test Automation, contact us at CloudQA (firstname.lastname@example.org)