Với sự phát triển của công nghệ, nhu cầu tuyển dụng Tester ngày càng cao. Song song, nhà tuyển dụng cũng trở nên khó tính hơn trong việc lựa chọn ứng viên có thái độ và kiến thức chuyên môn phù hợp. Rikkei Academy cung cấp trọn bộ câu hỏi phỏng vấn Tester mới nhất 2023 giúp các bạn ứng viên có sự chuẩn bị tốt nhất.
Câu hỏi khai thác thông tin chung về ứng viên
- Bạn hãy giới thiệu về bản thân mình?
- Điểm mạnh, điểm yếu của bạn là gì?
- Lý do bạn chọn làm Tester là gì?
- Bạn đã từng làm dự án nào? Vai trò của bạn trong dự án là gì?
- Bạn đã đạt chứng chỉ gì về Kiểm thử?
Câu hỏi phỏng vấn Tester Fresher
Với vị trí Fresher thì các câu hỏi phỏng vấn Tester sẽ không quá khó, chủ yếu nhà tuyển dụng sẽ hỏi về các khái niệm và các kiến thức kiểm thử cơ bản.
Kiểm thử phần mềm là gì?
Kiểm thử phần mềm là quá trình đánh giá và kiểm tra các tính năng, hoạt động của phần mềm. Đảm bảo rằng phần mềm đáp ứng được yêu cầu và mong đợi của người dùng. Đồng thời, giúp nâng cao chất lượng của sản phẩm bằng cách ngăn ngừa các lỗi. Từ đó, giảm chi phí phát triển và giảm các vấn đề về hiệu suất.
Đây là câu hỏi khi phỏng vấn tester cơ bản nhất. Vì vậy, hãy nắm chắc khái niệm này!
Có bao nhiêu phương pháp kiểm thử phần mềm?
Hiện tại có nhiều phương pháp kiểm thử phần mềm khác nhau. Một số được thực hiện bởi lập trình viên và một số thì được thực hiện bởi chuyên viên QA (Đảm bảo chất lượng). Dưới đây là một số phương pháp kiểm thử bạn có thể tham khảo:
- Unit Testing: Kiểm thử một đơn vị phần mềm, như một phương thức hoặc hàm, để đảm bảo tính đúng đắn của nó.
- Integration Testing: Kiểm thử tính tương thích và tính hợp nhất giữa các thành phần phần mềm khi được kết hợp với nhau.
- System Testing: Kiểm thử toàn bộ phần mềm để đảm bảo rằng toàn bộ hệ thống hoạt động như mong đợi.
- Smoke Testing: Kiểm thử nhanh để đảm bảo rằng phần mềm hoạt động ở mức cơ bản và không gây ra lỗi nghiêm trọng.
- Performance Testing: Kiểm thử tính năng hiệu suất của phần mềm, bao gồm tải và môi trường cụ thể để đảm bảo đáp ứng yêu cầu người dùng.
- User-Acceptance Testing: Kiểm thử để đảm bảo rằng phần mềm đáp ứng được yêu cầu của Người dùng cuối cùng.
Nguyên tắc kiểm thử phần mềm Beizer là gì?
Theo Beizer, quá trình kiểm thử phần mềm tuân thủ theo 7 nguyên tắc sau:
- Sai lầm về việc không có lỗi: Dù phần mềm được kiểm thử và không có lỗi, nếu nó không đáp ứng được yêu cầu của người dùng, thì phần mềm đó sẽ là không sử dụng được.
- Kiểm thử chỉ cho thấy sự hiện diện của lỗi: Kiểm thử có thể xác nhận các lỗi trong phần mềm, nhưng không đảm bảo rằng phần mềm hoàn toàn không có lỗi.
- Không thể kiểm thử toàn diện: Không thể kiểm thử toàn diện phần mềm, tức là không thể kiểm thử tất cả các trường hợp có thể xảy ra. Do đó, kiểm thử phải được thực hiện với một số trường hợp được chọn lựa.
- Điểm tập trung các lỗi: Các lỗi trong phần mềm thường tập trung ở một số module nhất định của dự án, theo nguyên tắc Pareto, 80% lỗi phần mềm phát sinh từ 20% module của phần mềm.
- Nguyên tắc thuốc trừ sâu: Không thể tìm ra các lỗi mới bằng cách chạy lại các trường hợp kiểm thử cũ. Do đó, cần phải thêm mới hoặc cập nhật các trường hợp kiểm thử để tìm ra các lỗi mới.
- Kiểm thử sớm: Kiểm thử phải được thực hiện sớm trong quá trình phát triển phần mềm để phát hiện lỗi sớm và giảm thiểu chi phí sửa lỗi.
- Kiểm thử phụ thuộc vào ngữ cảnh: Các phương pháp kiểm thử phải được điều chỉnh phù hợp với ngữ cảnh phát triển phần mềm.
Kiểm thử phần mềm được chia làm bao nhiêu giai đoạn? Kể tên
- Kiểm thử đơn vị (Unit Testing): Kiểm tra các đơn vị nhỏ nhất của phần mềm để đảm bảo chúng hoạt động chính xác.
- Kiểm thử tích hợp (Integration Testing): Kiểm tra tính tương thích và tính hoạt động của các đơn vị phần mềm đã kết hợp với nhau.
- Kiểm thử hệ thống (System Testing): Kiểm tra toàn bộ phần mềm để đảm bảo nó đáp ứng các yêu cầu và mong đợi của khách hàng.
- Kiểm thử chấp nhận (Acceptance Testing): Kiểm tra xem phần mềm đã đáp ứng được các yêu cầu và mong đợi của khách hàng hay chưa.
Môi trường kiểm thử (Test environment) là gì?
Môi trường kiểm thử là bộ khung phần cứng, phần mềm và các cấu hình mạng được thiết kế để kiểm thử các ứng dụng phần mềm mà không ảnh hưởng đến môi trường sản xuất. Môi trường kiểm thử được cấu hình để mô phỏng các kịch bản và điều kiện khác nhau, giúp đảm bảo rằng phần mềm được kiểm thử một cách chính xác và toàn diện trước khi được triển khai vào môi trường cục bộ (production environment).
Test Coverage là gì? Phân loại Test Coverage
Test coverage là một số đo lường để đánh giá mức độ phủ sóng của các ca kiểm thử đối với phần mềm được kiểm thử. Nó cho biết tỷ lệ phần trăm của các thành phần của phần mềm (ví dụ: dòng mã, hàm, module, chức năng) đã được kiểm thử trong tổng số các thành phần đó. Phân loại của test coverage:
- Statement coverage: Đo lường số lượng câu lệnh trong mã nguồn đã được thực thi trong quá trình kiểm thử.
- Branch coverage: Đo lường số lượng đường dẫn hoặc điều kiện khác nhau trong mã nguồn đã được thực thi trong quá trình kiểm thử.
- Path coverage: Đo lường số lượng đường đi khác nhau qua các điểm điều khiển trong mã nguồn đã được thực thi trong quá trình kiểm thử.
- Function coverage: Đo lường số lượng hàm hoặc phương thức đã được kiểm thử trong phần mềm.
- Boundary coverage: Đo lường số lượng giá trị cực đại, cực tiểu hoặc giá trị lỗi đã được kiểm thử.
- Error handling coverage: Đo lường số lượng các kịch bản xử lý lỗi đã được kiểm thử.
Giải thích black-box testing, white-box testing và grey-box testing.
- Black-box testing: Là phương pháp kiểm thử phần mềm dựa trên đầu vào và đầu ra của phần mềm, không cần biết chi tiết về cấu trúc bên trong.
- White-box testing: Là phương pháp kiểm thử dựa trên kiến thức về cấu trúc bên trong của phần mềm.
- Grey-box testing: Là sự kết hợp của black-box testing và white-box testing.
Trường hợp kiểm thử nào được viết trước: white-box hay black-box?
Các trường hợp kiểm thử black-box thường được viết trước. Để viết các trường hợp kiểm thử black-box, cần có một phác thảo về thiết kế hoặc kế hoạch dự án và tài liệu yêu cầu. Các tài liệu như vậy thường sẵn có ở đầu dự án. Trong khi đó, kiểm thử white-box thường yêu cầu làm rõ kiến trúc mà trong giai đoạn đầu của dự án chưa có sẵn. Do đó, các trường hợp kiểm thử hộp trắng thường được viết sau khi các trường hợp kiểm thử hộp đen đã được phát triển.
Một số công cụ, framework kiểm thử phổ biến là gì? Giới thiệu khái quát
- Selenium: là một công cụ tự động hóa trình duyệt web để tự động hóa các bộ kiểm thử bạn cần chạy trên trình duyệt web.
- Protractor: là một framework kiểm thử end-to-end dành cho các ứng dụng Angular và AngularJS.
- Cypress: là một công cụ kiểm thử front-end hiện đại được xây dựng cho web hiện đại.
- Jasmine: là một framework kiểm thử mã nguồn mở cho JavaScript, cho phép bạn viết các bộ kiểm thử behavior-driven (BDD) (kiểm thử dựa trên hành vi).
- JUnit và NUnit: Là các framework kiểm thử đơn vị cho các ngôn ngữ lập trình java và C# tương ứng.
SPICE trong kiểm thử là gì?
SPICE (Software Process Improvement and Capability dEtermination) là một tiêu chuẩn quốc tế được phát triển bởi tổ chức ISO (International Organization for Standardization) với mục đích đánh giá và cải thiện quy trình phát triển phần mềm trong các tổ chức.
Giải thích test scenarios, test scripts, and test cases.
- Test scenario (kịch bản kiểm thử): Là một tập hợp các bước hoặc hướng dẫn định sẵn để thực hiện kiểm thử trên một tính năng hoặc một phần của phần mềm.
- Test script (kịch bản kiểm thử mã hóa): Là một bộ mã hoặc kịch bản được viết bằng một ngôn ngữ lập trình để thực hiện tự động hóa các bước kiểm thử.
- Test case (trường hợp kiểm thử): Là một bộ mô tả chi tiết về các bước kiểm thử cần thực hiện để kiểm tra tính năng hoặc chức năng của phần mềm. Test case bao gồm các thông tin như tiêu đề, mô tả, bước kiểm thử, kết quả mong đợi và kết quả thực tế.
Các câu hỏi phỏng vấn Tester khác
Một số câu hỏi phỏng vấn Tester khác bao gồm:
- TestNG là gì?
- Làm thế nào để đặt ưu tiên cho các trường hợp kiểm thử trong TestNG?
- API là gì?
- Mô hình V trong kiểm thử là gì?
- Kiểm thử dựa trên rủi ro (Risk-based testing)?
- Tại sao chúng ta chia kiểm thử thành các giai đoạn khác nhau?
- Kiểm thử tải (Load testing) trên các trang web là gì?
- Các loại lỗi phần mềm phổ biến là gì?
- Khi nào có thể dừng kiểm thử?
- Verification (xác nhận) và Validation (xác thực) trong kiểm thử phần mềm là gì?
- Lợi ích của kiểm thử tự động (automation testing ) là gì?
- Khi nào thì sử dụng kiểm thử hồi quy (Regression Testing)?
- Dựa trên cơ sở nào bạn có thể đánh giá kiểm thử tự động thành công?
- Mối quan hệ giữa môi trường kiểm thử và các giai đoạn kiểm thử là gì?
- Đâu là thông tin đầu vào của người dùng cuối (end user) để bắt đầu kiểm thử đúng cách?
- Sự khác nhau giữa Selenium và QTP (Quick Test Professional) là gì?
- Object Repository là gì? Làm thế nào để tạo Object Repository trong Selenium?
- Bạn đã sử dụng các phần mềm kiểm thử tự động như Selenium hay Appium chưa? Bạn sử dụng chúng như thế nào?
- Boundary value analysis có nghĩa là gì?
- Quá trình bạn phân tích rủi ro như thế nào?
Kết luận
Trên đây là trọn bộ câu hỏi phỏng vấn tester mới nhất được tổng hợp bởi Rikkei Academy. Hy vọng với bộ câu hỏi này đã giúp bạn có sự chuẩn bị kỹ lưỡng. Chúc bạn thành công trong cuộc phỏng vấn sắp tới!
Để trở thành tester thì việc hiểu ngôn ngữ lập trình và cách vận hành cũng rất quan trọng. Nếu bạn đang muốn tìm khóa học lập trình ngắn hạn, tham khảo Rikkei Academy nhé!