Việc làm

18/09 · Hồ Chí Minh · Tại văn phòng

QC Intern

Innotech Vietnam Corporation · Manual Tester

Xem mô tả & ứng tuyển trên ITviecMô tả công việc, lương và ứng tuyển nằm ở ITviec.

10 câu hỏi có thể gặp khi phỏng vấn

Chọn theo kỹ năng và cấp của tin (Tester / QA, JavaScript & TypeScript). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.

  1. 01Một bug report tốt cần có những gì? Severity và Priority khác nhau ra sao?Tester / QA · Junior

    Gợi ý trả lời

    Bug report tốt giúp dev tái hiện được ngay mà không cần hỏi lại.

    • Tiêu đề ngắn, nói rõ chỗ lỗi và hiện tượng.
    • Môi trường: build/version, trình duyệt hoặc thiết bị, tài khoản test.
    • Các bước tái hiện, kết quả thực tế, kết quả mong đợi.
    • Bằng chứng: ảnh, video, log, request/response.
    • Severity, Priority, tần suất (luôn xảy ra hay thỉnh thoảng).

    Severity là mức ảnh hưởng kỹ thuật (crash, mất dữ liệu là Critical). Priority là mức gấp cần sửa theo góc nhìn business. Ví dụ: logo sai màu ở trang chủ có severity thấp nhưng priority cao trước buổi demo khách hàng; app crash ở một màn hình gần như không ai dùng có severity cao nhưng priority có thể thấp hơn.

    Hay sai: tự đặt Priority thay cho PO/PM mà không trao đổi.

    Ôn thêm câu hỏi Tester / QA →
  2. 02Smoke test, sanity test và regression test khác nhau thế nào?Tester / QA · Junior

    Gợi ý trả lời

    Ba loại này khác nhau ở mục đích và phạm vi.

    • Smoke test: chạy nhanh các luồng chính ngay khi có build mới để quyết định build có đủ ổn để test tiếp không. Rộng nhưng nông.
    • Sanity test: sau khi sửa một bug hay thay đổi nhỏ, kiểm tra nhanh đúng chỗ đó và vùng liên quan. Hẹp nhưng sâu.
    • Regression test: kiểm tra lại các chức năng đã chạy đúng để chắc thay đổi mới không làm hỏng chúng. Phạm vi lớn nhất, hợp để automation.

    Ví dụ trả lời: "Ở dự án trước, mỗi build lên môi trường test em chạy bộ smoke khoảng 20 case trong 15 phút. Fix bug thì sanity phần liên quan. Trước release cả team chạy regression, phần lặp lại đã được automation."

    Người phỏng vấn muốn nghe: ví dụ thực tế từ dự án của bạn, không chỉ định nghĩa.

    Ôn thêm câu hỏi Tester / QA →
  3. 03Requirement còn mơ hồ hoặc chưa có tài liệu, bạn test như thế nào?Tester / QA

    Gợi ý trả lời

    Đừng đợi tài liệu hoàn hảo; chủ động làm rõ và ghi lại giả định.

    • Đặt câu hỏi cụ thể cho BA/PO ngay từ lúc refinement, ưu tiên những chỗ ảnh hưởng tới acceptance criteria.
    • Tham khảo nguồn khác: bản thiết kế UI, hệ thống cũ, sản phẩm tương tự, hỏi dev về logic đã code.
    • Viết test scenario ở mức cao trước, ghi rõ giả định, gửi lại cho BA/PO xác nhận.
    • Kết hợp exploratory testing theo session có mục tiêu và ghi chú.
    • Chỗ chưa rõ thì log thành câu hỏi/ticket thay vì tự quyết là bug hay không.

    Người phỏng vấn muốn nghe: bạn chủ động và minh bạch. Ví dụ: "Em gửi danh sách 8 câu hỏi kèm giả định, PO trả lời 6, 2 câu còn lại em đánh dấu là rủi ro trong test report."

    Ôn thêm câu hỏi Tester / QA →
  4. 04this trong JavaScript được xác định thế nào? Arrow function khác function thường ở điểm nào?JavaScript & TypeScript · Junior

    Gợi ý trả lời

    Với function thường, this phụ thuộc vào cách gọi, không phải nơi định nghĩa:

    • obj.method(): this là obj.
    • Gọi hàm trơn fn(): undefined trong strict mode (module và class luôn là strict).
    • new Fn(): object mới được tạo.
    • fn.call(x), fn.apply(x), fn.bind(x): this là x.

    Arrow function không có this riêng; nó lấy this của phạm vi bao ngoài. Arrow function cũng không có arguments và không dùng được với new.

    const btn = { label: "OK", click() { setTimeout(() => console.log(this.label)); } };
    

    Hay sai: truyền obj.method làm callback (setTimeout(obj.method)) rồi mất this. Cách sửa: bind, hoặc bọc trong arrow function.

    Ôn thêm câu hỏi JavaScript & TypeScript →
  5. 05Event loop của JavaScript hoạt động thế nào? Đoạn code sau in ra theo thứ tự nào?JavaScript & TypeScript

    Gợi ý trả lời

    JavaScript chạy trên một thread. Code đồng bộ chạy hết trên call stack trước, sau đó event loop lấy việc từ hàng đợi. Microtask (Promise .then, await, queueMicrotask) luôn được chạy hết trước khi sang macrotask tiếp theo (setTimeout, sự kiện I/O, sự kiện người dùng).

    console.log(1);
    setTimeout(() => console.log(2));
    Promise.resolve().then(() => console.log(3));
    console.log(4);
    // 1, 4, 3, 2
    
    • Trên trình duyệt, việc render thường diễn ra giữa các macrotask.
    • Một vòng lặp đồng bộ dài, hoặc chuỗi microtask không dứt, sẽ làm treo giao diện.

    Người phỏng vấn muốn nghe: setTimeout(fn, 0) không chạy ngay mà chỉ được xếp hàng, và vì sao microtask được ưu tiên.

    Ôn thêm câu hỏi JavaScript & TypeScript →
  6. 06Dev nói bug bạn log 'không phải bug' hoặc 'không tái hiện được'. Bạn xử lý ra sao?Tester / QA

    Gợi ý trả lời

    Giữ bình tĩnh, dựa vào bằng chứng và requirement, không tranh cãi cảm tính.

    • Kiểm tra lại: đúng build, đúng môi trường, đúng dữ liệu chưa? Có thể do cache hoặc tài khoản test khác nhau.
    • Bổ sung video, log, request/response; nếu được thì ngồi tái hiện cùng dev.
    • Nếu tranh luận là "đúng thiết kế hay không", dẫn chiếu acceptance criteria. Requirement không nói rõ thì kéo BA/PO vào quyết định.
    • Bug thỉnh thoảng mới xảy ra: ghi tần suất, điều kiện nghi ngờ, giữ ticket mở để theo dõi.

    Hay sai: đóng ticket cho xong chuyện, hoặc biến nó thành chuyện cá nhân. Câu trả lời tốt cho thấy bạn coi dev là đồng đội cùng bảo vệ chất lượng.

    Ôn thêm câu hỏi Tester / QA →
  7. 07Bạn test một REST API như thế nào? Thường kiểm tra những gì?Tester / QA

    Gợi ý trả lời

    Test API là kiểm tra hợp đồng giữa client và server, không cần UI.

    • Status code đúng từng trường hợp: 200/201, 400 khi dữ liệu sai, 401/403 khi thiếu quyền, 404, 409, 500.
    • Response body: đúng schema, kiểu dữ liệu, trường bắt buộc, giá trị khớp DB.
    • Validation: thiếu trường, sai kiểu, giá trị biên, chuỗi rất dài, ký tự đặc biệt.
    • Phân quyền: user A có đọc/sửa được dữ liệu của user B không.
    • Idempotency & trạng thái: gọi lại POST/PUT nhiều lần, thứ tự gọi API sai.
    • Hiệu năng cơ bản: thời gian phản hồi, phân trang.

    Công cụ hay dùng: Postman (collection, environment, script kiểm tra), sau đó đưa vào CI bằng Newman hoặc framework code như REST Assured, Playwright API.

    Người phỏng vấn muốn nghe: bạn có test case phân quyền và lỗi, không chỉ gọi thử thấy 200 là xong.

    Ôn thêm câu hỏi Tester / QA →
  8. 08Khi nào nên automation, khi nào nên giữ manual?Tester / QA

    Gợi ý trả lời

    Automation đáng tiền khi chạy lặp lại nhiều và ổn định; manual hợp với thứ thay đổi liên tục hoặc cần cảm nhận người dùng.

    Nên automation:

    • Bộ regression và smoke chạy mỗi build/release.
    • Test API, tính toán nghiệp vụ nhiều bộ dữ liệu (data-driven).
    • Luồng chính ít thay đổi giao diện.

    Nên giữ manual:

    • Tính năng mới, UI còn thay đổi theo sprint.
    • Exploratory, usability, kiểm tra trực quan.
    • Case chỉ chạy một hai lần, hoặc chi phí dựng môi trường quá lớn.

    Nên nhắc chi phí bảo trì: script hỏng vì locator thay đổi cũng tốn thời gian. Ưu tiên tầng API/unit trước UI theo mô hình test pyramid.

    Hay sai: nói "automation hết cho nhanh". Người phỏng vấn muốn thấy bạn biết tính ROI.

    Ôn thêm câu hỏi Tester / QA →
  9. 09Where do you see yourself in three to five years?Phỏng vấn tiếng Anh

    Gợi ý trả lời

    "In three to five years, I see myself as a senior engineer who can design and own a major part of the system. I'd also like to mentor junior developers, because I enjoyed doing that in my current team. To get there, I'm studying system design and taking on more responsibility in technical discussions. I hope to grow in that direction with a company like yours."

    Mẹo: dùng "I see myself…", "I'd like to…", "I hope to…". Mục tiêu nên thực tế và liên quan tới công việc đang ứng tuyển. Người Việt hay nói "I want to become a leader" quá chung chung; nên nói rõ leader làm việc gì.

    Ôn thêm câu hỏi Phỏng vấn tiếng Anh →
  10. 10Bạn hãy giới thiệu ngắn về bản thân.Câu hỏi hành vi & văn hoá

    Gợi ý trả lời

    Đây là câu mở đầu gần như chắc chắn có. Dùng công thức Hiện tại – Quá khứ – Tương lai, gói trong khoảng 1–2 phút.

    • Hiện tại: vị trí, số năm kinh nghiệm, mảng/công nghệ chính.
    • Quá khứ: một hai dự án hoặc thành tích liên quan nhất tới vị trí đang tuyển.
    • Tương lai: vì sao bạn quan tâm tới vị trí này.

    Câu mẫu: "Em là backend developer, khoảng 3 năm kinh nghiệm, chủ yếu làm Java Spring cho hệ thống thanh toán. Ở dự án gần nhất em phụ trách module đối soát và tối ưu các truy vấn báo cáo chạy chậm. Em đang tìm môi trường làm sản phẩm lâu dài để đi sâu hơn về thiết kế hệ thống, nên rất quan tâm tới vị trí này."

    Hay sai: kể từ quê quán, trường cấp ba, hoặc đọc lại nguyên CV.

    Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →

Bạn đã phỏng vấn ở Innotech Vietnam Corporation?

Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.

Chia sẻ kinh nghiệm phỏng vấn