Kỹ năng phỏng vấn tuyển dụng

Top 12 Câu Hỏi Phỏng Vấn QA Phổ Biến Nhất

Chuẩn bị kỹ càng là chìa khóa dẫn đến thành công của mọi cuộc phỏng vấn, đặc biệt là trong lĩnh vực QA. Cho dù bạn là người mới vào nghề hay một chuyên gia có kinh nghiệm đang tìm kiếm sự thăng tiến, thì việc hiểu các câu hỏi phỏng vấn QA phổ biến có thể nâng cao đáng kể cơ hội đạt được công việc mơ ước của mình. Thông qua bài viết này, Masterskills sẽ cùng bạn đi sâu vào top 12 câu hỏi phỏng vấn QA thường gặp nhất cùng với gợi ý trả lời có thể giúp bạn tự tin hơn trong quá trình phỏng vấn.

Câu hỏi phỏng vấn QA fresher

1. Vòng đời của quy trình đảm bảo chất lượng (Quality Assurance Process) là gì? 

Đây là dạng câu hỏi phỏng vấn QA cơ bản dành cho các fresher. Mọi giai đoạn trong quy trình đảm bảo chất lượng đều liên quan đến chu trình PDCA, thường được gọi là chu trình Deming. Dưới đây là các giai đoạn của chu trình này:

  • Lập kế hoạch: Tổ chức, lập kế hoạch và phát triển các mục tiêu liên quan đến quá trình, cũng như các phương pháp cần thiết để cung cấp sản phẩm có chất lượng cao. Ở đây, QA đảm bảo rằng việc lập kế hoạch cho chất lượng đầu ra của sản phẩm.
  • Thực hiện: Giai đoạn này liên quan đến phát triển và thử nghiệm quy trình, cũng như “thực hiện” các thay đổi đối với quy trình. Ở đây, QA đảm bảo rằng các quy trình được tuân theo trong quá trình phát triển và duy trì chất lượng của sản phẩm.
  • Kiểm tra: Trong giai đoạn này, các quy trình được theo dõi, sửa đổi và kiểm tra để xem liệu chúng có đạt được các mục tiêu đã định hay không. Tại bước này, QA đảm bảo rằng các quy trình được kiểm tra kỹ lưỡng để không bỏ sót lỗi nào.
  • Hành động: Trong giai đoạn này, QA nên thực hiện các bước cần thiết để cải thiện và tối ưu quy trình.

2. Phân biệt Quality Assurance và Testing

Quality Assurance (QA) và Testing là hai khía cạnh riêng biệt nhưng có mối liên hệ với nhau trong quy trình phát triển phần mềm. QA là một cách tiếp cận chủ động tập trung vào việc ngăn ngừa lỗi bằng cách thiết lập các quy trình, tiêu chuẩn và hướng dẫn. Nó liên quan đến các hoạt động như phân tích yêu cầu, cải tiến quy trình và lập kế hoạch chất lượng. 

testing
Testing

Mặt khác, Testing hay kiểm thử là một cách tiếp cận phản ứng liên quan đến việc thực hiện các trường hợp kiểm thử được xác định trước và đánh giá kết quả thực tế so với kết quả mong đợi để xác định lỗi hoặc sai lệch so với yêu cầu.

3. Bạn hiểu gì về bug leakage và bug release? 

Bug leakage đề cập đến tình huống lỗi không được chú ý trong giai đoạn thử nghiệm và được đưa vào môi trường sản xuất. Điều này có nghĩa là lỗi không bị phát hiện và ảnh hưởng đến người dùng cuối, dẫn đến các sự cố tiềm ẩn không đáng có. 

Mặt khác, bug release đề cập đến hành động ghi lại chính thức và cung cấp thông tin về một lỗi hoặc khiếm khuyết cụ thể cho nhóm phát triển để giải quyết. Bug release thường theo sau việc xác định và xác nhận lỗi trong quá trình thử nghiệm.

4. Phân biệt Quality Assurance (QA) và Quality Control (QC)

Quality Assurance (QA) và Quality Control (QC) là các nguyên tắc bổ sung nhằm đảm bảo chất lượng của sản phẩm hoặc dịch vụ. QA tập trung vào việc ngăn ngừa lỗi bằng cách triển khai các quy trình, hướng dẫn và tiêu chuẩn trong suốt vòng đời phát triển. Nó nhấn mạnh các biện pháp chủ động để duy trì và nâng cao chất lượng. 

Mặt khác, QC liên quan đến các hoạt động tập trung vào việc xác định và khắc phục các lỗi hoặc sự cố trong sản phẩm hoặc dịch vụ. Nó nhấn mạnh các biện pháp phản ứng để phát hiện và loại bỏ các vấn đề về chất lượng. 

5. Phân biệt gorilla testing và monkey testing

