Behind the Scenes: How SDETs Drive Software Reliability at Flipkart
Flipkart handles 167 Million users shopping across 80 million products every month 🤯
How do they handle this enormous traffic on their platform without failing?
In this blog, we’ll take a look at how an SDET at Flipkart ensures that the system runs smoothly. It all starts with understanding the Architecture.
It all starts with understanding the Architecture
To become a great chef, it doesn’t simply come down to strictly following a recipe. Great chefs have the ability to craft variations of recipes to suit the customer. This requires a fundamental understanding of the ingredients and how they interact with one another.
Similarly, an SDET at Flipkart must familiarize themselves with the complex, well-thought-out microservices multi-tier architecture that underpins the platform.
Now, what does the architecture look like? Here we go 🚀-
Looks pretty complex, doesn’t it? We thought so!😁
Here’s a quick summary of Flipkart’s architecture -
The architecture in action - A simple “Add to Cart”
Let’s say you’re buying a smartphone on Flipkart. Once you’ve decided the model, you “Add it to cart”.
Adding a product to cart sounds simple doesn’t it? While it seems simple on the outside, there’s a complex set of events that occurs on the inside.
But what does an “SDET” have to do with this user-flow?
As an SDET, your goal is to identify and rectify any potential failures before the customer encounters them.
This would require you to validate each component and touchpoint in this flow. By simulating failures for different components, you ensure that they are robust and resilient. You would also conduct integration testing, which involves verifying the interaction between the various components.
So, how is an SDET involved in the SDLC?
SDETs start early in the Software Development Life Cycle (SDLC) and embrace the concept of shifting left.
Testing in early stage development is essential.
In practical scenarios, not all subsystems and components are ready simultaneously. If SDETs were to wait until all systems are ready before initiating testing, it would significantly delay the overall release timeline. To avoid such delays, SDETs are equipped to validate individual components, microservices, or modules in isolation as soon as they are ready. This lays a foundation for integration testing.
As the development progresses, SDETs shift their focus to testing the interaction and compatibility between various components. This phase ensures that all the individual parts work well together and that any issues arising from their integration are addressed promptly.
Finally, as the development nears completion, the system testing phase begins. SDETs conduct comprehensive tests to assess the system as a whole, ensuring that all components are seamlessly integrated and function as expected. User acceptance testing is also carried out during this phase, involving real users who validate the system's usability and functionality from an end-user perspective.
Seasoned SDETs go one step further and suggest enhancements to the architecture based on their knowledge of the system’s intricacies. They actively contribute to the overall improvement of the architecture.
A closer look into the flavors of testing
An SDET facilitates various kinds of testing to ensure the robustness and reliability of the system. Here are a few of them -
- Cloud Testing
- API Testing
- Microservices Testing
- Database Testing
- Synchronous and Asynchronous Flow Testing
Additionally, as business logic evolves and new features are added, SDETs play a crucial role in validating the impact of these changes.
For example, if a modification is made to the order services, such as triggering recommendations or generating gift cards, SDETs validate the API endpoints early on and perform selected end-to-end workflows to ensure the proper functioning of these new functionalities.
A peek into the preparation for Flipkart’s Big Billion Day sale
Every year, Flipkart runs a sale where there are massive discounts, deals, and exclusive offers across a wide range of products.
Ever wondered what goes into the preparation of Flipkart’s infrastructure to handle such a massive event?
Considering the diverse user base across different age groups, regions, and devices, as well as the wide range of browsers and operating systems, SDETs focus on various areas of testing to meet these requirements.
- Performance Testing
- Security Testing
- Scalability Testing
- Mobile/Web Testing
- Usability testing
With scale, automation frameworks are a must
In the fast-paced world of software development, code changes are not limited to once a week. Hundreds and thousands of lines of code are modified or added every day by numerous developers. Manually validating all these changes would be an overwhelming and time-consuming task. That's where SDETs come in with their smart responsibility to automate the testing process.
However, automation is not about simplistic approaches. SDETs go beyond plain vanilla automation and focus on designing and building a robust Automation Framework. This framework incorporates various tools and technologies such as
- Selenium WebDriver
- Grid
- TestNG
- Gradle
- Cucumber
- Extent Reports
- Log4J
And many more.
The Automation Framework serves as a structured foundation for efficient and effective test automation. By utilizing the Automation Framework, SDETs can ensure consistency, reusability, and maintainability of their automation scripts.
But wait! SDETs are also involved in monitoring and reporting
The utilities developed by SDETs facilitate the consolidation and analysis of data. By aggregating relevant information from different sources, such as logs, server metrics, and memory analysis reports, SDETs can gain insights into the overall health and performance of the system. These insights enable them to make informed decisions, prioritize their efforts, and address any critical issues promptly.
Automating the monitoring and reporting processes not only saves time but also allows SDETs to focus on more critical tasks.
By eliminating the manual effort involved in gathering and analyzing data, SDETs can spend more time on test design, improving test coverage, and collaborating with other teams to drive quality improvements.
Want to learn more about how SDETs @ Flipkart work? Check out Fellowship Program in QA Automation.
Until next time!