SDET Unicorns

The Day I Almost Quit: My Journey to Mastering API Test Automation ?

I Quit

Table of Content

I still remember the day like it was yesterday. It was my first month on the job in test automation, and I was already contemplating quitting. I was sitting at my desk, my heart racing as I stared at my computer screen, a mix of panic and despair washing over me. I had just stepped into the world of API testing, an area vastly different from my comfort zone of Web Automation using Java. My new team was all about JavaScript and APIs, and there I was, the lone QA in the team, entrusted with the daunting task of preparing an automation framework for API testing. It felt like a huge task, and I wasn’t sure if I was ready.

In this blog post, I’ll take you on my journey from feeling overwhelmed and underprepared by APIs to mastering API test automation. I’ll share the challenges I faced, the lessons I learned, and how I transformed my career. Whether you’re a novice in the field or an experienced professional looking for insights, this post will provide valuable lessons and perhaps, a bit of inspiration. So, let’s dive in!

Discovering the Power of API Testing ?

 

1*poTD2Cm0K6NQTL8E0 bXew
Photo by https://approov.io/

As I delved deeper into my new role, I found myself questioning the necessity of API testing. I was primarily familiar with web testing and hadn’t worked with APIs before. I remember thinking, “Why bother with API testing? Doesn’t web testing cover end-to-end testing anyway?”

However, as I immersed myself more into the world of APIs, I began to realize the immense value of API testing. Unlike web testing, which can be time-consuming and may not pinpoint the exact location of an issue, API testing provides instant feedback. It allows you to identify and fix issues at their source, leading to more efficient troubleshooting and less time spent on guesswork.

Moreover, API testing ensures that your APIs — the critical communication channels between different software systems — are secure, reliable, and fast. This is crucial because if your APIs aren’t functioning correctly, it can disrupt the entire system they’re part of.

As a Quality Engineer, you can add immediate value to your team through API testing. It helps ensure the smooth operation of your software systems, providing quick feedback and pinpointing issues at their source. But beyond that, mastering API testing can also broaden your skill set. It’s a step towards becoming a full-stack Quality Engineer, capable of understanding and testing the system end-to-end, from the user interface down to the APIs and databases. This realization was a game-changer for me. It shifted my perspective, making me appreciate the importance of API testing in a whole new light.

However, manually testing these APIs can be a daunting task. With the constant changes and updates in APIs, manually checking them can be time-consuming and prone to errors. Recognizing the importance of API testing was the first step, but the real challenge was figuring out how to automate the process to save time and ensure accuracy. This is where my journey truly began.

The Turning Point ?

Back to my story, I had no experience with API testing, and the idea of automating it seemed like a distant dream. I was at a loss about where to begin. The feeling of being overwhelmed was an understatement. I scoured the internet for resources but found nothing specific to the tech stack we were using, which further deflated my confidence.

On the verge of giving up, I remember sharing my fears with my girlfriend at the time, saying, “This is impossible. I cannot do this. I am quitting this job.”

She looked at me, her eyes filled with understanding, and said “Take it one day at a time. Break it down into smaller tasks. Learn a little bit every day. You can do this.” Even though it was an advice I had heard before, hearing it in that moment gave me a fresh perspective and renewed my resolve. With this newfound resolve, I decided to take the first steps on my journey.

Embarking on the Journey: The First Steps ?‍♂️

Photo by Bruno Nascimento on Unsplash

With a daunting task ahead, I knew I needed a plan. I decided to have a candid discussion with my manager about my apprehensions and seek his guidance. He suggested I start by understanding the requirements of the application and identifying what we needed to implement the framework.

I reached out to my team, peppering them with questions, secretly hoping they wouldn’t question my competence. To my relief, they were supportive and walked me through the requirements. They helped me understand the kind of APIs we were dealing with, their usage, and whether there were any external factors like third-party services that might affect my testing. Armed with their guidance and a clearer understanding of the task at hand, I was ready to tackle the next big challenge — choosing the right tech stack.

Choosing the Right Tech Stack ?️