Gorilla testing và monkey testing là hai loại kỹ thuật kiểm tra phần mềm.

Gorilla testing là kỹ thuật trong đó một trường hợp thử nghiệm đơn, lớn và phức tạp hoặc một loạt các trường hợp thử nghiệm được thực hiện để kiểm tra hiệu suất, độ tin cậy hoặc độ ổn định của hệ thống. Mục đích là để kiểm tra mức độ phức tạp của hệ thống trong các điều kiện thực tế và xác định mọi vấn đề nghiêm trọng hoặc điểm yếu khả thi.

Tham khảo:   Top 10 Câu Hỏi Phỏng Vấn Kỹ Sư Cơ Khí Phổ Biến Nhất

Mặt khác, monkey testing bao gồm thử nghiệm ngẫu nhiên ứng dụng hoặc hệ thống bằng cách tạo các đầu vào hoặc sự kiện ngẫu nhiên để mô phỏng hành vi của người dùng. Mục đích của kỹ thuật này là khám phá các kịch bản và tương tác khác nhau để xác định hành vi không mong muốn hoặc sự cố có thể xảy ra do các trường hợp ngoại lệ chưa được xử lý hoặc xác thực đầu vào không đúng.

6. Bạn hiểu gì về data driven testing? 

Data driven testing là một cách tiếp cận mà trong đó các trường hợp kiểm thử được thiết kế dựa trên các bộ dữ liệu đầu vào khác nhau. Thay vì tạo các trường hợp thử nghiệm riêng biệt cho từng đầu vào riêng lẻ, thử nghiệm theo hướng dữ liệu cho phép người thử nghiệm xác định một tập hợp các trường hợp thử nghiệm có thể được thực thi với các kết hợp dữ liệu đầu vào khác nhau. Cách tiếp cận này giúp tăng phạm vi kiểm tra một cách hiệu quả.

data driven testing
Data driven testing

Bằng cách tách logic trường hợp thử nghiệm khỏi dữ liệu thử nghiệm, data driven testing cho phép QA trở nên linh hoạt với khả năng mở rộng tốt hơn. Nó cho phép người thử nghiệm dễ dàng sửa đổi hoặc thêm bộ dữ liệu thử nghiệm mới mà không thay đổi logic trường hợp thử nghiệm cơ bản. Cách tiếp cận này đặc biệt hữu ích khi thử nghiệm các tình huống liên quan đến nhiều biến thể dữ liệu hoặc khi xử lý các tập dữ liệu lớn.

Câu hỏi phỏng vấn QA cho người có kinh nghiệm 

7. Bạn hiểu thế nào về kiểm thử quy hồi (regression testing)? Những trường hợp kiểm thử nào nên được chọn để kiểm thử quy hồi? 

Kiểm thử quy hồi là một loại kiểm thử được thực hiện để đảm bảo rằng các thay đổi hoặc sửa đổi trong ứng dụng phần mềm không đưa ra các lỗi mới hoặc ảnh hưởng xấu đến chức năng hiện có. Nó liên quan đến việc kiểm tra lại các thành phần hoặc chức năng đã được kiểm tra trước đó để xác minh rằng chúng vẫn hoạt động bình thường.

Trong kiểm thử quy hồi, các trường hợp kiểm thử được chọn dựa trên các yếu tố khác nhau như mức độ quan trọng của chức năng, tác động của các thay đổi và các khu vực có nhiều khả năng bị ảnh hưởng nhất. Các trường hợp thử nghiệm bao gồm các chức năng cốt lõi, các tính năng được sử dụng thường xuyên và các khu vực dễ bị lỗi được ưu tiên. Ngoài ra, các trường hợp thử nghiệm đại diện cho các điểm tích hợp hoặc quan hệ phụ thuộc giữa các thành phần khác nhau cũng được đưa vào regression testing để xác định mọi vấn đề không mong muốn.

8. Giải thích các rủi ro trong đảm bảo chất lượng. Nêu 5 khía cạnh của rủi ro. 

