Hello! I’m Tin, a QA engineer of HR payroll and this is the 5th day of the freee QA Advent Calendar 2023.
I had the opportunity to test an API in July of the current year, 2023, and I made the decision to write about it in the hopes that it would motivate and help others.
Work background
While my current team, Lapulapu, is now concentrating on the healthcare service, my previous work was primarily on e-application functions, which enables the users to submit an application or documents online using freee payroll. Some examples are geppen, bonus report, employment or health insurance, and a lot more. We call it e-app for short.
I also tested the invoice CRM service in addition to payroll, which was under the Balut team; this was a much shorter task than e-app since I mainly focused in Lapulapu's project, it was still beneficial to be able to work in a different team within the global team.
The first times
The current software market is undoubtedly competitive. That’s why user-facing errors that are caused by the issues within the API layer could be bad for any software-focused business in the long run.
In addition to discussing some technical aspects of APIs on a surface level, I will also write about my first experience testing them.
I had no experience testing APIs until I began testing one for a real project. I only had an idea about HTTP methods and Postman, a tool that can be used in API testing.
My background was merely familiarization; it isn't even useful in a practical sense. Even though it might not be an ideal situation, I still had a wonderful experience.
It goes without saying that project testing is time-sensitive, and it can be very daunting to test something without sufficient background knowledge or with team members who don't speak the same language. This is not only the first time testing APIs; it's also the first time testing in a team outside the global team.
Learning style
My tendency to learn best through hands-on experience was one quality that really aided me. I concurrently studied an API course on Udemy and conducted testing. I now have a better understanding of http methods, endpoint components, the meaning of responses, and even how to use Postman more clearly. This also entails learning how to comprehend API test cases and documentation because I'm testing a project in parallel.
Technical Knowledge: Leveled Up
There are still other HTTP methods, but these are what I mainly used:
GET: Retrieve data
POST: Create new data
PUT: Update existing data
DELETE: Remove data
Using these methods on a certain API endpoint will yield different kinds of results. For example, we have an inventory of books.
GET baseurl.com/books
The response should contain a list of every book that is in the inventory.
GET baseurl.com/books/{id}
We can see that the {id} is appended at the end of this one. The {id} will become a path parameter, indicating that it should only return a specific book with the indicated id.
GET baseurl.com/books?genre=cooking
Here, we can see that the parameter “genre” is used. Additionally, a question mark was used in place of a forward slash. This is known as a query parameter, and it's mostly utilized for data sorting and filtering. This will return the list of books in the cooking genre.
POST baseurl.com/books will actually add a new book to the database.
PUT baseurl.com/books/{id} will update the information of the book for a certain id
DELETE baseurl.com/books/{id} will delete the record of the book for a certain id
The course I took will be mentioned at the end of this, and while there is more to learn from it, the most significant thing I learned was understanding how and what to test in an API.
Takeaways that I will apply next time
Knowing the product or service that will be tested is the first thing a tester should do.
Understanding the API's requirements and its intended use should come next.
The same concept applies to API testing, where we test the happy path and negative scenarios just like we do with functionality testing. When a negative case occurs, such as when an account is created with a null username, the service should be able to handle it gracefully.
An API documentation will generally be available to assist you during the testing process; this material is normally written by the development team. When you are already running the test, the response codes that are listed in the documentation should match. In the event that an error occurs, an appropriate API response should be there to assist the user in understanding what is happening and how to proceed.
As the title indicates, this is only at a beginner level and is primarily intended for those with zero to minimal experience with APIs. There is obviously much more to learn about API testing.
How I coped up in the language barrier
The use of Deepl and Google Translate helped me and the team I supported to communicate despite the unquestionably thick language barrier.
Whenever I’m unsure about something, I make it to a point to ask them just to be sure.
As a QA, you should, of course, never make assumptions.
In order to address problems and concerns, we primarily used their language, Japanese.
I would copy their message, paste it on Google Translate and Deepl for comparison, and then I would draft my response, having it translated by the same programs because I am not fluent in that language. My minimal understanding of Japanese was definitely helpful in this case, as the translations were occasionally inaccurate.
How did it turn out?
Thankfully, I was able to execute all the test cases that were initially assigned to me. I cannot adequately describe the amazing feelings I felt upon hearing about the project's release. It was, in fact, an exhilarating, overwhelming, and enlightening experience. The dependable and extremely efficient operation of the APIs can be ensured through testing; The article 「How to write an effective test cases?」 written by Ween , QA engineer of Digitalization will be published tomorrow. let’s keep good quality~
Reference
For reference, the course I took in Udemy is the one below, completing until Section 5 only: https://www.udemy.com/course/postman-the-complete-guide/