Cùng itworks.asia điểm qua 20 câu hỏi phỏng vấn SDET thường gặp và cách trả lời thông minh để gây ấn tượng với nhà tuyển dụng.
Phỏng vấn vị trí SDET không chỉ đòi hỏi kỹ năng automation mà còn kiểm tra kiến thức về quy trình kiểm thử, công cụ CI/CD, quản lý mã nguồn và tư duy giải quyết vấn đề. Dưới đây là 20 câu hỏi thường gặp kèm gợi ý trả lời.
- 1. Sự khác nhau giữa QA, Tester và SDET là gì?
→ QA là người đảm bảo chất lượng tổng thể sản phẩm. Tester thường làm manual test, còn SDET là kỹ sư kiểm thử có khả năng lập trình, viết script automation, tích hợp CI/CD. - 2. Bạn từng dùng framework test nào? Vì sao chọn nó?
→ Em đã dùng Selenium với TestNG vì nó phổ biến, dễ maintain và có cộng đồng mạnh. Ngoài ra, Cypress cho tốc độ nhanh và debug dễ dàng. - 3. Hãy mô tả kiến trúc framework automation bạn từng làm?
→ Page Object Model (POM) với TestNG + Maven, chia rõ class Base, Page, Test. Báo cáo dùng ExtentReport, log bằng Log4j. - 4. Làm sao để test REST API?
→ Dùng Postman để test nhanh, sau đó viết automation bằng RestAssured. Kiểm tra code status, body, schema validation. - 5. Làm sao test ứng dụng có OTP hoặc captcha?
→ Với OTP có thể mock hoặc dùng số cố định nếu dev hỗ trợ. Với captcha thì bypass bằng test token hoặc skip test luồng này. - 6. Bạn dùng Jenkins như thế nào trong test?
→ Tạo pipeline chạy test sau mỗi lần push code. Jenkins tích hợp Git và Maven để tự động build và test. - 7. Bạn từng test mobile app chưa?
→ Có. Em dùng Appium để test Android/iOS. Dùng UIAutomator và XCUITest. - 8. CI và CD là gì? Khác nhau ra sao?
→ CI là tích hợp liên tục, mỗi lần code đẩy lên là build và test. CD là triển khai liên tục đến staging/production. - 9. Làm sao viết test case tốt?
→ Theo nguyên tắc SMART: cụ thể, đo lường được, có thể đạt, liên quan và thời gian rõ ràng. Bao gồm cả positive và negative case. - 10. Bạn xử lý flakiness trong test automation như thế nào?
→ Thêm wait hợp lý, dùng explicit wait thay vì sleep. Kiểm tra locator có bị thay đổi không. - 11. Làm sao quản lý test data?
→ Dùng factory method tạo data ngẫu nhiên, hoặc đọc từ file CSV/JSON. Với môi trường staging, nên reset DB trước khi test. - 12. BDD và TDD khác nhau như thế nào?
→ TDD là viết test trước rồi viết code. BDD là viết test dưới dạng ngôn ngữ tự nhiên (Given-When-Then), dễ hiểu với BA/PM. - 13. Làm sao handle dynamic elements trên UI?
→ Dùng XPath tương đối, kết hợp contains/text(). Nếu cần, có thể chờ element xuất hiện bằng explicit wait. - 14. Bạn làm gì khi test script bị fail liên tục?
→ Debug log để tìm root cause, xem element có bị thay đổi không, thử chạy lại local trước khi fix. Luôn đặt breakpoint hợp lý. - 15. Bạn đã từng test performance chưa?
→ Có. Em dùng JMeter để test tải và Locust để test stress. Đo response time, throughput và error rate. - 16. Làm sao viết test reusable và maintainable?
→ Dùng Page Object Model, chia nhỏ function, không hard-code data. Tách config ra file riêng. - 17. Làm sao test app tích hợp bên thứ ba (payment, SMS…)?
→ Mock hoặc stub các API đó. Nếu dev không hỗ trợ mock, test trên môi trường sandbox hoặc staging. - 18. Làm sao chạy test song song?
→ Dùng TestNG annotation parallel=”true”, kết hợp Selenium Grid hoặc cloud testing như BrowserStack, SauceLabs. - 19. Làm sao tích hợp test vào GitHub Actions?
→ Tạo workflow YAML file để trigger test khi push. Dùng matrix strategy để test trên nhiều OS/browser. - 20. Bạn từng viết test coverage report chưa?
→ Có. Em dùng JaCoCo hoặc Istanbul để đo code coverage, tích hợp với SonarQube để xem báo cáo toàn diện.
Theo dõi www.itworks.asia để đọc thêm các bài viết hướng dẫn luyện thi, phỏng vấn và kỹ năng làm việc thực tế cho tester, QA và SDET chuyên nghiệp.