Câu hỏi và câu trả lời phỏng vấn kiểm thử API 2024

Anh Tester chia sẻ đến bạn bộ câu hỏi và câu trả lời phỏng vấn Kiểm thử API năm 2024 tiếng Việt.

  1. API là gì?

API là viết tắt của Giao diện lập trình ứng dụng. Nó là một tập hợp các quy tắc, giao thức và công cụ cho phép các ứng dụng phần mềm khác nhau giao tiếp và tương tác với nhau. API xác định các phương thức và định dạng dữ liệu mà ứng dụng có thể sử dụng để yêu cầu và trao đổi thông tin.

 

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

Kiểm thử API là một loại kiểm thử phần mềm tập trung vào việc kiểm tra API trực tiếp, kiểm tra chức năng, độ tin cậy, hiệu suất và bảo mật của chúng. Nó liên quan đến việc xác thực các điểm cuối, yêu cầu, phản hồi, định dạng dữ liệu, xử lý lỗi và hơn thế nữa của API.

 

  1. SOAP so với REST như thế nào?

SOAP (Simple Object Access Protocol) và REST (Representational State Transfer) là hai cách tiếp cận khác nhau để xây dựng các dịch vụ web. SOAP là một giao thức với các tiêu chuẩn nghiêm ngặt và sử dụng XML để định dạng tin nhắn, trong khi REST là một phong cách kiến trúc dựa trên các tiêu chuẩn đơn giản, nhẹ hơn như JSON, XML hoặc các tiêu chuẩn khác.

 

  1. Ưu điểm của API Testing là gì?

Ưu điểm của Kiểm thử API bao gồm thực hiện kiểm tra nhanh hơn, phạm vi kiểm tra rộng hơn, phát hiện sớm các vấn đề, tự động hóa dễ dàng hơn, kiểm tra bảo mật được cải thiện và giảm nỗ lực kiểm tra tổng thể.

 

  1. Sự khác biệt giữa Dịch vụ web và API là gì?

Dịch vụ web là một loại API sử dụng cụ thể các giao thức và công nghệ web để giao tiếp giữa các ứng dụng hoặc hệ thống khác nhau. Mặt khác, API có thể bao gồm các giao diện khác nhau ngoài các dịch vụ web, cho phép các loại hệ thống phần mềm khác nhau giao tiếp.

 

  1. Mã trạng thái HTTP là gì?

Mã trạng thái HTTP là các phản hồi được chuẩn hóa được cung cấp bởi các máy chủ để cho biết kết quả yêu cầu của khách hàng. Chúng là các mã số gồm ba chữ số được gửi như một phần của tiêu đề HTTP khi một yêu cầu được thực hiện đến máy chủ.

 

  1. Mã trạng thái HTTP phổ biến là gì?

Mã trạng thái HTTP được nhóm thành các loại khác nhau: 1xx (phản hồi thông tin), 2xx (thành công), 3xx (chuyển hướng), 4xx (lỗi máy khách) và 5xx (lỗi máy chủ). Mỗi danh mục chỉ ra một lớp phản hồi cụ thể.

 

  1. Các loại kiểm thử API phổ biến là gì?

Các loại kiểm thử API phổ biến bao gồm kiểm tra chức năng, kiểm tra hiệu suất, kiểm tra bảo mật, kiểm tra tải, kiểm tra khả năng tương tác và kiểm tra mờ.

 

  1. Giới hạn sử dụng API là gì?

Giới hạn sử dụng API đề cập đến các hạn chế do nhà cung cấp API đặt ra về số lượng yêu cầu, giới hạn tốc độ, đặc quyền truy cập hoặc mức sử dụng dữ liệu cho một điểm cuối API cụ thể trong một khung thời gian nhất định.

 

  1. API là gì và Endpoint là gì?

