CYBERSOFT
Đăng nhập

Kỹ thuật viết test case tối ưu & tái sử dụng (Test Case Design Patterns): dự án ERP nhiều module (có trắc nghiệm)

Chuyên công nghệERPNâng caoChuẩn SEO
🗓 1 tháng trước19 phút đọc·👁 1,647 lượt xem👤 316 người đọc

Bài nâng cao: viết test case tối ưu & tái sử dụng cho dự án ERPCore — hệ quản trị doanh nghiệp nhiều module (Mua hàng, Kho, Bán hàng, Kế toán). Nguyên tắc atomic/độc lập, tham số hoá data-driven, tái sử dụng bước chung, chuẩn đặt tên & tổ chức bộ ca, mức chi tiết phù hợp, cân bằng dương/âm/biên, quy trình review test case, 2 tình huống lỗi thật, nhiều mockup giao diện, FAQ và trắc nghiệm 5 câu. Chuẩn SEO, dẫn về khóa Tester CyberSoft.

1. Tóm tắt nhanh & màn hình bạn sẽ test

⭐ TL;DR — Viết test case tối ưu & tái sử dụng nghĩa là thiết kế mỗi ca theo nguyên tắc atomic (1 mục tiêu), độc lập (không phụ thuộc ca khác), tham số hoá dữ liệu khi cần lặp lại nhiều bộ input, và tận dụng bước chung để giảm trùng lặp. Bài này bám dự án ERPCore — hệ quản trị doanh nghiệp nhiều module (Mua hàng, Kho, Bán hàng, Kế toán). Bạn sẽ học cách phân biệt ca tệ vs ca tối ưu, kỹ thuật data-driven, sơ đồ tái sử dụng bước chung, 2 tình huống lỗi thật từ thiết kế ca sai cách, cách cân bằng dương/âm/biên và quy trình review test case. Nhiều mockup và trắc nghiệm cuối bài.

Nếu bạn đã quen viết test case cơ bản cho từng màn hình đơn lẻ, chương này đưa bạn lên một tầm mới: kỹ thuật viết test case tối ưu cho một hệ thống ERP có hàng trăm màn hình, hàng nghìn ca kiểm thử và nhiều đội cùng đóng góp. Ở quy mô đó, một ca viết cẩu thả không chỉ gây rủi ro bỏ sót lỗi mà còn kéo theo chi phí bảo trì khổng lồ mỗi khi nghiệp vụ thay đổi. Chúng ta sẽ đi qua từng nguyên tắc bằng ví dụ thật từ ERPCore, có hình minh hoạ và phần tự làm thử.

🔒 qa.erpcore.vn/testcases/TC-INV-014 ERPCore · Test Case Management ID & Tiêu đề ca kiểm thử TC-INV-014 · Tạo phiếu nhập kho — số lượng vượt định mức kho HN-01Điều kiện tiền đề (Precondition) Gọi bước dùng chung 'Setup: đăng nhập + chọn kỳ KT'Ưu tiên / Loại ca P1 · Ca BIÊN (boundary) · độc lập ATOMIC: đúng 1 mục tiêu — chỉ kiểm 'vượt định mức kho', không gộp thêm việc khác TÁI SỬ DỤNG: gọi lại bước Setup chung, không chép tay đăng nhậpChạy ca độc lập
Màn hình test: bản ghi test case TC-INV-014 trong công cụ quản lý test của ERPCore — atomic & tái sử dụng bước chung
📖 Test Case Design Pattern: tập hợp các nguyên tắc và kỹ thuật viết ca kiểm thử tối ưu — atomic, độc lập, tham số hoá, tái sử dụng bước chung, đặt tên & tổ chức bộ ca chuẩn — giúp bộ test case dễ bảo trì và mở rộng ở quy mô doanh nghiệp lớn.

2. Nguyên tắc lõi: Atomic & Độc lập

Atomic nghĩa là mỗi ca kiểm thử chỉ nhắm đúng MỘT mục tiêu kiểm tra — không gộp nhiều việc khác nhau vào cùng một ca 'cho tiện'. Ví dụ ca 'tạo phiếu nhập kho với số lượng vượt định mức' chỉ nên kiểm đúng hành vi đó, không kèm luôn việc kiểm tra in báo cáo hay huỷ phiếu. Khi ca atomic fail, bạn biết ngay chính xác cái gì hỏng, không phải dò lại từ đầu kịch bản dài.

Độc lập nghĩa là ca kiểm thử có thể chạy được ở bất kỳ thời điểm nào, theo bất kỳ thứ tự nào, mà không cần một ca khác chạy trước để chuẩn bị dữ liệu hay trạng thái. Thay vì đi vòng qua giao diện để dựng lại state (đăng nhập, tạo đơn mua, duyệt đơn... rồi mới tới bước cần test), ca độc lập tự seed dữ liệu cần thiết — thường qua API hoặc script chuẩn bị dữ liệu — rồi vào thẳng bước trọng tâm.

