CYBERSOFT
Đăng nhập

Kỹ thuật đoán lỗi (Error Guessing) & checklist lỗi kinh nghiệm cho hệ thống ngân hàng

Chuyên công nghệNgân hàngNâng caoChuẩn SEO
🗓 1 tháng trước19 phút đọc·👁 1,162 lượt xem👤 382 người đọc

Bài nâng cao: kỹ thuật đoán lỗi (error guessing) áp dụng cho hệ thống core banking. Xây dựng defect taxonomy/checklist lỗi kinh nghiệm, thiết kế ca đoán lỗi cho chuyển khoản, hạn mức, làm tròn tiền, giao dịch đồng thời và timeout. 2 tình huống thật (lãi làm tròn sai, race condition hạn mức), 8 mockup giao diện/bảng lỗi, 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 giao dịch bạn sẽ test

⭐ TL;DR — Kỹ thuật đoán lỗi (Error Guessing) là kỹ thuật kiểm thử dựa trên kinh nghiệm: tester dùng trực giác, lịch sử lỗi và kiến thức nghiệp vụ để đoán trước NƠI hệ thống dễ hỏng rồi thiết kế ca kiểm thử nhắm thẳng vào đó — bổ sung cho các kỹ thuật hình thức như phân vùng tương đương hay bảng quyết định. Bài này áp dụng cho hệ thống core banking CoreBank: xây dựng defect taxonomy, checklist lỗi kinh nghiệm, và ca đoán lỗi cho chuyển khoản, hạn mức, làm tròn tiền, giao dịch đồng thời, timeout. Có 8 mockup giao diện/bảng lỗi, 2 tình huống thật và trắc nghiệm cuối bài.

Nếu bạn đã quen với phân vùng tương đương, giá trị biên hay bảng quyết định, bạn đang dùng các kỹ thuật HÌNH THỨC — suy ra ca kiểm thử từ đặc tả một cách có công thức. Kỹ thuật đoán lỗi (error guessing) đi theo hướng khác: nó khai thác chính những gì đặc tả KHÔNG NÓI TỚI — thói quen của lập trình viên, các lỗi đã từng xảy ra trong quá khứ, và trực giác nghiệp vụ của một tester dày dạn. Trong core banking, đây không phải kỹ thuật 'phụ' mà là tuyến phòng thủ cuối cùng, vì rất nhiều lỗi nghiêm trọng nhất — sai số làm tròn dồn tích, giao dịch đồng thời vượt hạn mức, double-debit do timeout — gần như không lộ ra qua các kỹ thuật hình thức thông thường, chỉ lộ ra khi tester biết CHÍNH XÁC loại lỗi nào hay xảy ra ở đâu.

🔒 corebank.internal/giao-dich/chuyen-khoan/GD-77021 CoreBank · Ngân hàng lõi CoreBank · Chuyển khoản trong hệ thống Tài khoản nguồn 1900xxxx2210 · Số dư: 15.482.317đTài khoản đích 1900xxxx8890 · Ngân hàng ABCSố tiền chuyển 4.999.999,50đPhí giao dịch (0,05%) 2.499,9995đ ≈ 2.500đHạn mức còn lại/ngày 5.000.000đ✗ không hợp lệTrạng thái xử lý Đang chờ core xác nhận (12s)✗ không hợp lệXác nhận chuyển Nghi lỗi: làm tròn phí — nửa xu về đâu? Nghi lỗi: hạn mức chưa trừ GD đang treo Nghi lỗi: timeout 12s — bấm lại có trừ đôi?
Màn hình chuyển khoản CoreBank với các điểm nghi lỗi được khoanh vùng: làm tròn phí, hạn mức chưa trừ giao dịch treo, timeout core
📖 Error Guessing: kỹ thuật kiểm thử dựa trên kinh nghiệm, dùng trực giác và lịch sử lỗi để đoán trước vị trí dễ hỏng và thiết kế ca kiểm thử nhắm thẳng vào đó, bổ sung cho kỹ thuật hình thức.

2. Error Guessing là gì & vì sao core banking cần

Theo phân loại ISTQB, kỹ thuật đoán lỗi thuộc nhóm 'kỹ thuật kiểm thử dựa trên kinh nghiệm' (experience-based test techniques), cùng nhóm với kiểm thử khám phá (exploratory testing) và kiểm thử theo checklist (checklist-based testing). Điểm khác biệt cốt lõi so với kỹ thuật hình thức (phân vùng tương đương, giá trị biên, bảng quyết định, chuyển trạng thái): kỹ thuật hình thức suy luận ca kiểm thử một cách CÓ THỂ LẶP LẠI từ đặc tả — hai tester khác nhau, theo đúng quy trình, sẽ ra một bộ ca gần giống nhau. Kỹ thuật đoán lỗi thì PHỤ THUỘC VÀO NGƯỜI: chất lượng ca kiểm thử tỉ lệ thuận với kinh nghiệm, hiểu biết miền nghiệp vụ, và mức độ 'nhớ lỗi cũ' của tester. Vì vậy, một Error Guessing chuyên nghiệp không phải nhắm mắt đoán bừa mà PHẢI được hệ thống hoá bằng checklist và defect taxonomy — nội dung ta xây ở chương 3.

