It is no denying that software test automation has evolved to play a very significant role in today’s world of continuous delivery and integration. Automation testing is what enables rapid, scalable and reliable testing, helping testers bring in a solid test strategy not compromising on quality despite the short and agile time to market.
The dynamic business, user and market landscapes continue to bring in several changes at an engineering level as well and one such core change that is becoming hugely popular is the micro services architecture in the software development life cycle. While at a high level, this may look similar to our already established web services model and micro-services can borrow a quick one or two best practices from the API world, there are significant differences between the two. For example, a web service could be implemented as a micro-service, but a micro service need not necessarily we a web service at all. It could very well be a self-contained internal module that has no interaction with the external APIs. Understanding this as a compare and contrast will help testers build a solid automation testing strategy taking in some pointers from the traditional API automation world.
At the core though, it helps to see micro-services as a path to code simplification – handling code in small modules each as a service, enabling easier coding, debugging, troubleshooting and testing. To that extent the humble beginnings we have had with unit testing is one of the best ways to get testing, and test automation started. However this is just a start. Others areas such as integration testing, system testing, end to end testing all become inevitable. Don’t these sound like a software testing 101? This is where I say, testing for micro services takes us back to the grassroots. However just the grass roots approach will not give us a fool proof solution. A lot of padding and ground work by the testers becomes necessary (and this is exactly where testers become pseudo developers themselves, while still maintaining their unbiased focus on quality) – whether it be mocking the services that are not fully ready, sharing instances of micro services to test as development is underway etc. If you look at tools available to test micro services they are largely unit testing, prototype testing and API testing tools as the focus is on the core micro function to be tested independently and interdependently. We at QA InfoTech have also been helping organizations take up micro services automated testing with frameworks that we have engineered using the open source stack of tools and technologies. If one comes in with an open mind to understand what really micro services are, why industry is adopting them, what benefits they bring in, and what to focus on in automated testing herein, willing to take in both traditional approaches such as unit testing and the more current requirements such as mocking and gap filling, testing herein is a back to grass roots approach blended with the current requirements giving, a solid automation test strategy that is reusable, scalable, reliable and usable across the product team.