API là một tập hợp các quy tắc và giao thức cho phép các ứng dụng phần mềm khác nhau giao tiếp. Điểm cuối đề cập đến một URL hoặc URI cụ thể mà ứng dụng khách truy cập để tương tác với API.

 

  1. Làm thế nào để bạn xác thực Điểm cuối?

Xác thực điểm cuối liên quan đến việc kiểm tra tính đúng đắn và chức năng của các điểm cuối bằng cách gửi yêu cầu và xác minh phản hồi. Nó bao gồm kiểm tra tính khả dụng của điểm cuối, thời gian phản hồi và dữ liệu trả về.

 

  1. Làm thế nào để xác thực Điểm cuối của Tìm kiếm, Lọc và Sắp xếp?

Xác thực Điểm cuối Tìm kiếm, Lọc và Sắp xếp liên quan đến việc xác minh rằng các chức năng này trả về kết quả chính xác dựa trên truy vấn tìm kiếm, tiêu chí lọc và thông số sắp xếp được cung cấp trong yêu cầu API.

 

  1. Làm thế nào để bạn xác thực Phương thức yêu cầu?

Xác thực phương thức yêu cầu đảm bảo rằng các phương thức HTTP khác nhau (ví dụ: GET, POST, PUT, DELETE) hoạt động chính xác và thực hiện các hành động dự định như được chỉ định trong tài liệu API.

 

  1. Làm thế nào để bạn xác thực Tiêu đề yêu cầu?

Xác thực Tiêu đề yêu cầu liên quan đến việc xác minh rằng các tiêu đề được gửi trong yêu cầu API chứa thông tin mong đợi, chẳng hạn như loại nội dung, mã thông báo xác thực hoặc bất kỳ tiêu đề bắt buộc nào khác.

 

  1. Làm thế nào để bạn xác thực Cơ quan yêu cầu?

Xác thực Nội dung yêu cầu liên quan đến việc đảm bảo rằng dữ liệu hoặc tải trọng được gửi trong yêu cầu API khớp với định dạng, cấu trúc và nội dung dự kiến được xác định trong đặc tả API hoặc tài liệu.

 

  1. Làm thế nào để xác thực Giới hạn tốc độ và Bộ nhớ đệm trong API?

Để xác thực giới hạn tốc độ, hãy mô phỏng các yêu cầu vượt quá giới hạn tốc độ đã xác định và xác minh rằng API từ chối các yêu cầu bổ sung như mong đợi. Đối với bộ nhớ đệm, hãy kiểm tra bằng cách gửi yêu cầu và kiểm tra xem các phản hồi được lưu trong bộ nhớ cache dự kiến có được trả về hay không, tránh các cuộc gọi không cần thiết đến máy chủ.

 

  1. Làm thế nào để bạn xác thực Phân trang và con trỏ?

Để phân trang, hãy kiểm tra bằng cách tìm nạp một tập dữ liệu lớn và xác thực xem API có trả về số lượng bản ghi chính xác trên mỗi trang với siêu dữ liệu chính xác như số trang, liên kết tiếp theo/trước đó và tổng bản ghi hay không. Con trỏ có thể được kiểm tra bằng cách đảm bảo điều hướng dựa trên con trỏ trả về các tập dữ liệu dự kiến.

 

  1. Một số phong cách kiến trúc để tạo API Web là gì?

Một số kiểu kiến trúc để tạo API Web bao gồm kiến trúc RESTful, SOAP (Giao thức kiến trúc hướng dịch vụ), GraphQL và RPC (Cuộc gọi thủ tục từ xa).

 

  1. Ai có thể sử dụng API Web?

API Web có thể được sử dụng bởi các nhà phát triển, ứng dụng của bên thứ ba hoặc bất kỳ thực thể nào yêu cầu quyền truy cập vào các chức năng hoặc dữ liệu cụ thể do API cung cấp.

 

  1. Các phương thức yêu cầu API là gì?

