What is API testing (Phần I)

Khi tôi bắt tay vào làm cho một dự án, ở đây cơ sở dữ liệu chỉ được view mà không được phép tạo, xóa...dữ liệu muốn có được phải thông qua app, app lại chưa hoàn thiện cả về Implement và testing. Developper cho tôi ý kiến là: “Chị hãy dùng api để test”, tôi lơ ngơ như gà mắc tóc, ban đầu chỉ biết api có lẽ là dùng một soft nào đó để chạy các param tạo ra dữ liệu chăng? Và rồi bắt đầu nhờ Dev giúp đỡ. Chưa biết cơ chế thế nào thì có thắc mắc cũng chẳng biết hỏi ra sao? Rồi tôi bắt đầu tìm hiểu về API testing. Và các bạn hay theo dõi xem API testing có phải là việc tạo dữ liệu như tôi đã nghĩ thôi không nhé?

Để thảo luận về API và Web services trong quá trình test, đầu tiên cần xác định API là gì và làm thế nào để làm việc với nó. Một giao diện chương trình ứng dụng, hoặc API, làm việc để kết nối với ứng dụng web và những API khác.

Một ứng dụng tạo ra 3 phần tối cần thiết đó là ý tưởng có thể làm việc và giao tiếp theo các phân khúc khác nhau, vì vậy cần có sự đổi chỗ giữa chúng:

        1. Data Tier

        Trường hợp dữ liệu được lấy ra trong cơ sở dữ liệu và hệ thống tập tin,  sau đó được lưu trữ.

        2. Logic Tier

        Bộ não của ứng dụng là xử lý dữ liệu giữa các lớp, điều phối ứng dụng, xử lý các câu lệnh, và đưa ra các quyết định hợp lý. Lớp này được làm bằng API.

        3. Presentation Tier

        Lớp trên cùng của ứng dụng là giao diện của người dùng, chuyển các tác vụ thành một cái gì đó mà người dùng hiểu được.

Hay nói một cách khác API là bộ não kết nối của thế giới chúng ta. Đó là tập hợp các công cụ, giao thức, tiêu chuẩn và mã kết nối thế giới kỹ thuật số của chúng ta với nhau. Các API cho phép các công ty chúng ta trở nên Agile hơn, mọi thứ di chuyển trên di động và mọi thứ để làm việc với nhau theo cách hợp lý.

Do đó, API testing là quá trình kiểm tra rằng API và quá rình tích hợp chúng cho phép làm việc theo cách tối ưu nhất. Hình thức thử nghiệm này tập trung vào việc sử dụng phần mềm để thực hiện các cuộc gọi API để nhận được một đầu ra trước khi quan sát và ghi lại phản hồi của hệ thống. Quan trọng nhất, điều này kiểm tra rằng API trả về một phản ứng chính xác hoặc đầu ra dưới các điều kiện khác nhau. Đầu ra này thường là một trong ba loại như sau:

- Trạng thái Pass hoặc Fail

- Dữ liệu hoặc thông tin

- Gọi đến một API khác.

Tuy nhiên cũng có thể không có đầu ra nào cả hoặc một điều hoàn toàn không lường trước xảy ra. Điều này làm cho vai trò của Tester (QA) trở nên quan trọng đối với quá trình phát triển ứng dụng.Vì API là trung tâm dữ liệu trung tâm của nhiều ứng dụng, việc kiểm tra dựa trên dữ liệu cho các API có thể giúp tăng phạm vi kiểm tra và tính chính xác.

Trong quá trình kiểm tra API trực tiếp, việc xác định các kịch bản pass / fail là một thách thức lớn hơn một chút. Tuy nhiên khi so sánh dữ liệu API trong phản hồi hoặc so sánh hành vi sau cuộc gọi API trong một API khác sẽ giúp bạn thiết lập các kịch bản xác nhận xác thực.

API Testing là một trong những phần khó nhất của toàn bộ chuỗi kiểm thử phần mềm và kiểm tra chất lượng của phần mềm do nó hoạt động để đảm bảo rằng cuộc sống số của chúng hạy một cách ngày càng không đổi và hiệu quả. Trong khi các Developers chỉ thử nghiệm các chức năng mà họ đang làm việc, thì những người Tester (QA) có trách nhiệm cần thực hiện cả hai chức năng riêng lẻ và hàng loạt hoặc chuỗi các chức năng, khám phá cách chúng hoạt động cùng nhau từ đầu đến cuối.