Test case TỆ vs TỐI ƯU — cùng bộ tiêu chí (ERPCore) Tiêu chíCa kiểm thử TỆCa kiểm thử TỐI ƯUPhạm vi1 ca kiểm luôn 5 việc: đăng nhập, tạo phiếu, duyệt, in báo cáo, huỷ phiếu1 ca chỉ kiểm đúng 1 mục tiêu: 'tạo phiếu nhập kho hợp lệ'Phụ thuộcTC05 chỉ chạy được nếu TC01–TC04 đã pass đúng thứ tự trước đóTC05 tự seed dữ liệu riêng (qua API), chạy độc lập ở bất kỳ thời điểm nàoDữ liệu200 ca gần giống hệt nhau, chỉ khác 1 con số nhập liệu1 ca tham số hoá + bảng dữ liệu 200 dòng (data-driven)Đặt tên'Test 1', 'Test 2', 'Test kho''TC-INV-014: Tạo phiếu nhập kho — SL vượt định mức (boundary)'Bước chungChép lại y hệt bước đăng nhập + chọn kỳ KT trong 600 caGọi 1 bước dùng chung 'Setup' được tái sử dụng ở mọi bộ caseMức chi tiếtBước ghi 'nhập dữ liệu rồi lưu' — không rõ nhập gìBước ghi rõ input/expected từng dòng, đủ để người khác chạy đúngCùng mục tiêu kiểm thử nhưng cách viết khác nhau quyết định chi phí bảo trì gấp nhiều lần khi dự án ERP có hàng nghìn ca.
Bảng so sánh test case TỆ vs TỐI ƯU trên cùng bộ tiêu chí (ERPCore)
📖 Atomic / Independent: atomic là ca chỉ kiểm 1 mục tiêu rõ ràng; độc lập là ca tự chuẩn bị dữ liệu riêng và chạy được ở bất kỳ thời điểm nào, không phụ thuộc kết quả ca khác.

3. Vì sao đặc biệt quan trọng ở dự án ERP nhiều module

Ở ERPCore, một quy trình nghiệp vụ thực tế luôn kéo dài qua nhiều module: một đơn mua hàng (Mua hàng) khi về kho sẽ tạo phiếu nhập (Kho), rồi tự động hạch toán (Kế toán). Rất dễ bị cám dỗ viết một chuỗi test case tuần tự bám sát đúng quy trình này để 'kiểm tra luôn cả luồng end-to-end' — nhưng nếu mỗi ca trong chuỗi lại phụ thuộc UI-state của ca trước, bạn đang biến hàng chục ca kiểm thử thành MỘT điểm lỗi duy nhất.

Chi phí thực sự lộ ra khi dự án chạy nhiều sprint: mỗi lần môi trường staging không ổn định hoặc dữ liệu gốc thay đổi, cả chuỗi bị fail hàng loạt dù logic nghiệp vụ hoàn toàn đúng — team mất thời gian điều tra 'lỗi giả' thay vì tìm lỗi thật. Ngược lại, nếu áp dụng atomic/độc lập ngay từ đầu, mỗi module có thể có bộ test case riêng chạy song song, không kéo lùi nhau, và một ca fail chỉ ảnh hưởng đúng phạm vi của nó.

4. Chuẩn bị: đặt tên & tổ chức bộ test case

Trước khi viết ca, cần thống nhất một chuẩn đặt tên và cấu trúc thư mục để 600 ca của 4 module không trở thành mớ hỗn độn không ai tra cứu được.

▶ Bước 1: Tổ chức bộ case theo cây: Module → Chức năng → Loại ca (ví dụ Kho / Nhập kho / Boundary).

▶ Bước 2: Đặt tên ca theo mẫu cố định: mã module-số thứ tự: mô tả ngắn — loại ca. Ví dụ 'TC-INV-014: Tạo phiếu nhập kho — SL vượt định mức (boundary)'.

▶ Bước 3: Trước khi thêm ca mới, tra cứu theo mã module + từ khoá để phát hiện sớm ca gần giống có thể gộp bằng data-driven.

🔒

Nội dung bị khoá

Bạn đang xem bản xem trước. Đăng nhập để mở khoá toàn bộ bài viết và tất cả tài liệu Tester/QA.

Đã xem 24% nội dung
  • Đọc trọn vẹn mọi bài viết
  • Lưu bài & ghi chú cá nhân
  • Theo dõi tiến độ đã đọc
  • Luyện phỏng vấn, ISTQB, Mock
Đăng nhập để đọc tiếp

Chưa có mã? Lấy mã qua Fanpage / Zalo CyberSoft.

0

💬 Bình luận (0)

Bạn có thể đọc mọi bình luận. Đăng nhập để bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!