Các phương thức yêu cầu phổ biến cho API bao gồm GET (truy xuất dữ liệu), POST (tạo dữ liệu), PUT (cập nhật dữ liệu), DELETE (xóa dữ liệu), PATCH (cập nhật một phần dữ liệu) và OPTIONS (nhận các phương thức được hỗ trợ).

 

  1. Ưu điểm của API Testing là gì?

Ưu điểm của Kiểm thử API bao gồm thực hiện kiểm tra nhanh hơn, phạm vi kiểm tra rộng hơn, phát hiện sớm các vấn đề, tự động hóa dễ dàng hơn, kiểm tra bảo mật được cải thiện và giảm nỗ lực kiểm tra tổng thể.

 

  1. Một số giao thức phổ biến được sử dụng trong kiểm thử API?

Các giao thức phổ biến được sử dụng trong kiểm thử API bao gồm HTTP / HTTPS (API RESTful), SOAP (giao thức dựa trên XML) và các giao thức như TCP / IP cho một số API chuyên biệt.

 

  1. Môi trường kiểm thử của API là gì?

Môi trường thử nghiệm để kiểm tra API liên quan đến việc thiết lập trong đó API có thể được kiểm tra độc lập với môi trường sản xuất, thường sử dụng các công cụ như Postman, SoapUI hoặc tập lệnh tùy chỉnh.

 

  1. Các nguyên tắc của thiết kế kiểm thử API là gì?

Các nguyên tắc của thiết kế kiểm thử API bao gồm hiểu các thông số kỹ thuật API, tập trung vào các kịch bản chính, ưu tiên xác thực đầu vào, thiết kế các trường hợp kiểm thử có thể tái sử dụng, xử lý các khía cạnh bảo mật và đảm bảo quản lý dữ liệu thử nghiệm.

 

  1. Các loại kiểm thử API phổ biến là gì?

Các loại kiểm thử API phổ biến bao gồm kiểm tra chức năng, kiểm tra hiệu suất, kiểm tra bảo mật, kiểm tra tải, kiểm tra khả năng tương tác và kiểm tra mờ.

 

  1. Quy trình thực hiện kiểm thử API như thế nào?

Quy trình kiểm thử API liên quan đến việc lập kế hoạch, thiết kế các trường hợp kiểm thử, chuẩn bị dữ liệu thử nghiệm, thực hiện kiểm tra, phân tích kết quả, báo cáo sự cố và kiểm tra lại sau khi sửa lỗi.

 

  1. Những gì phải được kiểm tra khi thực hiện kiểm thử API?

Trong quá trình kiểm tra API, các khía cạnh chính cần kiểm tra bao gồm chức năng điểm cuối, độ chính xác của phản hồi, xử lý lỗi, định dạng dữ liệu (JSON / XML), bảo mật, giới hạn tốc độ và hiệu suất trong các tải khác nhau.

 

  1. Phương pháp tiếp cận tốt nhất để thực hiện kiểm tra API là gì?

Cách tiếp cận tốt nhất để kiểm tra API liên quan đến việc hiểu các yêu cầu, thiết kế các trường hợp kiểm thử bao gồm các kịch bản tích cực / tiêu cực, tự động hóa các thử nghiệm lặp đi lặp lại, xác thực phản hồi và liên tục cải thiện phạm vi kiểm tra.

 

  1. Những công cụ nào có thể được sử dụng để kiểm tra API?

Các công cụ để kiểm tra API bao gồm Postman, SoapUI, RestAssured, JMeter, Karate, pytest, Newman và các công cụ khác, tùy thuộc vào yêu cầu và loại thử nghiệm cần thiết.

 

  1. Sự khác biệt giữa API Testing và Unit Testing là gì?

Kiểm thử API xác thực API của ứng dụng, tập trung vào chức năng, hiệu suất, bảo mật và tích hợp, trong khi Kiểm thử đơn vị xác minh các đơn vị hoặc thành phần riêng lẻ của mã về tính chính xác.

Kiểm tra API

Kiểm thử UNIT

Thử nghiệm này thuộc sở hữu của nhóm Phân tích chất lượng.

