API Testing là kiểm tra trực tiếp lớp giao tiếp giữa các hệ thống, không cần thao tác qua giao diện. Trong bài mở đầu này, chúng ta tập trung vào API, mô hình client–server, REST API và lý do tester cần kiểm tra lớp API bên dưới giao diện.
API là gì?
API (Application Programming Interface) là một giao diện cho phép phần mềm này giao tiếp với phần mềm khác theo quy tắc đã thống nhất. Thay vì cần biết hệ thống bên trong xử lý ra sao, bên gọi chỉ cần biết gửi dữ liệu gì, gửi tới đâu và có thể nhận lại kết quả nào.
Client–server hoạt động như thế nào?

Trong mô hình client–server, client là bên gửi yêu cầu, còn server tiếp nhận, xử lý và trả kết quả. Client có thể là trình duyệt, ứng dụng mobile, một dịch vụ backend hoặc công cụ test API.
- Người dùng mở màn hình chi tiết sản phẩm trên ứng dụng.
- Ứng dụng gửi request tới API, ví dụ yêu cầu sản phẩm có ID 125.
- Server xác thực quyền, đọc dữ liệu và áp dụng business rule.
- Server trả response chứa trạng thái và dữ liệu sản phẩm.
- Ứng dụng đọc response rồi hiển thị tên, giá và tồn kho lên giao diện.
Một request không nhất thiết chỉ đi qua một server. Backend có thể tiếp tục gọi service kho hàng, thanh toán hoặc vận chuyển rồi tổng hợp kết quả trả về client.
Vai trò của API trong hệ thống web/mobile
- Kết nối giao diện với backend: web/mobile gửi và nhận dữ liệu mà không truy cập database trực tiếp.
- Dùng chung nghiệp vụ: web và mobile có thể cùng gọi API đăng nhập, tìm kiếm hoặc đặt hàng.
- Tích hợp hệ thống: kết nối cổng thanh toán, đơn vị vận chuyển, email, bản đồ hoặc dịch vụ đối tác.
- Chia nhỏ kiến trúc: các service trao đổi với nhau qua API thay vì phụ thuộc trực tiếp vào code nội bộ.
REST API là gì?
REST (Representational State Transfer) là một kiểu kiến trúc để thiết kế dịch vụ trên web. REST API thường biểu diễn dữ liệu dưới dạng resource, sử dụng HTTP để client thao tác với resource và giữ mỗi request đủ thông tin cần thiết để server xử lý.
Trong thực tế, REST API thường dùng URL để xác định resource, HTTP method để mô tả hành động và JSON để trao đổi dữ liệu.
UI Testing và API Testing khác nhau thế nào?
| Tiêu chí | UI Testing | API Testing |
|---|---|---|
| Điểm kiểm tra | Giao diện và hành vi người dùng nhìn thấy | Lớp giao tiếp, business logic và dữ liệu trao đổi |
| Cách tương tác | Click, nhập liệu, cuộn, quan sát màn hình | Gửi request và phân tích response (bằng phần mềm Postman hoặc tương đương) |
| Tốc độ | Thường chậm hơn và phụ thuộc việc render giao diện | Thường nhanh hơn vì bỏ qua lớp UI |
| Khả năng quan sát | Thấy luồng nghiệp vụ ở góc nhìn người dùng | Thấy luồng chạy ngầm bên dưới |
| Loại lỗi mạnh | Layout, nội dung hiển thị, điều hướng, khả dụng | Validation, phân quyền, schema, dữ liệu, business rule, lỗi tích hợp |
Hai loại test bổ sung cho nhau. API pass không chứng minh giao diện hiển thị đúng; UI pass cũng không chứng minh API xử lý đúng mọi input, quyền truy cập và nhánh nghiệp vụ.
Vì sao API vẫn có thể lỗi dù giao diện hoạt động bình thường?
- UI che giấu input xấu: dropdown chỉ cho chọn giá trị hợp lệ, nhưng API vẫn chấp nhận giá trị ngoài danh sách khi gọi trực tiếp.
- UI chỉ đi qua happy path: các trường hợp thiếu field, sai kiểu dữ liệu, request trùng hoặc ID không tồn tại chưa được kiểm tra.
- Phân quyền sai: giao diện ẩn nút xoá với user thường, nhưng endpoint xoá không kiểm tra role.
- Dữ liệu trả về thừa: UI không hiển thị password hash hoặc thông tin nội bộ, nhưng API vẫn trả các field nhạy cảm trong response.
- Client tự bù hoặc dùng cache: giao diện đang hiển thị dữ liệu cũ, tự đặt giá trị mặc định hoặc biến đổi response nên người dùng chưa thấy lỗi.
- Các client dùng API khác nhau: web vẫn chạy tốt nhưng mobile hoặc hệ thống đối tác lỗi vì dùng field, version hay luồng khác.
quantity: -5 mà API vẫn tạo đơn và tính tổng tiền âm, lỗi nằm ở validation phía server.Học tiếp
- API Testing: Cấu trúc của 1 API – Base URL, resource, endpoint, request và response.
- API Testing: JSON và cách làm việc với nó – object, array, key–value, kiểu dữ liệu và
null.