The next hurdle was choosing the tech stack for the API Automation. Should I stick to Java, the only language I was familiar with? I wished for a mentor or guide to help me navigate these decisions. Unfortunately, there wasn’t one, but you don’t have to go through these same struggles as me. More on this later in the blog.

I asked my team about using Java, but they were all using the JavaScript ecosystem, specifically Node & ExpressJS and Mocha as a testing framework. None of them had experience with Java. I realized that if I chose Java, I would be on my own. So, aligning with my team, I chose the JavaScript ecosystem for my testing framework. This decision not only ensured team support during roadblocks but also marked the beginning of a steep learning curve.

Navigating the Learning Curve ?

0*IpGMaEAMZ8pWGqrb
Photo by Tim Gouw on Unsplash

I turned to Google, YouTube, and countless other sites, hoping to find useful resources. I struggled to find anything that I could directly apply or perhaps I didn’t even know what to look for at that time. Sometimes, the answer is right in front of you, but if you don’t recognize it, you might overlook it.

I soon realized that I didn’t fully understand the tech stack my team was using. How does ExpressJS work? What is Mocha? I was filled with fundamental questions. I decided to learn about these technologies to understand how the application worked.

I bought Backend Development courses on Udemy, hoping they would help me with API automation. Each day after work, I would spend hours watching lessons, trying to understand backend development so I could do backend testing. Even though the courses didn’t directly help me with API automation, they enriched my understanding of our backend application and the JavaScript ecosystem, equipping me to face the upcoming challenges and make progress.

Facing Challenges and Making Progress ?

Despite all the learning, I still wasn’t close to building the API automation framework. My team started asking when they could see some tests for the APIs. I had spent countless hours learning, yet I still couldn’t write a single test. I started doubting myself again, thinking I was in over my head.

However, I now knew what to search for and had a better understanding of the libraries and frameworks that might work for our app. With a more focused and structured approach, I delved deeper into my research. Slowly but surely, things started to fall into place, leading me to the next crucial step — finalizing the tech stack and writing the tests

Finalizing the Tech Stack and Writing Tests ✍️

 

Photo by Markus Spiske on Unsplash

I found a few libraries and frameworks suitable for API automation and presented my findings to the team. They suggested doing a proof of concept (POC) with each to determine the best fit.

After doing a couple of POCs with different libraries and demoing them to my team, we decided to go with the following tech stack –
Language: JavaScript,
HTTP Library: SuperTest,
Testing Framework: Mocha,
Assertion Library: Chai.

All of these were quite popular and had good community support at that time. With the tech stack finalized, it was time to write tests for our application. I decided to start with the simplest tests possible — unauthenticated GET calls. I was nervous, but I knew I had to start somewhere. After a day of struggle, I finally saw my first test passing! It was a small victory, but it felt like a giant leap forward.

From there, it became a process of building one test upon another. There were numerous instances of failure, but with the support of my team — made possible by our shared tech stack — I was able to learn from these setbacks and continue to grow.

Learning and Growing ?

Most importantly, I always made sure that my tests were part of the code review process and the developers reviewed my code. This was a crucial step in my learning journey. It was through this process that I was able to improve my coding skills, as they kept pointing out things that I was doing wrong.

Receiving constructive criticism was one of the big turning point for me. It was a bit hard to swallow at first, but I soon realized that it was okay to make mistakes and learn from them. It was all part of the growth process. Over the years, I’ve accepted that it’s okay to be the least knowledgeable person in the room. That means you’re in a room full of people you can learn from, and there’s no better place to be than that.

To my surprise, what I initially thought to be a waste, all the efforts put earlier in learning the backend fundamentals, turned out to be a significant advantage when it came to writing API tests. Understanding how the application worked from the inside out gave me a better perspective on what to test and how to test it. It allowed me to create more meaningful and effective tests.

As I continued on this journey, the fruits of my labor began to manifest. My tests became more robust, my code cleaner, and my confidence soared. I had evolved from the overwhelmed newbie to a proficient test automation engineer, capable of crafting effective tests and contributing significantly to our software’s quality. This transformation marked a significant milestone in my career.

