Automation Test Automotive Khác Gì Automation Test Web/App?

Cách đây không lâu, chúng tôi nhận một dự án automation test automotive cho hệ thống điều khiển động cơ trên ô tô điện. Bạn kỹ sư phụ trách vốn quen viết kịch bản test tự động cho web bán hàng. Ban đầu, bạn ấy tưởng chuyển ngành chỉ đơn giản là đổi công cụ. Ba tuần sau, bạn mới thấm: đây là hai thế giới khác hẳn nhau, từ cách viết test case cho đến mức độ chịu trách nhiệm khi có sự cố.

Automation test là khái niệm quen thuộc nhưng khác biệt rõ rệt giữa các ngành

Automation test, nói dễ hiểu, là dùng phần mềm để tự động chạy lại các kịch bản kiểm thử, thay vì con người bấm tay từng bước. Với dev quen làm web hay app di động, khái niệm này chẳng xa lạ gì. Selenium, Cypress, Appium là những cái tên quen mặt trong công việc hằng ngày.

Nhưng khi bước sang automotive, tức là lĩnh vực phần mềm điều khiển trong ô tô, không ít bạn dev bị ngợp. Công cụ đổi đã đành, cái khó hơn là tư duy kiểm thử phải đổi theo hoàn toàn. Một lỗi phần mềm web, tệ nhất là mất đơn hàng hay khách bực mình thoát trang. Một lỗi phần mềm automotive, tệ nhất có thể là tai nạn thật. Vì vậy, mức độ yêu cầu về độ tin cậy và an toàn của automation test automotive luôn cao hơn hẳn phần mềm thông thường.

Sự khác biệt cốt lõi giữa hai loại automation test

Automation test web hay app tập trung chủ yếu vào chức năng và trải nghiệm người dùng. Test xem nút bấm hoạt động đúng chưa, form có submit thành công, luồng thanh toán chạy có mượt hay không. Một trang thương mại điện tử, chẳng hạn, cần bộ test tự động phủ hết hành trình từ thêm giỏ hàng đến hoàn tất đơn hàng, để khách không bỏ ngang giữa chừng.

Góc nhìn này áp dụng được ở nhiều ngành khác, không chỉ automotive. Nếu doanh nghiệp nào đang cân nhắc làm mới kênh bán hàng online, việc đầu tư thiết kế website thương mại điện tử bài bản ngay từ đầu sẽ giúp việc viết test tự động về sau nhẹ nhàng hơn nhiều. Cấu trúc trang rõ ràng, luồng nghiệp vụ ổn định thì kịch bản test cũng ít phải sửa lại liên tục.

Automation test automotive thì khác hẳn. Nó phải kiểm chứng cả những tình huống lỗi hiếm gặp nhưng ảnh hưởng trực tiếp tới an toàn. Ví dụ: cảm biến phanh gửi tín hiệu sai trong đúng 50 mili giây, hệ thống có kịp chuyển sang chế độ dự phòng hay không. Loại tình huống này gần như không bao giờ xuất hiện trong test web, nhưng lại là trọng tâm của automotive. Ai từng đọc qua bài phân biệt automation test và kiểm thử thủ công chắc sẽ thấy rõ automation test vốn đã đòi hỏi tư duy khác test tay, và automotive còn đẩy yêu cầu đó lên một bậc nữa.

Những yêu cầu đặc thù trong automation test automotive

Ngành automotive vận hành theo tiêu chuẩn nghiêm ngặt, phổ biến nhất là ISO 26262, chuẩn an toàn chức năng dành riêng cho ô tô. Nói nôm na, mọi test case phải truy vết được: viết ra để kiểm tra yêu cầu nào, ai duyệt, chạy lúc nào, kết quả ra sao. Không có chuyện viết test xong rồi thôi như nhiều dự án web vẫn làm.

Bên mình từng làm việc với một nhóm dev quen nền tảng AUTOSAR, framework phần mềm chuẩn hóa cho hệ thống điều khiển ô tô, viết chủ yếu bằng C và C/C++. Ai muốn tìm hiểu sâu hơn có thể xem qua nhập môn lập trình embedded automotive với AUTOSAR, vì phần lớn automation test automotive đều xoay quanh nền tảng này. Môi trường test cũng khác: thay vì chạy trên máy ảo như web, automotive thường dùng mô hình HIL, viết tắt của hardware-in-the-loop, tức là mô phỏng phần cứng thật của xe để test phần mềm phản ứng đúng với tín hiệu thực tế.

Một số điểm khác biệt cụ thể mà bên mình hay lưu ý anh em mới chuyển ngành:

  • Test case phải gắn với yêu cầu an toàn cụ thể, không viết tự phát theo cảm tính.
  • Môi trường HIL đòi hỏi thiết bị mô phỏng riêng, chi phí đầu tư cao hơn hẳn máy ảo.
  • Thời gian phản hồi được đo bằng mili giây, sai lệch nhỏ cũng có thể khiến test fail.
  • Tài liệu truy vết phải lưu trữ lâu dài để phục vụ kiểm toán và điều tra sự cố.

Nhiều bạn dev khi mới chuyển sang mảng này hay mắc lỗi tưởng viết test automotive cũng nhanh gọn như test web. Thực chất, một test case automotive có thể mất vài ngày để chuẩn bị đủ dữ liệu và môi trường mô phỏng, thay vì vài giờ như thường thấy. Việc rèn tư duy kiểm thử ngay từ gốc, chẳng hạn qua cách viết code theo hướng kiểm thử trước, giúp dev automotive quen dần với việc nghĩ về test case trước khi viết logic, một thói quen gần như bắt buộc trong ngành này.

Kết luận

Automation test automotive và automation test web/app đều dùng chung khái niệm gốc, nhưng đích đến hoàn toàn khác nhau. Một bên tối ưu trải nghiệm, một bên bảo vệ tính mạng con người. Dev nào định chuyển ngành nên chuẩn bị tâm lý học lại từ đầu: đọc tiêu chuẩn an toàn, làm quen môi trường mô phỏng phần cứng, và chấp nhận tốc độ làm việc chậm hơn hẳn so với web.

Lời khuyên từ kinh nghiệm bên mình: đừng vội áp nguyên xi thói quen test web vào automotive. Hãy bắt đầu bằng việc đọc kỹ một tiêu chuẩn an toàn thật, thử viết lại một test case theo đúng quy trình truy vết, rồi mới mở rộng ra toàn bộ hệ thống. Cách học chậm mà chắc này giúp tránh được không ít lỗi tốn kém về sau.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *