0

API - Yếu tố sống còn với cả thế giới điện toán (Phần I_Kiểm thử với API)

I. Định nghĩa

API là viết tắt của "Application Programming Interface". Là khớp nối giữa các thành phần phần mềm Nếu có một tính năng cần cung cấp cho module khác, phần mềm khác, bạn sẽ mở ra một API để tác giả của module/phần mềm kia truy cập vào. Các phần mềm muốn tương tác với nhau thì phải "gọi" API của nhau. Nó cho phép kết nối và trao đổi dữ liệu giữa hai hệ thống phần mềm riêng biệt. Một hệ thống phần mềm có thể nhúng các API bao gồm các hàm/thủ tục con(functions/sub-routines) mà có thể chạy bởi một hệ thống phần mềm khác.

Ví dụ: Trên tất cả các thiết bị điện toán thì hệ điều hành là phần mềm duy nhất có khả năng truy cập tới các thiết bị phần cứng. Do đó, hệ điều hành sẽ phải cung cấp API để ghi file, đọc file, thu và truyền dữ liệu từ card đồ họa, thu và truyền dữ liệu từ card mạng v…v… Khi cần ghi file chẳng hạn, các ứng dụng sẽ gọi tới API tương ứng của hệ điều hành. Điều này đảm bảo cho nhà phát triển ứng dụng không cần phải lo tìm hiểu mã nhị phân và các nguyên tắc máy móc phức tạp để tương tác với ổ cứng.

II. Kiểm thử API là gì?

Loại kiểm thử này không tập trung vào phần giao diện và thao tác giao diện của một ứng dụng. Thay vì sử dụng các đầu vào(bàn phím) và đầu ra tiêu chuẩn, trong kiểm thử API, bạn có thể sử dụng một phần mềm để gửi các yêu cầu đến API, nhận đầu ra và ghi lại phản hồi của hệ thống. Kiểm thử API yêu cầu một ứng dụng để tương tác với API. Để có thể kiểm thử một API, bạn cần:

  1. Sử dụng tool kiểm thử để điều khiển API
  2. Viết các câu lệnh để kiểm thử API
  3. Thiết lập môi trường kiểm thử API
  4. Kiểm thử API khác với các loại kiểm thử khác vì giao diện(GUI) chưa có, nên bạn buộc phải thiết lập môi trường khởi tạo mà gọi API với các tham số yêu cầu và sau đó kiểm tra kết quả trả về.

III.Các loại đầu ra của một API

  1. Bất kỳ kiểu dư liệu nào.
  2. Trạng thái(Pass hoặc Fail)
  3. Gọi tới một hàm API khác Ví dụ: a/ Input: Nhập hai số nguyên Hàm API: Long add(int a, int b) Output: Tổng của hai số nguyên b/ Hàm API: Lock() Unlock() Delete() Output: Confirm kiểm tra các thay đổi trong cơ sở dữ liệu hoặc giao diện của ứng dụng khi thực hiện gọi các hàm trên.

IV. Các test case cho kiểm thử API:

Các test case cho kiểm thử API được dựa trên:

  • Dữ liệu trả về dựa trên điều kiện đầu vào: Điều này tương đối dễ dàng kiểm tra, như đầu vào có thể được xác định và kết quả có thể được xác thực.
  • Không trả về gì cả: Khi không có giá trị trả về, hành vị của API trên hệ thống có thể được kiểm tra
  • Kích hoạt một vài API/event/interrupt: Nếu đầu ra của một API kích hoạt các event hoặc interrupt, thì các listeners của event và interrupt nên đươc kiểm tra
  • Cập nhật cấu trúc dữ liệu: Cập nhật cấu trúc dữ liệu sẽ có một vài kết quả hoặc ảnh hưởng lên hệ thống, và chúng nên được kiểm tra
  • Chỉnh sửa các tài nguyên(resources) nhất định: Nếu API gọi chỉnh sửa một vài tài nguyên thì nó nên được xác nhận bằng cách truy cập vào các tài nguyên tương ứng

V. Những điều cần kiểm tra trong kiểm thử API:

Kiểm thử API nên được thực theo các phương pháp kiểm thử trong quy trình phát triển phần mềm:

  • Discovery testing: Kiểm tra các API khi truy cập các tài nguyên và xem các API truy cập các tài nguyên, có được các quyền xem, xóa và sửa hợp lệ hay không
  • Usability testing: Loại kiểm thử này kiểm tra xem API có nàm đúng chức năng và thân thiện hay không. và API được tích hợp tốt trên các nền tảng khác hay không
  • Security testing: Loại kiểm thử này bao gồm các loại xác thực được yêu cầu và xem các dữ liệu nhạy cảm có được mã hóa thông qua HTTP hoặc cả hai hay không
  • Automated testing: Kiểm thử API được nâng cao trong việc tạo ra các đoạn mã hoặc công cụ mà có thể chạy API thường xuyên
  • Documentation: Đội kiểm thử phải đảm bảo rằng các tài liệu thích hợp và cung cấp đầy đủ các thông tin để tương tác với API. Tài liệu nên là một phần khi bàn giao

VI. Thử thách trong kiểm thử API

Thử thách trong kiểm thử API bao gồm:

  • Thử thách chính của kiểm thử API là kết hợp tham số, lựa chọn tham số và trình tự gọi
  • Không có giao diện để test nên gặp khó khăn trong việc nhập dữ liệu đầu vào
  • Kiểm tra đầu ra trên hệ thống khác là khá khó cho các QA
  • Các QA phải nắm rõ các yêu cầu về lựa chọn tham số và phần loại
  • Xử lý các ngoại lệ cũng cần phải được kiểm tra
  • Các QA cần có kiến thức về lập trình

VII. Kết luận

API bao gồm tập hợp các lớp/hàm/thủ tục mà đại diện cho tầng business logic. Nếu API không được kiểm tra chính xác, nó có thể dẫn đến các vấn đề không chỉ cho ứng dụng API mà còn cho các ứng dụng gọi chúng. Link tham khảo: http://www.guru99.com/api-testing.html http://www.programmableweb.com/news/review-postman-client-makes-restful-api-exploration-breeze/brief/2014/01/27


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.