Ngày đăng: 17/07/2023 | Không có phản hồi
Ngày cập nhật: 17/07/2023
API Testing đang dần trở thành một vị trí không thể thiếu trong các team kỹ thuật và phát triển phần mềm. Nếu bạn cảm thấy hứng thú với mảng kiểm thử phần mềm, bài viết này dành cho bạn. Thông qua bài viết dưới đây, Glints sẽ cùng bạn thảo luận về 20 câu hỏi phỏng vấn API Testing phổ biến nhất cùng với các câu trả lời ngắn gọn để giúp bạn vượt qua các cuộc phỏng vấn của mình.
Trước tiên, hãy cùng Glints tìm hiểu một số câu hỏi phỏng vấn API Testing dành cho các bạn Fresher nhé:
API Testing là một loại kiểm thử phần mềm tập trung vào việc xác minh và xác thực chức năng, độ tin cậy, hiệu suất và tính bảo mật của các giao diện lập trình ứng dụng (API). Nó liên quan đến việc kiểm tra giao tiếp giữa các thành phần phần mềm khác nhau để đảm bảo trao đổi và tích hợp dữ liệu phù hợp.
API (giao diện lập trình ứng dụng) đóng vai trò trung gian cho phép các hệ thống phần mềm khác nhau giao tiếp và trao đổi dữ liệu với nhau. Chúng xác định các phương pháp, giao thức và định dạng dữ liệu sẽ được sử dụng để tương tác, cho phép các ứng dụng truy cập và sử dụng các chức năng của các thành phần hoặc dịch vụ phần mềm khác.
API Testing có thể được phân thành nhiều loại khác nhau, bao gồm thử nghiệm đơn vị, thử nghiệm chức năng, thử nghiệm tải, thử nghiệm bảo mật và thử nghiệm khả năng tương tác. Sự khác biệt chính nằm ở các khía cạnh cụ thể đang được thử nghiệm và các kỹ thuật được sử dụng để xác minh và xác nhận.
Đọc thêm: Automation Test Là Gì? Kỹ Năng Cần Có Của Một Automation Tester
API Testing có thể được sử dụng để kiểm tra các giao thức khác nhau như HTTP, REST, SOAP, GraphQL, v.v. Các giao thức này xác định các quy tắc và tiêu chuẩn để giao tiếp giữa các hệ thống phần mềm khác nhau và rất quan trọng để đảm bảo tích hợp và trao đổi dữ liệu liền mạch.
Một số công cụ được sử dụng rộng rãi để kiểm tra API bao gồm Postman, SoapUI, RestAssured, JMeter và Assertible. Các công cụ này cung cấp các tính năng và chức năng toàn diện để thiết kế, thực thi và phân tích các API Testing một cách hiệu quả.
API Testing | UNIT Testing |
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. |
API Testing thuộc về loại thử nghiệm hộp đen. | UNIT Testing thuộc về thử nghiệm hộp trắng. |
Chức năng hệ thống đầy đủ được xem xét trong API Testing vì API sẽ được các nhà phát triển bên ngoài sử dụng. | Như cái tên, 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 trong việc phát triển các trường hợp thử nghiệm đơn vị có quyền truy cập vào mã nguồn vì họ cần đảm bảo các mô-đun đã phát triển được thông qua trước khi phân phối. |
Một số lợi thế đáng kể nhất của API Testing bao gồm:
Black Box Testing hay kiểm thử hộp đen là một trong những phương pháp kiểm thử phần mềm trong đó người kiểm thử đánh giá chức năng của phần mềm mà không cần biết về mã nguồn bên trong. Hệ tư tưởng này có thể được áp dụng trong mọi nhánh thử nghiệm như thử nghiệm đơn vị, thử nghiệm tích hợp, thử nghiệm hệ thống và thử nghiệm chấp nhận.
Test coverage hay phạm vi kiểm thử là thước đo biểu thị số lượng kiểm thử được thực hiện bằng cách sử dụng các trường hợp kiểm thử của nhà phát triển. Nó có thể là thử nghiệm chức năng hoặc thử nghiệm phi chức năng của ứng dụng. Điều này cung cấp một ý tưởng hợp lý về những gì người thử nghiệm cần bao gồm trong các trường hợp thử nghiệm của họ.
API Specification Review là bước đầu tiên và quan trọng nhất của tài liệu về nhu cầu và yêu cầu kiểm tra API. Nó phải nêu rõ mục đích của API, quy trình làm việc của ứng dụng và các tính năng của nó cùng với tất cả các chi tiết cần thiết khác có thể giúp lập kế hoạch cho quy trình kiểm tra API một cách suôn sẻ.
Sau khi làm quen với các câu hỏi phỏng vấn API Testing ở mức độ cơ bản, đây là lúc bạn chứng tỏ kỹ năng của mình với một loạt câu hỏi chuyên sâu hơn:
UI Testing hay còn gọi là thử nghiệm giao diện người dùng đại diện cho thử nghiệm bằng cách sử dụng giao diện người dùng đồ họa. Lĩnh vực trọng tâm chính trong việc này là kiểm tra giao diện của ứng dụng phần mềm bằng cách tập trung vào cách ứng dụng khả thi đối với người dùng cuối, thực hiện các chức năng của tất cả các mục hiển thị trên màn hình giao diện người dùng – hình ảnh, phông chữ, nút , bố cục, v.v. để xem liệu chúng có xuất hiện đúng như mong đợi hay không.
Mặt khác, API Testing đảm bảo kiểm tra việc truyền dữ liệu giữa các hệ thống phần mềm khác nhau. Nó chủ yếu nằm dưới sự xác thực của chức năng back-end.
Một số thách thức phổ biến khi thực hiện kiểm tra API bao gồm
Có 7 nguyên tắc trong thiết kế API Testing. Chúng bao gồm:
Vì không thể kiểm tra mọi thứ một cách thấu đáo, nên cần có ít nhất một số lượng kiểm tra tối ưu tùy thuộc vào đánh giá rủi ro được thực hiện trên ứng dụng.
Điều này thể hiện việc phân cụm các mô-đun chứa hầu hết các lỗi. Theo nguyên tắc chung, gần 80% lỗi được tìm thấy trong 20% mô-đun ứng dụng. Các mô-đun rủi ro này có thể được xác định bằng cách làm theo phương pháp này.
Nghịch lý này nói rằng nếu người kiểm tra sử dụng các trường hợp kiểm tra giống nhau lặp đi lặp lại, thì họ sẽ không thể tìm ra lỗi mới trong một khoảng thời gian. Do đó, người kiểm tra cần được trang bị đầy đủ bằng cách xem xét và sửa đổi các trường hợp kiểm tra thường xuyên. Các trường hợp thử nghiệm mới hiệu quả hơn trong việc tìm ra các lỗi mới. Tuy nhiên, không có số lượng thử nghiệm nào có thể đảm bảo rằng sản phẩm không có lỗi 100%.
Một nguyên tắc kiểm thử khác là mục đích của kiểm thử phải là sự hiện diện của lỗi chứ không phải là không có lỗi. Mục tiêu của thử nghiệm là giảm xác suất tìm thấy các lỗi chưa được phát hiện. Sẽ có những trường hợp 0 lỗi được tìm thấy, nhưng các devs không thể hoàn toàn khẳng định rằng phần mềm của họ 100% không có lỗi.
Có thể tăng khả năng phần mềm không sử dụng được ngay cả khi phần mềm đó 99% không có lỗi, điều này có thể sai. Trọng tâm chính của kiểm thử phần mềm là đảm bảo rằng phần mềm đáp ứng đúng các yêu cầu nghiệp vụ. Nguyên tắc này nói rằng ngay cả khi chúng ta xác định và sửa các lỗi nếu phần mềm không đáp ứng các yêu cầu kinh doanh, thì hệ thống sẽ không sử dụng được.
Nguyên tắc này nói rằng việc sửa lỗi sớm trong vòng đời phát triển phần mềm sẽ dễ dàng hơn. Do đó, nên bắt đầu thử nghiệm ứng dụng càng sớm càng tốt.
Đây là cách chúng ta kiểm tra một ứng dụng tùy thuộc vào loại hệ thống. Chúng ta sử dụng các kỹ thuật, phương pháp và trường hợp thử nghiệm khác nhau để kiểm tra các ứng dụng tùy thuộc vào loại. Ví dụ: cách chúng ta kiểm tra các ứng dụng thương mại điện tử khác với cách chúng ta kiểm tra các ứng dụng phát trực tuyến.
Một số bug phổ biến trong API Testing bao gồm:
Payload là thuật ngữ phổ biến nhất được sử dụng trong trường hợp API REST. Nó đề cập đến dữ liệu thực tế được gửi đến máy chủ trong yêu cầu API ở các định dạng khác nhau như JSON, XML, v.v.
Input injection là hành động mô phỏng đầu vào để API Testing. Nó có thể được mô phỏng theo nhiều cách khác nhau:
Để kiểm tra tính bảo mật của API trong quá trình kiểm tra API, chúng ta cần xác thực 2 điều:
Ngoài ra, chúng ta cũng có thể xác thực xem chứng chỉ TLS hoặc SSL được sử dụng qua giao thức HTTPS có hợp lệ hay không.
Kiểm tra tải là một danh mục kiểm tra hiệu suất được sử dụng để kiểm tra khả năng hoạt động của ứng dụng 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 các tắc nghẽn về hiệu suất trước khi ứng dụng hoạt động.
Nó được thực hiện bằng cách mô phỏng nhiều người dùng truy cập API cùng một lúc hay nói cách khác, lưu lượng truy cập 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ụ quan trọng để thực hiện Load Testing là JMeter. Nó cung cấp tính linh hoạt để tạo một kế hoạch thử nghiệm, xác định các nhóm luồng và ghi lại các tập lệnh thử nghiệm để 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 để trực quan hóa kết quả kiểm tra tải được thực hiện.
Big Bang Approach hay phương pháp tiếp cận Big Bang là một chiến lược thử nghiệm trong đó tất cả các thành phần hoặc mô-đun hệ thống được thử nghiệm cùng nhau sau giai đoạn phát triển mà không tiến hành thử nghiệm đơn vị hoặc tích hợp. Mặc dù phương pháp này có thể tiết kiệm thời gian ban đầu, nhưng nó làm tăng nguy cơ xảy ra lỗi không được phát hiện và khiến việc xác định nguyên nhân gốc rễ của lỗi trở nên khó khăn hơn.
Trong quá trình API Testing, điều cần thiết là phải tuân theo các phương pháp thử nghiệm đạo đức và có trách nhiệm. Cố gắng hack hoặc khai thác API mà không có sự cho phép thích hợp là bất hợp pháp và phi đạo đức. API Testing tập trung vào việc đảm bảo chức năng, bảo mật và độ tin cậy của API, không ảnh hưởng đến tính toàn vẹn của chúng hoặc vi phạm bất kỳ luật hay quy định nào.
Đọc thêm: Các Câu Hỏi Phỏng Vấn PHP Có Thể Bạn Chưa Biết
Kết luận
Vậy là Glints đã cùng bạn tìm hiểu một số câu hỏi phỏng vấn API Testing thường gặp. Chuẩn bị kỹ lưỡng với các câu trả lời chính xác và ngắn gọn sẽ nâng cao cơ hội thành công của bạn trong các cuộc phỏng vấn API Testing.
Hãy nhớ điều chỉnh câu trả lời sao cho phù hợp với kinh nghiệm và kiến thức chuyên môn của riêng bạn đồng thời thể hiện sự hiểu biết về các khái niệm API Testing hay các phương pháp tối ưu nhất. Nếu bạn cảm thấy hứng thú với các chủ đề tương tự, hãy ghé qua Blog của Glints để cập nhật thêm nhiều nội dung chất lượng về lập trình nhé!
Trả lời