Thử nghiệm này thuộc sở hữu của các nhà phát triển làm việc trên các mô-đun tương ứng.

Điều này thuộc về thể loại thử nghiệm hộp đen.

Điều này thuộc về thử nghiệm hộp trắng.

Chức năng hệ thống đầy đủ được xem xét trong kiểm thử API vì API sẽ được sử dụng bởi các nhà phát triển bên ngoài.

Như tên cho thấy, thử nghiệm này xác minh xem đơn vị mã có hoạt động như mong đợi hay không trong sự cô lập.

Trong thử nghiệm này, người thử nghiệm không có quyền truy cập vào mã nguồn nội bộ và nó chỉ tập trung vào chức năng của API.

Các nhà phát triển làm việc để phát triển các trường hợp kiểm thử đơn vị có quyền truy cập vào mã nguồn vì họ cần đảm bảo các mô-đun được phát triển được thông qua trước khi phân phối.

 

 

  1. Những thách thức chính phải đối mặt trong kiểm thử API là gì?

Những thách thức chính trong kiểm thử API bao gồm tính khả dụng của điểm cuối, xác thực thích hợp, xác thực định dạng dữ liệu, giới hạn tốc độ xử lý, lập phiên bản, duy trì dữ liệu thử nghiệm, xử lý phần phụ thuộc và phản hồi động.

 

  1. Các phương pháp kiểm thử trong thử nghiệm API là gì?

Các phương pháp kiểm thử trong kiểm thử API bao gồm kiểm tra chức năng, kiểm tra tải, kiểm tra bảo mật, kiểm tra hiệu suất, kiểm tra mờ, kiểm tra khả năng tương tác và xác thực dữ liệu yêu cầu / phản hồi.

 

  1. Các lỗi API phổ biến thường được tìm thấy là gì?

Các lỗi API phổ biến bao gồm lỗi máy khách 4xx (ví dụ: 400 Yêu cầu không hợp lệ, 401 Không trái phép, 404 Không tìm thấy) và lỗi máy chủ 5xx (ví dụ: 500 Lỗi máy chủ nội bộ, 503 Dịch vụ không khả dụng).

 

  1. Những loại lỗi nào mà kiểm thử API thường tìm thấy?

Kiểm thử API thường xác định các lỗi liên quan đến phản hồi không chính xác (ví dụ: định dạng dữ liệu không chính xác, thiếu trường), lỗ hổng bảo mật, tắc nghẽn hiệu suất, xử lý lỗi không đúng cách và các vấn đề giới hạn tốc độ.

 

  1. Tài liệu API là gì?

Tài liệu API là hướng dẫn toàn diện cung cấp thông tin về các điểm cuối, định dạng yêu cầu/phản hồi, thông số, phương thức xác thực, giới hạn tốc độ, mã lỗi và ví dụ sử dụng API có sẵn.

 

  1. Các API được thay đổi thường xuyên như thế nào và quan trọng hơn là không được dùng nữa?

Các thay đổi và ngừng sử dụng API rất khác nhau tùy theo nhà cung cấp. Một số API có thay đổi thường xuyên do cập nhật hoặc cải tiến tính năng, trong khi những API khác có thể vẫn ổn định trong thời gian dài hơn. Các API không dùng nữa thường bị loại bỏ dần dần theo thời gian.

 

  1. REST là gì?

REST là viết tắt của Representational State Transfer, một phong cách kiến trúc xác định một tập hợp các nguyên tắc để thiết kế các ứng dụng nối mạng. Nó sử dụng các phương thức HTTP tiêu chuẩn (GET, POST, PUT, DELETE) để liên lạc. Dịch vụ Web RESTful là gì? -RESTful Web Service là một dịch vụ web dựa trên các nguyên tắc REST. Nó hiển thị tài nguyên thông qua các URL được chuẩn hóa và sử dụng các phương thức HTTP để thực hiện các hoạt động CRUD (Tạo, Đọc, Cập nhật, Xóa) trên các tài nguyên này.

 

  1. "Tài nguyên" trong REST là gì?

