In this session of the Testμ Conference 2022, we had Sowmya Sridharamurthy, Engineering Manager at Lytho as our guest speaker who joined Harshit Paul, Product and Growth Manager at LambdaTest, to take a deep dive into the different phase angles of API testing.
Sowmya spoke elaborately on how microservice architecture is gaining momentum with APIs taking over the stage and her thoughts on why she thinks test processes should shift the focus towards API test first strategy. She also discussed API test lifecycle management and the salient practices implemented within an agile development team.
Sowmya starts the session by discussing the future of the testing industry with microservices. She further talks about how companies in the online and pure tech spaces have been going through a continuous transformation for the last decade. She lists three ways how companies are transforming:
It can be through the process.
It can be digital.
It can be through a change in the innovation perspective.
By this continuous transformation, Sowmya meant that how we implement the solutions and applications changes the testing game significantly. For better context, she explained how setting up a business used to be methodical and required a lot of infrastructure and resources — a back-end developer, front-end developer, middle layer, network person, security person, and so on. It also required substantial financial investment to set up these operations in the old days.
She then explains how microservices and cloud infrastructure nowadays enable users to set up a business in just a few hours and with minimal investment. She further talks about the catalyst binding this advancement and transformation — API.
With the help of microservices application statistics, Sowmya shows how API is essential for stitching the application development fabric and is integral for boosting the growth of all significant industries. She further tells how ERP giants were heavily invested in the on-prem services. Their investments are made towards cloud infrastructures simply because it’s easier to scale and maintain.
She insists that cloud infrastructure takes the heavy load off from the business and application, and its pay-as-you-go model makes it affordable. For these reasons, many companies are moving towards cloud infrastructure or the cloud way of building applications.
Moving forward, Sowmya explains how working in different types of enterprises with people from different life backgrounds is a new challenge for emerging leaders. She encourages that we must make the best of our present resources.
Then, Sowmya walks us through the challenges faced by a leader. As per her, the challenges are:
Skill gap.
Resource fulfillment.
Capacity availability.
Shorter delivery times.
Skill Gap: Sowmya explains that people come from different aspects of life and professional education. But when it comes to software testing, we need skills. She further explains with an example — if I want to leave software testing and be a ballet dancer today, I still need to reskill myself. I would have to get lean, be more flexible, and finally learn how to dance from a professional dancer. So all these things are essential, and the same is the other way around. So if a person is coming to the software tech industry, there is a skill gap, and somehow I have to fill it up.
Resource Fulfillment: The second challenge she discusses is meeting the resource requirement. She says that in some markets, some skill sets are not available sometimes, and sometimes they become a unicorn. So as a leader, she still has to run the show and support her company business and its goals with the available resources.
Capacity Availability: Sometimes we may have a lot many numbers of people, more than we expect, but we also have been stretched with multiple projects, hotfixes, legacy applications, upgrades, migrations, and many other things that take place. Thus, the capacity of the existing resources can become another challenge.
Shorter Delivery Times: The more these problems increase at one end, the shorter the delivery times become. This is like sprinkling salt over your wounds! So basically, her product management group keeps chasing her about what they can release in the next 15 days. Yes, they can release, but then you know a risk involved; hence, it becomes a challenge for a leader now.
As per Sowmya, the team leader isn’t the only one who faces challenges; the team members also face challenges.
Then, Sowmya walks us through the challenges faced by team members. As per her, the challenges are:
Technical Anxiety.
Imposter Syndrome.
Unclear/no documentation.
Absence of Supporting Tools.
Technical Anxiety: According to Sowmya, she gave her team members an option if they wanted to perform UI testing or functional testing or if they wanted to do API testing and write code for the APIs. They will blindside and choose functional testing. They want to write the UI automation simply because it’s easier to connect, easier to digest, and something that they can visually see. But that’s not the same with the APIs. There’s an assumption and a bias already involved: “I may not understand this, I may need a lot of technical knowledge, this may need something that I might not be knowing,” and this anxiety builds on.
Imposter Syndrome: People across industries fall prey to imposter syndrome and often feel that they may not be good enough to do it or are not the right person to do it because they are not professionally trained. According to Sowmya, she hears this a lot in one-to-one mentoring sessions, but this is not the case. Everybody can do every part of testing, not just API testing.
Unclear/no Documentation: As per the recent survey, around 67% of the testers do not engage in writing documentation for APIs. They simply want to develop and deploy. Teams do not care about providing the proper documentation for any API, be it internal, partner, open or external API. This makes the game a lot more challenging for people on the other end — whether it’s a product and business end or the testing end.
Absence of Supporting Tools: So many companies and teams want to do API testing, but not everyone is willing to invest. It becomes a major challenge when companies take a back seat when investing in a good API testing tool and look out for free alternatives.
After dropping these knowledge bombs, Sowmya showcased to the viewers how her team overcame these challenges using the Postman flows and made their product, tech, and testing one.
Sowmya concludes that you don’t need to get bogged down as a team leader or software test engineer. She insists that the future is coming through the APIs, and you have to find a way to strike a balance between upskilling yourself and supporting your team by connecting to the business and growing yourself. Moreover, she encourages viewers not to worry and be open to the innumerable solutions that are out there in the market.
She further answered the questions put forth by the audience, where Harshit Paul, Product and Growth Manager at LambdaTest, took the initiative to ask them on the audience’s behalf.
It was indeed an informative session with Sowmya! The session ended with a few questions asked by the attendees to Sowmya. Here is the Q&A:
Suppose you could also showcase data drives with different combinations using flow in the API session. Can we also do the schema validation using the flow you are trying to showcase?
Sowmya: That’s a good question. I have always done schema validation using javascript. I have not done it otherwise. It should be possible, I guess, but if I answered this question, I would be lying.
And to answer the other part of the question, so you can’t keep passing details. This is a static test, so you must provide every detail already there for this flow to work. This is not dynamic where you can keep generating. However, there is a possibility that you can create a variable, but out of something not like, you keep forging some value and then pumping it into the flow, and that works. I guess this will reach there someday, but the tool does not support that well right now.
What will be the future of Monolithic applications?
Soumya: It will die someday; as rude as it sounds, the truth is that monolith will not be the future. You can already see that many companies and businesses, from ERP giants to SMEs and micro enterprises, no longer choose to be monoliths. In the cloud infrastructure, people are moving towards microservices and having more atomic functions or details stitched together as a fabric in an application.
So if you’re talking about a monolith, it will not sustain for long. As long as legacy applications survive, they will be there, but then it will do a sunset.
What’s your opinion on pact tests between APIs?
Soumya: It’s very subjective. Pact tests are good; they are a kind of contact testing between microservices. Since we do not have any testing alternatives in the market, pact tests have taken over. If I understand correctly, pact testing is still for technically driven people and inclines towards development. It has not come to the general testing market where everyone can embrace it and start doing it because it involves technical understanding. There will be more solutions coming in, as far as I know.
Should we start with the API automation first or the UI automation?
Soumya: Going back to the same thing I explained before, we have been taking a superficial level of automation in the last few decades, somehow trying to penetrate and then make our way or do something. But as we advance, the way the businesses are moving and the way the infrastructure and the entire system architecture are changing, sooner or later, you’ll end up following the inside-out approach. Here you will have to be more technical, which is, of course, through APIs through RPCs and then build your way towards UI.
Like the test pyramid, it will take the last position in the testing status. The way UIs are tested will also change where only rendering is checked and no business functionality through UI, which is prevalent in the market if I understand it from a test strategy perspective.
Is there any tool or approach to visualize the map of microservices and check how they communicate?
Soumya: We still use Micro to represent the blocks of our services and check how they’re communicating. We have not used anything within the team, and I may not have an answer for this. I’m sorry.
What is your opinion on testing serverless applications?
Soumya: That’s an excellent question. So that’s the whole crux of the future. Once you see the monolith applications, once you start, it starts running from line one of the code to the last lines of the code, and your whole application is running. But in the case of microservices, ten services are communicating with each other; even if one service is not up and running, the entire test suite will go for a toss. So I’m trying to build this whole picture that UI automation will take a downtrend in the next few years, not the next one-two years.
Still, over a decade, this will wipe out the way the testing is happening, but mostly it will occur through contract testings using news of the pact or the API tests, and I mean the test strategy is going to change to that stage, then the app and then the UI.
What is the effect of API testing in the Machine Learning and AI industry?
Soumya: The future is API. It is going to be API in one form or the other. So the entire industry will come in, be it blockchain, metaverse, AI, or machine learning. API will be the building blocks of all these arenas, so the crux is that there will be no escape from it.
Can you please help understand how meticulous API documentation requires to leverage a tester’s perspective like other test artifacts? Does API documentation stick only to standard inputs, endpoints URLs, output params/requests, environment, etc.?
Soumya: So firstly, it has to address why this API is, what this API is doing, and its limitations. Not many teams will mention the limitations; there will be technical imitation, business limitations, and then, of course, the type of formats of responses that are supported. Also, not many teams take care of the timings when I am trying to upload or download, which is the job of 50% of product managers nowadays. So that’s like uploading, downloading, or requesting data from the database. I don’t see teams doing it. It’s very important.
The minimum and the maximum range have to be defined. As a part of your test, this should be included. This should also include types of authorizations and how these authorizations can be achieved. I also talked about their responses, so some of these must be mentioned, along with examples that help the team build more scenarios.
Why is API testing critical for business applications?
Soumya: API testing is critical for business applications because that’s where the future is heading. So the future, what you see is metaverse, blockchain, and whatever cool names you hear. Even data analytics and business intelligence will be built over APIs simply because the entire system architecture and the cloud infrastructure is changing the way applications are designed. The catalyst behind all this change is driven through API, so they become the crux. To further simplify, it becomes a kind of like the heart of the entire application, so it’s as important to have blood in the body as necessary as it is to have APIs in the business applications.
Which one would you recommend, code-based or flow-based automation using API?
Soumya: I will be biased if I answer this question because code-based API automation will give you more flexibility to try it out anytime. Still, I have given you enough reasons and the challenges that I have to work or may have to work within this business. These challenges can be related to delivery time, budget, tooling, or skilling, so flow-based automation can be handy when finding a shared space to get things moving.