API Là Gì?
Giao diện lập trình ứng dụng – Application Programming Interface (API) là một cách để các phần mềm khác nhau có thể giao tiếp và tương tác với nhau. API xác định các quy tắc và giao thức cần thiết để hai ứng dụng khác nhau có thể trao đổi dữ liệu. Chúng thường được sử dụng để cho phép các ứng dụng sử dụng các tính năng hoặc dịch vụ từ các ứng dụng, hệ thống hoặc dịch vụ khác mà không cần biết chi tiết cách chúng được triển khai bên trong. Các dịch vụ điển hình bao gồm dịch vụ web, bus, dịch vụ doanh nghiệp, cơ sở dữ liệu, máy tính lớn và giao diện người dùng Web.
API Testing Là Gì?
API Testing là quá trình kiểm thử để đảm bảo tính đúng đắn, độ tin cậy và hiệu suất của các giao diện lập trình ứng dụng (APIs). Trong quá trình phát triển phần mềm, API Testing là một phần quan trọng để đảm bảo rằng các API hoạt động đúng cách và tuân thủ các quy định đã được xác định.
Các kiểm thử API có thể bao gồm:
- Kiểm tra chức năng: Đảm bảo rằng API thực hiện các chức năng theo đúng yêu cầu, trả về kết quả chính xác theo các điều kiện cụ thể.
- Kiểm tra giao diện: Xác định xem API có tuân thủ các giao diện đã được định nghĩa hay không, bao gồm cách gửi yêu cầu và nhận phản hồi.
- Kiểm tra bảo mật: Kiểm tra xem API có bảo vệ đúng cách để ngăn chặn các cuộc tấn công như truy cập trái phép, SQL injection, XSS (Cross-Site Scripting), vv..
- Kiểm tra hiệu suất: Đánh giá hiệu suất của API trong việc xử lý yêu cầu, thời gian phản hồi và khả năng chịu tải.
- Kiểm tra dữ liệu đầu vào và đầu ra: Kiểm tra các loại dữ liệu đầu vào khác nhau và xem xét dữ liệu đầu ra để đảm bảo tính nhất quán và chính xác.
Kiểm thử API giúp đảm bảo rằng các ứng dụng sẽ tương tác một cách chính xác với nhau thông qua các giao diện API, đồng thời cải thiện chất lượng và độ tin cậy của hệ thống phần mềm.
Khó Khăn/ Hạn Chế
Việc kiểm tra API trực tiếp thường yêu cầu những người phân tích kiểm tra kỹ thuật sử dụng các công cụ chuyên dụng. Vì thường không có giao diện đồ họa trực tiếp được liên kết với API nên có thể cần có các công cụ để thiết lập môi trường ban đầu, sắp xếp dữ liệu, gọi API và xác định kết quả.
Mức Độ Bao Phủ
Ở mức tối thiểu, quá trình kiểm tra API phải bao gồm việc thực hiện lệnh gọi API với cả giá trị đầu vào thực tế và đầu vào không mong muốn để kiểm tra việc xử lý ngoại lệ. Các thử nghiệm API kỹ lưỡng hơn có thể đảm bảo rằng các thực thể có thể gọi được được thực hiện ít nhất một lần hoặc tất cả các chức năng có thể được gọi ít nhất một lần.
Các dịch vụ Web RESTful cho phép các hệ thống yêu cầu truy cập tài nguyên Web bằng cách sử dụng một tập hợp thống nhất các hoạt động không trạng thái. Một số tiêu chí bảo hiểm tồn tại đối với API web RESTful, tiêu chuẩn thực tế để tích hợp phần mềm. Chúng có thể được chia thành hai nhóm: tiêu chí bao phủ đầu vào và tiêu chí bao phủ đầu ra.
Tiêu chí bao phủ đầu vào:
- Kiểm tra định dạng dữ liệu đầu vào: Xác định xem dữ liệu đầu vào được gửi đến API có đúng định dạng hay không (JSON, XML, vv.). Điều này đảm bảo rằng API có thể xử lý dữ liệu đầu vào một cách chính xác.
- Kiểm tra các phương thức HTTP: Đảm bảo rằng các phương thức HTTP như GET, POST, PUT, DELETE được gửi đúng cách và được xử lý đúng bởi API.
- Kiểm tra tham số đầu vào: Kiểm tra các tham số mà API yêu cầu và đảm bảo rằng chúng được truyền đúng cách và ảnh hưởng đúng đến hành vi của API.
- Kiểm tra thời gian phản hồi: Đánh giá thời gian phản hồi của API dưới nhiều điều kiện khác nhau, bao gồm cả thời gian xử lý yêu cầu và thời gian phản hồi trả về kết quả.
Tiêu chí bao phủ đầu ra:
- Kiểm tra định dạng dữ liệu đầu ra: Xác định xem dữ liệu đầu ra từ API có đúng định dạng yêu cầu hay không, có tuân thủ định dạng chuẩn (JSON, XML) hay không.
- Kiểm tra mã trạng thái HTTP: Đảm bảo rằng mã trạng thái HTTP được trả về (như 200 OK, 404 Not Found, v.v..) là đúng với hành động được yêu cầu và có ý nghĩa tương ứng.
- Kiểm tra dữ liệu trả về: Đánh giá kết quả trả về từ API để đảm bảo rằng chúng chứa dữ liệu chính xác và đầy đủ theo yêu cầu.
- Kiểm tra bảo mật: Kiểm tra xem dữ liệu trả về có được bảo vệ đúng cách hay không, có tiết lộ thông tin quan trọng không và có tuân thủ các tiêu chuẩn bảo mật.
Loại Lỗi Phát Hiện
Các loại lỗi có thể được tìm thấy khi kiểm tra API khá khác nhau. Các vấn đề về giao diện là phổ biến, cũng như các vấn đề về xử lý dữ liệu, vấn đề về thời gian, mất giao dịch, trùng lặp giao dịch và các vấn đề về xử lý ngoại lệ.
Mình xin kết thúc bài viết hôm nay tại đây. Hẹn gặp lại các bạn trong các bài viết tiếp theo.
Happy Testing!