Why is API testing important?

  • Tất cả các dạng phần mềm là cần thiết để xác định lỗi và sự mâu thuẫn khi bạn đã release một sản phẩm và cả khi bạn đảm bảo rằng nó tiếp tục hoạt động khi nó ra ngoài tự nhiên. Rõ ràng là, nguy cơ đưa một sản phẩm xấu và đặc biệt không an toàn trên thị trường lớn hơn chi phí để kiểm tra nó.

  • Đây chỉ là một số ví dụ về các bài kiểm tra bảo mật phổ biến mà API có thể dễ bị tổn thương.

  • API mang lại giá trị gì cho ứng dụng của bạn? Đó là những gì làm cho điện thoại của chúng tôi "thông minh" và đó là những gì hợp lý hóa quy trình nghiệp vụ. Nếu bất kỳ API nào không hoạt động hiệu quả và hiệu quả hơn nữa, nó sẽ không bao giờ được chấp nhận, bất kể đó là một API miễn phí hay mở hay là gì mà bạn phải trả tiền cho mỗi cuộc gọi hoặc nhóm các cuộc gọi. Điều tồi tệ hơn, nếu một API bị phá vỡ vì lỗi không được phát hiện, nó không chỉ có thể phá vỡ một ứng dụng duy nhất mà còn là phá vỡ cả một chuỗi quy trình nghiệp vụ gắn với nó.

What you need to start API testing

  • Phần đầu tiên của API testing liên quan đến việc thiết lập một môi trường thử nghiệm với tập hợp các tham số cần thiết xung quanh API. Điều này liên quan đến việc cấu hình cơ sở dữ liệu và máy chủ cho các yêu cầu của ứng dụng. Khi bạn đã thiết lập môi trường thử nghiệm API, hãy thực hiện cuộc gọi API ngay để đảm bảo không có gì bị hỏng trước khi bạn tiến hành thử nghiệm kỹ lưỡng hơn.

  • Bạn có thể bắt đầu kết hợp dữ liệu ứng dụng của mình với các kiểm tra API để đảm bảo rằng API thực hiện như mong đợi đối với cấu hình đầu vào có thể được biết đến. Xem ví dụ Thử nghiệm REST này dành cho người mới bắt đầu để giúp cho việc hiển thị.

  • Tiếp theo, bạn cần tổ chức API test xung quanh cho chính bạn. Hãy bắt đầu hỏi chính bạn những câu hỏi như sau:

    - Đối tượng mục tiêu của bạn là ai? Ai là người dùng API của bạn?
    
    - Môi trường nên sử dụng API như thế nào?
    
    - Bạn đang thử nghiệm những khía cạnh nào?
    
    - Chúng tôi đang thử nghiệm những vấn đề gì?
    
    - Những ưu tiên của bạn để kiểm tra là gì?
    
    - Điều gì sẽ xảy ra trong những hoàn cảnh bình thường?
    -
    - Điều gì có thể xảy ra trong những hoàn cảnh bất thường?
    -
    - Những gì được định nghĩa như là Pass hay là Fail? Dữ liệu nào là đầu ra mong muốn? Chuỗi sự kiện là gì?
    
    - API nào khác có thể tương tác với API này?
    
    - Ai trong nhóm của bạn có trách nhiệm trong quá trình test những gì?
    

Sau khi bạn đã tạo ra các ranh giới thử nghiệm và các yêu cầu, bạn cần phải quyết định xem bạn muốn thử nghiệm API của mình như thế nào? Đây là một số loại phổ biến của kiểm tra API:

- Kiểm tra chức năng - Công nghệ hoạt động của API

- Kiểm tra khả năng sử dụng - API rất dễ sử dụng.

- Thử nghiệm độ tin cậy - API có thể được kết nối liên tục và dẫn đến kết quả nhất quán.

- Kiểm tra tải - API có thể xử lý một số lượng lớn các cuộc gọi.

- Kiểm tra tính sáng tạo - API có thể xử lý được những cách khác nhau của người sử dụng.

- Kiểm tra bảo mật - API đã xác định yêu cầu bảo mật bao gồm xác thực, cho phép và điều khiển truy cập.

- Kiểm tra thành thạo - API tăng lên những gì nhà phát triển có thể làm.

- Kiểm tra tài liệu API - còn được gọi là kiểm tra phát hiện, tài liệu API dễ dàng hướng dẫn người dùng.

- Các quá trình kiểm tra chắc chắn sẽ thay đổi nhưng dưới đây là các ví dụ quá trình kiểm tra API phổ biến:

- Kiểm tra các giá trị trả lại API dựa trên điều kiện đầu vào.

- Xác minh nếu API không trả lại bất kỳ điều gì, bất kỳ kết quả nàohoặc kết quả sai.

- Xác minh nếu API kích hoạt một số sự kiện khác hoặc gọi một API khác.

- Xác minh xem API đang cập nhật cấu trúc dữ liệu nào.

Kết luận:

Trở lại bài toán ban đầu của bạn, bây giờ bạn đã trả lời được cho mình câu hỏi mình đang API testing hay đang sử dụng API để tạo dữ liệu chưa ạ? Câu trả lời là, bạn đang chỉ sử dụng API để tạo dữ liệu cho bài toán của mình thôi, chưa API testing.

=> Phần II tôi sẽ giới thiệu cho các bạn có thắc mắc: Vậy API là test manual hay test Auto. Hãy cùng tôi theo dõi nhé!

Tài liệu tham khảo: https://smartbear.com/learn/api-testing/what-is-api-testing/