Vì sao core banking đặc biệt cần kỹ thuật đoán lỗi dù đã có đầy đủ kỹ thuật hình thức? Vì rất nhiều lỗi nghiêm trọng nhất trong ngân hàng không nằm ở MỘT giao dịch đơn lẻ (nơi phân vùng tương đương/giá trị biên/bảng quyết định phủ tốt), mà nằm ở HÀNH VI HỆ THỐNG khi nhiều giao dịch tương tác: sai số làm tròn dồn tích qua hàng nghìn kỳ tính lãi, hai giao dịch chạm cùng một hạn mức cùng lúc, một giao dịch timeout rồi được retry. Không có công thức hình thức nào tự động sinh ra những ca này — chúng đến từ kinh nghiệm quan sát các postmortem, báo cáo audit, và sự cố production đã từng xảy ra ở chính hệ thống hoặc hệ thống tương tự.

💡 Kết hợp, không thay thế: dùng kỹ thuật hình thức phủ đầy đủ luồng chính, rồi dùng error guessing để 'vá' đúng những khe hở mà lịch sử lỗi cho thấy hay bị bỏ sót.

3. Xây dựng Defect Taxonomy — checklist lỗi kinh nghiệm

Defect Taxonomy (bảng phân loại lỗi kinh nghiệm) là danh sách các NHÓM NGUYÊN NHÂN GỐC gây lỗi mà một hệ thống/miền nghiệp vụ hay gặp phải, được tổng hợp từ lịch sử sự cố thật thay vì suy diễn lý thuyết. Với core banking, taxonomy này nên xoay quanh những nhóm nguyên nhân xuất hiện lặp lại qua nhiều dự án ngân hàng: làm tròn số thập phân, hạn mức và giá trị biên động theo thời gian thực, tranh chấp tài nguyên khi nhiều giao dịch chạy đồng thời, timeout kèm khả năng retry gây trùng lặp, quy đổi tiền tệ nhiều bước, và trạng thái giao dịch bị treo giữa chừng.

Defect Taxonomy — checklist lỗi kinh nghiệm cho core banking Nhóm lỗi (kinh nghiệm)Biểu hiện thường gặpVì sao khó bắt bằng kỹ thuật hình thứcLàm tròn & sai số thập phânChênh 1–2 xu khi tính lãi/phí, dồn tích qua nhiều kỳEP/BVA test từng giao dịch đơn lẻ, không lộ sai số DỒN TÍCH qua thời gianHạn mức & giá trị biên độngHạn mức không trừ đúng GD đang xử lý/treoBoundary test giả định hạn mức tĩnh, thực tế hạn mức đổi theo thời gian thựcĐồng thời & tranh chấp tài nguyên2 GD cùng lúc đều được duyệt dù tổng vượt hạn mức/số dưKỹ thuật hình thức test tuần tự, không mô phỏng race conditionTimeout & idempotencyBấm lại/timeout gây ghi nhận giao dịch 2 lầnCa kiểm thử chuẩn giả định mạng ổn định, không có độ trễ/retryChuyển đổi tiền tệ & tỉ giáSai số khi quy đổi VND–USD qua nhiều bước trung gianCa dương/âm không phủ chuỗi quy đổi nhiều bước với tỉ giá thựcTrạng thái treo & rollback nửa vờiGD báo lỗi nhưng tiền đã trừ, chưa hoànState machine hình thức không mô hình hoá lỗi hạ tầng giữa chừngCập nhật sau mỗi postmortem/sự cố production — checklist là tài sản chung của đội.
Defect Taxonomy — checklist lỗi kinh nghiệm cho hệ thống core banking, theo nhóm nguyên nhân gốc

Điều khiến bảng này khác một checklist thông thường: mỗi dòng đều trả lời câu hỏi 'vì sao kỹ thuật hình thức KHÓ bắt được lỗi này' — đây chính là lý do error guessing tồn tại như một kỹ thuật riêng, không phải bản sao yếu hơn của EP/BVA. Một defect taxonomy tốt không tĩnh: nó là TÀI SẢN SỐNG, được thêm dòng mới sau mỗi postmortem, và được gắn nhãn theo nghiệp vụ (chuyển khoản, hạn mức, lãi suất, thanh toán quốc tế...) để tester mới trong đội cũng áp dụng được ngay mà không cần nhiều năm kinh nghiệm.

4. Quy trình áp dụng Error Guessing có hệ thống

Error guessing 'chuyên nghiệp' khác error guessing 'nghiệp dư' ở đúng một điểm: nó có QUY TRÌNH, không phải cảm hứng nhất thời. Bốn bước dưới đây giúp bạn biến trực giác thành một hoạt động có thể lặp lại, đo lường và bàn giao lại cho đồng đội.

▶ Bước 1: Thu thập nguồn kinh nghiệm thật: báo cáo postmortem, backlog lỗi cũ, báo cáo kiểm toán nội bộ, và phỏng vấn đội vận hành/hỗ trợ khách hàng.

▶ Bước 2: Phân loại lỗi thu thập được theo NHÓM NGUYÊN NHÂN GỐC (làm tròn, hạn mức, đồng thời, timeout...) thay vì theo từng màn hình hay tính năng riêng lẻ.

▶ Bước 3: Với mỗi nhóm lỗi, viết ca kiểm thử nhắm thẳng vào ĐIỀU KIỆN gây ra lỗi đó, ghi rõ kết quả mong đợi, rồi đưa vào bộ hồi quy tự động hoặc thủ công.

🔒

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 25% 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!