Việc làm

10/09 · Hà Nội · Tại văn phòng

Thực tập sinh phân tích nghiệp vụ

Tinh Van Consulting · Business Analyst

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 (Business Analyst, C# & .NET, SQL & Database). 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. 01Bạn viết một user story và acceptance criteria như thế nào? Ví dụ cho chức năng quên mật khẩu.Business Analyst · Junior

    Gợi ý trả lời

    Dùng mẫu "Là [ai], tôi muốn [làm gì], để [đạt được gì]", kèm acceptance criteria dạng Given/When/Then để dev và tester hiểu giống nhau.

    Ví dụ:

    • Là người dùng đã đăng ký, tôi muốn đặt lại mật khẩu qua email, để đăng nhập lại khi quên mật khẩu.
    • AC1: Given email đã đăng ký, When tôi gửi yêu cầu, Then hệ thống gửi link đặt lại có hiệu lực trong khoảng thời gian quy định.
    • AC2: Given email chưa đăng ký, When tôi gửi yêu cầu, Then hệ thống hiện cùng một thông báo chung (không lộ việc email có tồn tại hay không).
    • AC3: Link đã dùng hoặc hết hạn thì không dùng lại được.
    • AC4: Mật khẩu mới phải theo quy tắc độ mạnh đã thống nhất.

    Người phỏng vấn muốn nghe: story đủ nhỏ, có giá trị cho người dùng, và AC bao cả trường hợp lỗi, không chỉ happy path.

    Ôn thêm câu hỏi Business Analyst →
  2. 02Bạn đã dùng những sơ đồ nào (UML, BPMN, flowchart…)? Khi nào dùng loại nào?Business Analyst · Junior

    Gợi ý trả lời

    Chọn sơ đồ theo câu hỏi cần trả lời và người đọc.

    • BPMN / flowchart: mô tả quy trình nghiệp vụ có nhiều vai trò, nhánh rẽ; hợp để trao đổi với khách hàng (dùng swimlane theo phòng ban).
    • Use case diagram: ai dùng hệ thống để làm gì, phạm vi tổng quan.
    • Activity diagram: luồng xử lý của một chức năng.
    • Sequence diagram: tương tác giữa người dùng, hệ thống, hệ thống bên ngoài theo thời gian; hữu ích khi tích hợp API, cổng thanh toán.
    • State diagram: đối tượng có nhiều trạng thái (đơn hàng, khoản vay, hồ sơ duyệt).
    • ERD: dữ liệu và quan hệ, khi làm việc với dev về database.

    Công cụ hay dùng: draw.io, Lucidchart, Figma/FigJam, PlantUML.

    Hay sai: vẽ thật nhiều cho đủ bộ nhưng không ai đọc. Nên kể một sơ đồ bạn đã dùng để chốt được một vấn đề cụ thể.

    Ôn thêm câu hỏi Business Analyst →
  3. 03Khách hàng đưa yêu cầu rất chung chung, ví dụ 'làm cho tôi một app quản lý kho'. Bạn bắt đầu như thế nào?Business Analyst

    Gợi ý trả lời

    Đi từ mục tiêu kinh doanh xuống chi tiết, đừng nhảy vào màn hình ngay.

    • Hỏi bối cảnh: vấn đề hiện tại là gì (sai lệch tồn kho, chậm xuất hàng, báo cáo thủ công?), mục tiêu đo bằng gì, ai sẽ dùng, đang dùng công cụ gì.
    • Xác định stakeholder và người dùng: thủ kho, kế toán, quản lý, chi nhánh.
    • Vẽ quy trình hiện tại (as-is), tìm điểm đau, đề xuất quy trình mới (to-be).
    • Liệt kê nhóm chức năng, ưu tiên bằng MoSCoW hoặc chia MVP và các giai đoạn sau.
    • Làm rõ ràng buộc: ngân sách, thời hạn, tích hợp với phần mềm kế toán/ERP có sẵn.
    • Xác nhận lại bằng tài liệu hoặc wireframe trước khi team estimate.

    Người phỏng vấn muốn nghe: bạn đặt câu hỏi "tại sao" và giúp khách hàng thu hẹp phạm vi, thay vì ghi lại mọi mong muốn.

    Ôn thêm câu hỏi Business Analyst →
  4. 04IEnumerable và IQueryable khác nhau thế nào khi dùng LINQ với Entity Framework?C# & .NET · Junior

    Gợi ý trả lời

    IQueryable giữ biểu thức truy vấn (expression tree) để provider như EF Core dịch thành SQL chạy trên DB. IEnumerable chạy LINQ trong bộ nhớ trên dữ liệu đã tải về.

    // Lọc trong SQL: chỉ tải đơn đã thanh toán
    var paid = db.Orders.Where(o => o.Status == Status.Paid).ToList();
    
    // Tải cả bảng rồi mới lọc trong RAM
    IEnumerable<Order> all = db.Orders;
    var paid2 = all.Where(o => o.Status == Status.Paid).ToList();
    
    • Cả hai đều deferred execution: chỉ chạy khi duyệt hoặc gọi ToList(), Count(), First()...
    • Duyệt cùng một IEnumerable lazy nhiều lần có thể chạy truy vấn nhiều lần.

    Hay sai: gọi ToList() hoặc AsEnumerable() quá sớm rồi mới lọc, phân trang, khiến tải cả bảng về.

    Ôn thêm câu hỏi C# & .NET →
  5. 05Dependency Injection trong ASP.NET Core: phân biệt Transient, Scoped và Singleton.C# & .NET

    Gợi ý trả lời

    ASP.NET Core có DI container sẵn; lifetime quyết định khi nào tạo instance mới.

    • Transient: mỗi lần resolve tạo mới. Hợp với service nhẹ, không trạng thái.
    • Scoped: một instance cho mỗi request (mỗi scope). DbContext mặc định là scoped.
    • Singleton: một instance cho cả vòng đời ứng dụng. Phải thread-safe.
    builder.Services.AddScoped<IOrderService, OrderService>();
    builder.Services.AddSingleton<IClock, SystemClock>();
    

    Hay sai: inject service scoped (như DbContext) vào singleton, gọi là captive dependency: DbContext bị giữ mãi và dùng chung giữa nhiều thread. Môi trường Development sẽ báo lỗi khi validate scope. Nếu singleton cần dữ liệu scoped, hãy inject IServiceScopeFactory và tự tạo scope.

    Ôn thêm câu hỏi C# & .NET →
  6. 06Composite index (index nhiều cột) hoạt động ra sao? Thứ tự cột có quan trọng không?SQL & Database

    Gợi ý trả lời

    Có. Composite index sắp xếp theo cột đầu, rồi đến cột thứ hai trong cùng giá trị cột đầu, v.v. Vì vậy nó chỉ dùng hiệu quả khi query dùng các cột từ trái sang (leftmost prefix).

    Với INDEX (status, created_at):

    • WHERE status = 'paid' AND created_at > ...: dùng tốt.
    • WHERE status = 'paid' ORDER BY created_at DESC: dùng cho cả lọc lẫn sắp xếp.
    • WHERE created_at > ... (không có status): thường không dùng được.

    Nguyên tắc chọn thứ tự: cột so sánh bằng (=) đặt trước, cột so sánh khoảng hoặc sắp xếp đặt sau. Nếu index chứa đủ mọi cột query cần (covering index) thì DB không phải đọc lại bảng.

    Hay sai: tạo riêng index cho từng cột rồi nghĩ rằng chúng sẽ kết hợp hiệu quả như một composite index.

    Ôn thêm câu hỏi SQL & Database →
  7. 07Giữa sprint, khách hàng muốn thay đổi yêu cầu (change request). Bạn xử lý thế nào?Business Analyst

    Gợi ý trả lời

    Tiếp nhận nhưng không nhận ngay vào làm; đánh giá tác động rồi để người có thẩm quyền quyết định.

    • Ghi lại thay đổi và lý do: nhu cầu mới hay requirement cũ hiểu sai?
    • Phân tích ảnh hưởng cùng dev/tester: phần nào phải sửa, effort, rủi ro, có ảnh hưởng tới phần đã xong không.
    • Trao đổi với PM/PO và khách hàng về lựa chọn: đưa vào sprint sau, đổi lấy một hạng mục khác cùng độ lớn, hoặc tính thêm chi phí/thời gian (dự án fixed-price thường cần CR chính thức).
    • Khi đã thống nhất: cập nhật tài liệu, backlog, thông báo cho cả team, lưu lịch sử thay đổi.

    Hay sai: gật đầu với khách rồi nhờ dev "làm thêm chút". Việc đó gây scope creep, trễ tiến độ và mất lòng team.

    Ôn thêm câu hỏi Business Analyst →
  8. 08Hai stakeholder đưa ra yêu cầu mâu thuẫn nhau. Bạn làm gì?Business Analyst

    Gợi ý trả lời

    Mục tiêu là làm lộ ra mâu thuẫn và đưa về mục tiêu chung, không phải tự chọn phe.

    • Gặp riêng từng bên để hiểu nhu cầu thật phía sau yêu cầu (thường hai bên muốn kết quả khác nhau vì KPI khác nhau).
    • Trình bày mâu thuẫn bằng dữ liệu: ảnh hưởng tới quy trình, chi phí, người dùng của mỗi phương án.
    • Tìm phương án dung hoà: cấu hình theo vai trò, chia giai đoạn, hoặc một giải pháp thứ ba.
    • Vẫn chưa thống nhất thì đưa lên người có quyền quyết (sponsor, PO) và ghi lại.

    Ví dụ ngắn: "Phòng kinh doanh muốn duyệt đơn nhanh, phòng tài chính muốn kiểm tra hạn mức kỹ. Em đề xuất tự duyệt đơn dưới một hạn mức, đơn lớn hơn mới qua tài chính; hai bên đồng ý."

    Người phỏng vấn muốn nghe: bạn trung lập, có cấu trúc và biết khi nào cần escalate.

    Ôn thêm câu hỏi Business Analyst →
  9. 09Bạn làm gì để dev và tester hiểu đúng yêu cầu, tránh làm xong mới phát hiện sai?Business Analyst

    Gợi ý trả lời

    Làm rõ sớm và thường xuyên, không chỉ ném tài liệu sang rồi thôi.

    • Tham gia refinement/grooming: giải thích bối cảnh, trả lời câu hỏi, cùng tách story.
    • Acceptance criteria rõ ràng, có ví dụ dữ liệu cụ thể và trường hợp lỗi.
    • Có wireframe/mockup, sơ đồ luồng cho phần phức tạp.
    • Mời tester review AC trước khi dev bắt đầu; dev có thể "kể lại" cách hiểu để kiểm tra.
    • Có mặt khi dev làm: trả lời nhanh, demo sớm phần đã xong để phát hiện lệch hướng.
    • Giữ tài liệu là nguồn chính xác duy nhất, cập nhật khi có thay đổi.

    Hay sai: chốt trong chat riêng với một dev mà không cập nhật ticket, khiến tester test theo bản cũ.

    Ôn thêm câu hỏi Business Analyst →
  10. 10Bạn nghĩ sao về việc làm thêm giờ (OT)?Câu hỏi hành vi & văn hoá

    Gợi ý trả lời

    Trả lời thẳng thắn và cân bằng: sẵn sàng khi thật sự cần, nhưng không coi OT kéo dài là bình thường.

    Câu mẫu: "Em sẵn sàng làm thêm khi có việc gấp như sự cố production hay trước một đợt release quan trọng. Nhưng nếu OT diễn ra thường xuyên, em nghĩ cần xem lại cách estimate hoặc phạm vi, và em sẽ chủ động nêu điều đó với team. Em cũng muốn hỏi thêm: ở team mình OT thường xảy ra trong trường hợp nào và được tính như thế nào ạ?"

    Đây cũng là lúc bạn tìm hiểu ngược: OT có được trả lương hoặc nghỉ bù theo quy định không, tần suất ra sao. Câu trả lời của họ cho bạn biết nhiều về văn hoá công ty.

    Hay sai: hứa "OT thoải mái" để lấy điểm, rồi vào làm mới thấy không chịu nổi.

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

Bạn đã phỏng vấn ở Tinh Van Consulting?

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