Đảm bảo chất lượng trong phát triển phần mềm liên quan đến việc quản lý các rủi ro khác nhau có thể ảnh hưởng đến sản phẩm cuối cùng. Dưới đây là năm khía cạnh của rủi ro:

  • Rủi ro kỹ thuật: Những rủi ro này liên quan đến các khía cạnh kỹ thuật của quy trình phát triển phần mềm, chẳng hạn như kiến trúc, thiết kế, code và khả năng tích hợp. Các ví dụ có thể kể đến bao gồm khả năng mở rộng không đầy đủ, hiệu suất kém, lỗ hổng bảo mật và sự cố tương thích.
  • Rủi ro về lịch trình: Những rủi ro này liên quan đến các mốc thời gian và thời hạn của dự án. Rủi ro về lịch trình có thể phát sinh từ việc lập kế hoạch dự án không thực tế, phân bổ nguồn lực kém hoặc các sự kiện bất ngờ gây ra sự chậm trễ. Đáp ứng thời hạn là rất quan trọng để duy trì chất lượng của phần mềm.
  • Rủi ro về yêu cầu: Rủi ro về yêu cầu xảy ra khi thiếu sự rõ ràng, đầy đủ hoặc ổn định trong các yêu cầu của dự án. Các yêu cầu được xác định không hiệu quả hoặc thường xuyên thay đổi có thể dẫn đến hiểu lầm, vượt quá phạm vi kỹ thuật và cung cấp sản phẩm không đáp ứng mong đợi của người dùng.
  • Rủi ro về con người: Rủi ro về con người đề cập đến tác động tiềm ẩn của các yếu tố con người đối với chất lượng. Điều này bao gồm trình độ kỹ năng không phù hợp, giao tiếp không hiệu quả, thiếu sự hợp tác và cộng tác trong nhóm phát triển. Rủi ro về con người có thể ảnh hưởng tiêu cực đến chất lượng của phần mềm và kết quả của dự án.
  • Rủi ro kinh doanh: Rủi ro kinh doanh liên quan đến tác động của phần mềm đối với tổ chức hoặc người dùng cuối. Những rủi ro này có thể bao gồm việc không tuân thủ pháp luật hoặc quy định, không đáp ứng được nhu cầu của khách hàng, trải nghiệm người dùng tiêu cực và khả năng gây thiệt hại về uy tín.
câu hỏi phỏng vấn qa
Phân tích rủi ro

9. Làm thế nào để quyết định một phần mềm cần bao nhiêu lần kiểm thử trong đảm bảo chất lượng? 

Việc xác định số lần lặp lại hoặc chu kỳ kiểm thử cho một dự án phần mềm phụ thuộc vào một số yếu tố, bao gồm mức độ phức tạp, mức độ quan trọng, hạn chế về thời gian và tài nguyên sẵn có của dự án. Dưới đây là một số cân nhắc có thể giúp bạn đưa ra quyết định này:

  • Phân tích rủi ro: Thực hiện phân tích rủi ro để xác định các chức năng, mô-đun hoặc khu vực quan trọng cần kiểm tra kỹ lưỡng. Phân bổ nhiều nỗ lực thử nghiệm hơn cho các thành phần có rủi ro cao để đảm bảo chất lượng cho chúng.
  • Phạm vi yêu cầu: Đảm bảo rằng tất cả các yêu cầu đã xác định được bao phủ đầy đủ bởi các trường hợp thử nghiệm. Mỗi yêu cầu nên được kiểm tra ít nhất một lần để xác minh việc triển khai và chức năng của nó.
  • Phạm vi kiểm tra: Đánh giá mức độ bao phủ kiểm tra đạt được trong các chu kỳ kiểm tra trước đó. Nếu tồn tại những khoảng trống đáng kể về phạm vi bảo hiểm, có thể cần lặp lại thử nghiệm bổ sung để tăng độ tin cậy vào chất lượng của phần mềm.
  • Mật độ lỗi: Phân tích mật độ lỗi và mức độ nghiêm trọng của các sự cố được báo cáo từ các chu kỳ thử nghiệm trước đó. Nếu mật độ lỗi cao hoặc các lỗi nghiêm trọng vẫn đang liên tục được phát hiện, điều đó cho thấy bạn cần phải kiểm tra thêm.
  • Kỳ vọng của các bên liên quan: Xem xét các kỳ vọng và yêu cầu của các bên liên quan, bao gồm khách hàng, người dùng cuối và ban quản lý. 
Tham khảo:   Một Số Bài Phỏng Vấn Mẫu Thường Gặp Cùng Gợi Ý Trả Lời

10. Phân biệt load testing và stress testing

Load testing và stress testing là các kỹ thuật kiểm tra hiệu suất được sử dụng để đánh giá hành vi của hệ thống dưới các khối lượng công việc khác nhau. Tuy nhiên, chúng lại tập trung vào các khía cạnh khác nhau:

Load testing liên quan đến việc mô phỏng các tình huống sử dụng trong thế giới thực bằng cách đặt hệ thống vào một khối lượng công việc cụ thể, thường ở mức hoặc gần với công suất tối đa của nó. Mục tiêu là xác định hệ thống hoạt động như thế nào trong các điều kiện bình thường. Load testing giúp đo lường thời gian phản hồi, mức sử dụng tài nguyên, thông lượng và các chỉ số hiệu suất khác để đảm bảo rằng hệ thống có thể xử lý tải của người dùng cơ bản mà không làm giảm hiệu suất.