Trong REST, tài nguyên là bất kỳ thông tin hoặc thực thể nào có thể được truy cập thông qua mã định danh duy nhất (URL) và được thao tác bằng các hoạt động CRUD tiêu chuẩn.

 

  1. Cách phổ biến nhất để thể hiện một tài nguyên trong REST là gì?

Cách phổ biến nhất để thể hiện tài nguyên trong REST là sử dụng JSON (Ký hiệu đối tượng JavaScript) hoặc XML (Ngôn ngữ đánh dấu mở rộng) để tuần tự hóa dữ liệu.

 

  1. Giao thức nào được sử dụng bởi các dịch vụ Web RESTful?

Các dịch vụ web RESTful chủ yếu sử dụng giao thức HTTP để liên lạc, tận dụng các phương thức của nó (GET, POST, PUT, DELETE) và mã trạng thái để tương tác với các tài nguyên.

 

  1. Một số đặc điểm chính của REST là gì?

Các đặc điểm chính của REST bao gồm không trạng thái, kiến trúc máy khách-máy chủ, giao diện thống nhất (sử dụng URL), hệ thống phân lớp, khả năng lưu trữ và mô hình giao tiếp không trạng thái.

 

  1. Nhắn tin trong dịch vụ RESTful Web là gì?

Trong REST, nhắn tin đề cập đến quá trình trao đổi tài nguyên giữa máy khách và máy chủ bằng cách sử dụng các phương thức HTTP và định dạng dữ liệu được tiêu chuẩn hóa.

 

  1. Các thành phần cốt lõi của một yêu cầu HTTP là gì?

Các thành phần cốt lõi của yêu cầu HTTP bao gồm dòng yêu cầu (phương thức, URL, giao thức/phiên bản), tiêu đề yêu cầu (siêu dữ liệu), nội dung yêu cầu (tùy chọn cho một số phương thức) và đôi khi là tham số truy vấn.

 

  1. Có thể sử dụng "GET request" thay vì "PUT" để tạo tài nguyên không?

Không, theo nguyên tắc RESTful, không nên sử dụng các yêu cầu GET để tạo tài nguyên. Các yêu cầu PUT thường được sử dụng để cập nhật hoặc tạo tài nguyên, trong khi các yêu cầu POST đặc biệt để tạo tài nguyên.

 

  1. Có sự khác biệt nào giữa các hoạt động "PUT" và "POST" không?

Có, trong các dịch vụ RESTful, PUT được sử dụng để cập nhật hoặc tạo tài nguyên nếu nó không tồn tại, trong khi POST được sử dụng đặc biệt để tạo tài nguyên mới.

 

  1. Phương pháp OPTIONS phục vụ mục đích nào cho các dịch vụ RESTful Web?

Phương thức OPTIONS trong các dịch vụ Web RESTFUL cho phép khách hàng xác định phương thức HTTP và tiêu đề nào được phép cho một tài nguyên cụ thể. Nó cung cấp thông tin về các hoạt động được hỗ trợ cho tài nguyên.

 

  1. URI là gì? Mục đích chính của các dịch vụ web dựa trên REST là gì và định dạng của nó là gì?

URI (Uniform Resource Identifier) là một chuỗi các ký tự xác định một tài nguyên cụ thể. Trong REST, URI được sử dụng để xác định duy nhất các tài nguyên, thường được định dạng dưới dạng URL.

 

  1. Payload trong các dịch vụ RESTful Web là gì?

Trong các dịch vụ Web RESTful, payload đề cập đến dữ liệu được truyền trong yêu cầu HTTP hoặc nội dung phản hồi. Nó chứa các đại diện của các tài nguyên được trao đổi giữa máy khách và máy chủ.

 

  1. Giới hạn trên để tải trọng vượt qua trong phương thức POST là gì?