The Outcome: From Novice to Professional ?

 

Photo by Caleb Jones on Unsplash

By the end of the project, not only had I built a scalable test automation framework, but I also got promoted in my company. It was a challenging journey, but it was worth it. I had transformed from a novice to a professional, all thanks to taking it one day at a time, and never giving up. The feeling of seeing my tests running successfully, catching bugs, and contributing to the overall quality of our software was immensely satisfying. It was a testament to the hard work, perseverance, and continuous learning that I had put in.

Reflecting on my journey, I can’t help but wish for a smoother path, one with less trial and error. Perhaps a mentor or a guide to provide step-by-step assistance. Wouldn’t that make the journey to mastering API test automation a lot easier? With this thought in mind, I decided to create a solution.

Introducing Your Guide: Master API Test Automation Course ??‍?

 

Photo by Priscilla Du Preez on Unsplash

To save you from the struggles I faced and to make API Test Automation easier for you, I’ve created a new course as part of my SDET Unicorns Academy — “Master API Test Automation using TypeScript.” This course is designed to get you writing your first API test within just 10 minutes. It’s a comprehensive guide that encapsulates all the knowledge and experience I’ve gained over the years, presented in a clear, straightforward manner.

In this course, we’ll go through:

  • Basics of APIs and API Testing
  • Project overview and tech stack familiarization
  • Tool and framework setup
  • Creating a proof of concept with various HTTP methods
  • Building and refining API tests on a real project
  • Scaling tests through a testing framework
  • Adding authentication to the test framework
  • Diving into advanced topics: file uploads, utility files, reports, and CI with Jenkins
  • Best practices and tips for successful API test automation

Transform Your Career ?

This course is not merely a tutorial on API test automation. It’s a career transformation tool. It’s about equipping you with the skills and knowledge you need to excel in your job and make a real impact in your team. It’s about instilling you with the confidence to face challenges head-on and emerge victorious. And now, it’s time for you to embark on this journey.

Your Journey Begins Now ?

My journey to mastering API Test Automation was filled with challenges, but it was also a journey of learning and growth. And now, I’m excited to help you on your journey.

You don’t have to go through the same struggles and challenges as I did. Enroll now to make your journey smoother — Master API Test Automation using TypeScript

Check out the introduction video to learn more about the course —

Remember, it’s okay to feel overwhelmed at times. It’s okay to feel like you’re not good enough. But don’t let those feelings stop you from learning and growing. Take it one step at a time, ask for help when you need it, and keep moving forward. You’re capable of more than you think.

So, are you ready to transform your career and become a master of API test automation? I’m here to guide you every step of the way. Let’s get started! ?

My Resources

Thrive Suite: The all-in-one WordPress theme I used to create my blog.
Jasper AI: My favorite AI writing tool.
Surfer SEO:  A tool to help you rank your content on the first page of Google.

Write Content Faster

5/5

Write blog posts that rank for affiliate terms!

Join our mailing list

Unlock the Secrets to Becoming a SDET Pro in the Industry!

Stay ahead of the curve! Join our mailing list for exclusive insights, tips, and the latest industry updates delivered straight to your inbox

Table of Content

Related Post

7 Principles of Software Testing

7 Principles of Software Testing with Examples

Software testing plays a crucial role in the software development life cycle as it helps ensure the quality, reliability, and performance of the final product. Software testing is not just about finding defects; it also provides valuable insights into the overall quality of the software. By conducting effective software testing, it shows how well the application behaves in different scenarios and whether it meets user expectations.

Read More »
Differences Between CI/CD and DevOps

Key Differences Between CI/CD and DevOps

Software development is far from a simple journey that involves merely executing code and launching applications. It often presents challenges, as it’s rare to get everything right from the start. Each time you implement new or frequent code changes, you inadvertently introduce potential issues that can be time-consuming to resolve. This complexity necessitates a structured approach to ensure smooth production.

Read More »