Mặt khác, stress testing nhằm mục đích đẩy hệ thống vượt quá khả năng bình thường để xác định điểm phá vỡ hoặc ngưỡng thất bại của nó. Mục đích là để đánh giá tính ổn định, độ tin cậy và độ bền của hệ thống trong các điều kiện khắc nghiệt. Stress testing liên quan đến việc tăng khối lượng công việc, khối lượng dữ liệu hoặc tương tác của người dùng vượt quá giới hạn thiết kế của hệ thống để xác định các mốc dẫn đến tắc nghẽn, sự cố hoặc suy giảm hiệu suất tiềm ẩn. Nó giúp khám phá các vấn đề liên quan đến khả năng mở rộng, phân bổ tài nguyên và xử lý lỗi trong các điều kiện căng thẳng cao.

Mặc dù cả load testing và stress testing đều đánh giá hiệu suất của hệ thống, load testing tập trung vào kiểm tra hành vi của hệ thống dưới tải dự kiến, trong khi stress testing kiểm tra khả năng phục hồi và khả năng xử lý các điều kiện khắc nghiệt của hệ thống. Cả hai kỹ thuật kiểm tra này đều cần thiết đối với QA để đảm bảo hiệu suất, độ tin cậy và khả năng mở rộng của hệ thống.

Tham khảo:   Top Câu Hỏi Phỏng Vấn Python Phổ Biến Nhất 

11. Bạn hiểu gì về Bug/Defect Triage trong đảm bảo chất lượng? 

Bug/Defect Triage là một quy trình được sử dụng trong QA để ưu tiên, phân loại và chỉ định tài nguyên nhằm giải quyết các lỗi hoặc lỗi phần mềm được báo cáo. Nó liên quan đến việc đánh giá mức độ nghiêm trọng, tác động và mức độ khẩn cấp của từng lỗi để xác định hướng hành động phù hợp. 

Bug/Defect Triage rất quan trọng trong việc quản lý và giải quyết các lỗi một cách hiệu quả. Nó cho phép phân bổ tài nguyên một cách tối ưu, đảm bảo giải quyết lỗi kịp thời và giảm thiểu tác động của lỗi đối với chất lượng tổng thể của phần mềm.

12. Bạn hiểu gì về Stubs và Drivers? Hãy phân biệt chúng

Stubs và Drivers là các thành phần được sử dụng trong kiểm thử phần mềm, đặc biệt là trong kiểm thử tích hợp, để tạo thuận lợi cho việc kiểm thử các mô-đun hoặc thành phần riêng lẻ. 

Trong thử nghiệm tích hợp, Stubs là mô-đun giả hoặc mô-đun thay thế mô-đun phụ thuộc chưa được triển khai hoặc chưa có sẵn. Stubs mô phỏng hành vi của các mô-đun bị thiếu hoặc không đầy đủ, cho phép thử nghiệm mô-đun hiện tại một cách cô lập. Stubs cung cấp đầu vào cần thiết và trả về đầu ra được xác định trước để mô phỏng sự tương tác giữa các mô-đun. Chúng giúp xác định các vấn đề về giao diện, xác minh luồng dữ liệu và kiểm tra chức năng của mô-đun trước khi hoàn thành mô-đun phụ thuộc thực tế.

Ngược lại, Drivers được sử dụng để kiểm tra một mô-đun dựa trên các mô-đun khác. Drivers là một bộ phận hoặc bộ phận khai thác thử nghiệm cung cấp các đầu vào thử nghiệm cần thiết cho mô-đun đang được thử nghiệm. Nó mô phỏng hành vi của mô-đun được gọi hoặc nhiều mô-đun và cho phép kiểm tra chức năng của mô-đun đó. Drivers giúp kiểm tra sự tích hợp của mô-đun với các phần phụ thuộc của nó, đảm bảo giao tiếp và tương tác phù hợp giữa các mô-đun.

Kết luận

Vậy là Masterskills đã cùng bạn tìm hiểu top 12 câu hỏi phỏng vấn QA phổ biến nhất. Chuẩn bị kỹ lưỡng cho các cuộc phỏng vấn QA là điều cần thiết để thể hiện kiến thức, kỹ năng và sự phù hợp của bạn với vai trò ứng tuyển. Bằng cách tự làm quen với những gợi ý trên, bạn có thể tự tin thể hiện bản thân trong quá trình phỏng vấn và gây ấn tượng với các nhà tuyển dụng tiềm năng.

Nếu bạn cảm thấy hứng thú với các nội dung tương tự, hãy ghé sang Blog của Masterskills để cập nhật thêm nhiều nội dung và kiến thức chất lượng thuộc lĩnh vực QA, QC nhé!

  Viện Đào Tạo Kỹ Năng Masterskills chuyên Đào Tạo tại Doanh Nghiệp (In-house) trên Toàn Quốc  
G

0903966729

1
Hỗ trợ bạn qua Zalo