Không có giới hạn trên được tiêu chuẩn hóa được xác định cho kích thước tải trọng trong phương thức POST. Nó có thể thay đổi dựa trên cấu hình máy chủ, giới hạn mạng và các ràng buộc cụ thể của API.

 

  1. Độ trễ trong kiểm thử API là gì?

Độ trễ đề cập đến thời gian phản hồi hoặc độ trễ được thực hiện bởi yêu cầu đến máy chủ. Chúng tôi cần đảm bảo rằng độ trễ liên quan đến việc tiếp cận máy chủ là tối thiểu vì độ trễ càng cao, tác động đến tốc độ và hiệu suất của ứng dụng càng lớn.

 

  1. Tại sao kiểm tra API tự động lại hữu ích?

 

Kiểm thử tự động rất hữu ích về lâu dài vì nó giúp tối đa hóa phạm vi kiểm thử của các ứng dụng trong một khoảng thời gian ngắn hơn, có nghĩa là nó giúp kiểm tra các bộ thử nghiệm lớn rất dễ dàng và nhanh chóng. Nó cho phép thực hiện song song và giúp giảm các lỗi do con người tạo ra trong thử nghiệm. Nó tiết kiệm thời gian cần thiết để kiểm tra các ứng dụng do đó tiết kiệm chi phí tổng thể.

 

  1. Bạn hiểu gì về Input injection?

Input injection là hành động mô phỏng đầu vào để kiểm tra API. Nó có thể được mô phỏng theo nhiều cách khác nhau:

  • Gọi phương thức trực tiếp
  • Gọi giao diện trợ năng
  • Mô phỏng đầu vào cấp thấp
  • Mô phỏng trình điều khiển thiết bị
  • Mô phỏng robot.

 

  1. Có thể hack API trong khi thử nghiệm không?

Vâng, điều đó là có thể. Điều này là do chúng tôi đang gửi các yêu cầu qua internet chủ yếu tuân theo giao thức HTTP. Giao thức này dựa trên văn bản và dễ đọc hơn. Do đó, cần phải thực hiện kiểm tra bảo mật của các API để đảm bảo các hệ thống an toàn hơn.

 

  1. Chúng tôi nên kiểm tra bảo mật API như thế nào?

Để kiểm tra tính bảo mật của API trong quá trình kiểm thử API, chúng ta cần xác thực 2 điều:

Xác thực: Danh tính của người dùng cuối có chính xác hay không.

Ủy quyền: Liệu người dùng có được phép truy cập tài nguyên hay không.

Chúng tôi cũng có thể xác thực xem TLS hoặc chứng chỉ SSL được sử dụng qua giao thức HTTPS có hợp lệ hay không.

 

  1. Làm thế nào để bạn thực hiện API Load Testing?
  • Kiểm thử tải là một danh mục Kiểm thử hiệu suất được sử dụng để kiểm tra khả năng của ứng dụng để thực hiện dưới các tải người dùng khác nhau.
  • Điều này được thực hiện để xác định tắc nghẽn trong hiệu suất trước khi ứng dụng đi vào hoạt động.
  • Nó được thực hiện bằng cách mô phỏng nhiều người dùng nhấn API cùng một lúc hay nói cách khác, lưu lượng nhân tạo được mô phỏng để xác định xem ứng dụng có khả năng xử lý tải hay không bằng cách duy trì tính nhất quán trong thời gian phản hồi và không ảnh hưởng đến chức năng.
  • Một công cụ như vậy để thực hiện Load Testing là JMeter. Nó cung cấp sự linh hoạt để tạo một kế hoạch kiểm thử, xác định các nhóm luồng và ghi lại các tập lệnh kiểm tra để mô phỏng tải nhân tạo cho API. Cuối cùng nó cung cấp một tính năng để hình dung kết quả kiểm tra tải được thực hiện. Để biết thêm thông tin về cách sử dụng JMeter.
  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu