CYBERSOFT
Đăng nhập

Kiểm thử báo cáo & đối soát dữ liệu ngân hàng: sổ cái ↔ giao dịch ↔ báo cáo (nâng cao)

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

Bài nâng cao: kiểm thử đối soát dữ liệu hệ báo cáo tài chính & cổng thanh toán ngân hàng TrustBank PayGate. Kiến trúc luồng dữ liệu GL↔TXN↔RPT, sai lệch làm tròn/tỷ giá, lọc/nhóm/tổng cộng, dữ liệu cuối ngày/cuối kỳ và múi giờ báo cáo. 7 mockup giao diện, 2 tình huống thật, trắc nghiệm 5 câu, chuẩn SEO, dẫn về khóa Tester CyberSoft.

1. Tóm tắt nhanh & bức tranh hệ thống đối soát

⭐ TL;DR — Kiểm thử đối soát (reconciliation testing) là việc xác nhận số liệu giữa 3 nguồn — sổ cái (GL), nhật ký giao dịch (TXN), báo cáo tổng hợp (RPT) — khớp nhau tại cùng mốc thời gian trên hệ báo cáo tài chính & đối soát cổng thanh toán TrustBank PayGate. Bài tập trung vào các điểm rủi ro nâng cao: sai lệch làm tròn/tỷ giá, lọc/nhóm/tổng cộng, dữ liệu cuối ngày/cuối kỳ (EOD/EOM) và múi giờ báo cáo. Có 2 tình huống thật, nhiều mockup và trắc nghiệm cuối bài.

Bạn đang ở cấp độ nâng cao — bài này giả định bạn đã vững kiểm thử chức năng cơ bản và muốn đi sâu vào một mảng dễ bị đánh giá thấp nhưng lại gây thiệt hại lớn nhất khi sai: kiểm thử số liệu tài chính tổng hợp. Dự án xuyên suốt là TrustBank PayGate — hệ thống báo cáo tài chính và đối soát giao dịch của một cổng thanh toán ngân hàng, nơi mỗi ngày có hàng chục nghìn giao dịch chảy qua ba tầng dữ liệu khác nhau trước khi lên báo cáo cuối cùng gửi Ban điều hành.

Đối soát 3 nguồn số liệu cuối ngày — TrustBank PayGate · 10/07 Chỉ tiêuSổ cái (GL)Nhật ký giao dịch (TXN)Báo cáo tổng hợp (RPT)Tổng số giao dịch48.20648.21248.206Tổng giá trị (VND)182.430.556.000182.438.910.500182.430.556.000Giao dịch PENDING0 (chưa hạch toán)60 — BỊ BỎ SÓTGiao dịch REVERSAL318318316 — LỆCH 2Lệch chỉ xuất hiện đúng ở các giao dịch CHƯA hạch toán hoặc ĐẢO — nơi 3 nguồn không đồng bộ trạng thái tại cùng một mốc thời gian.
Đối soát 3 nguồn số liệu cuối ngày: sổ cái, nhật ký giao dịch và báo cáo tổng hợp TrustBank PayGate
📖 Reconciliation Testing: kiểm thử xác nhận số liệu (số lượng, giá trị, trạng thái) khớp nhau giữa nhiều nguồn dữ liệu độc lập tại cùng mốc thời gian, mọi lệch phải có nguyên nhân giải trình được.

2. Đối soát là gì & vì sao khó ở hệ ngân hàng

Ở một hệ e-commerce đơn giản, 'đúng' thường nghĩa là giao diện hiển thị số liệu như mong đợi. Ở hệ ngân hàng, 'đúng' phức tạp hơn nhiều: cùng một tập giao dịch phải cho ra CÙNG một kết quả dù bạn nhìn từ Core Banking (sổ cái), từ cổng thanh toán (nhật ký giao dịch), hay từ báo cáo tổng hợp gửi lên Ban điều hành. Ba hệ này thường do ba đội khác nhau xây, cập nhật ở tần suất khác nhau, và có thể lệch nhau vài giây tới vài phút — đó chính là gốc rễ của phần lớn lỗi đối soát.

Ba nguồn dữ liệu kinh điển bạn phải nắm rõ vai trò: (1) Sổ cái (General Ledger — GL) là nguồn 'sự thật cuối cùng' về tài chính, do Core Banking ghi nhận sau khi hạch toán; (2) Nhật ký giao dịch (Transaction Log — TXN) ghi mọi sự kiện xảy ra ở cổng thanh toán, kể cả giao dịch đang xử lý (Pending) chưa hạch toán; (3) Báo cáo tổng hợp (Report — RPT) là kết quả tổng hợp cuối cùng, thường qua một tầng ETL/kho dữ liệu trung gian. Đối soát chính là công việc chứng minh ba nguồn này 'kể cùng một câu chuyện' tại một mốc thời gian xác định.

Vì sao khó? Vì lệch có thể tới từ RẤT nhiều tầng: độ trễ đồng bộ giữa các hệ, quy tắc làm tròn khác nhau ở mỗi service, cách xử lý giao dịch đang treo (Pending/Reversal) không thống nhất, và mốc cắt ngày (cutoff) không đồng nhất về múi giờ. Một tester giỏi đối soát không chỉ so hai con số cuối — họ hiểu được TỪNG TẦNG dữ liệu đi qua để khoanh vùng đúng nơi gây lệch, thay vì báo chung chung 'số liệu sai'.

3. Kiến trúc luồng dữ liệu đối soát

Trước khi viết ca kiểm thử, hãy vẽ ra luồng dữ liệu thật của hệ thống — đây là bước nhiều tester nâng cao bỏ qua vì tưởng 'ai cũng biết'. Ở TrustBank PayGate, giao dịch đi qua bốn tầng: Core Banking ghi sổ cái gần như tức thời, Cổng thanh toán ghi nhật ký giao dịch, một tiến trình ETL đẩy dữ liệu vào Kho dữ liệu theo lô mỗi 15 phút, và cuối cùng Report Engine tổng hợp báo cáo lúc 23:59 mỗi ngày (giờ nghiệp vụ GMT+7).

Luồng dữ liệu đối soát — TrustBank PayGate đồng bộ ~5 giây ETL theo lô 15 phút tổng hợp lúc 23:59 trễ đồng bộ 2–5 phútCore Bankingghi Sổ cái (GL)Cổng thanh toánlog Giao dịch (TXN)Kho dữ liệuETL theo lô 15 phútReport Enginetổng hợp & đối soát EOD
Luồng dữ liệu đối soát TrustBank PayGate: Core Banking → Cổng thanh toán → Kho dữ liệu → Report Engine, cạnh nét đứt đỏ là điểm trễ đồng bộ gây lệch tạm thời

Điểm mấu chốt: mỗi tầng có ĐỘ TRỄ khác nhau. Nếu bạn đối soát ngay tại thời điểm chưa hết chu kỳ ETL 15 phút, RPT sẽ luôn 'chậm' hơn TXN một chút — đó là lệch TẠM THỜI, bình thường, không phải bug. Ngược lại, nếu sau khi tất cả các batch đã chạy xong (ví dụ sau 00:30 hôm sau) mà vẫn còn lệch, đó mới là lệch THỰC SỰ cần điều tra. Phân biệt được hai loại lệch này là kỹ năng nền tảng của kiểm thử đối soát nâng cao.

sql
-- Truy vấn đối soát mẫu: so khớp GL vs TXN theo ngày nghiệp vụ (GMT+7)
SELECT
  DATE(gl.posted_at AT TIME ZONE 'Asia/Ho_Chi_Minh') AS business_day,
  COUNT(gl.txn_id)  AS gl_count,
  COUNT(t.txn_id)   AS txn_count,
  SUM(gl.amount)    AS gl_total,
  SUM(t.amount)     AS txn_total
FROM ledger gl
FULL OUTER JOIN transaction_log t ON gl.txn_id = t.txn_id
WHERE gl.status <> 'PENDING'
GROUP BY 1
HAVING COUNT(gl.txn_id) <> COUNT(t.txn_id)
    OR SUM(gl.amount) <> SUM(t.amount);
-- Dòng trả về = ngày có lệch cần điều tra tiếp.

4. Sai lệch làm tròn & tỷ giá — kỹ thuật kiểm thử

Làm tròn là nguồn lỗi âm thầm nguy hiểm nhất trong hệ ngân hàng: từng khoản lệch có thể chỉ 1 đồng, nhưng nhân với hàng chục nghìn giao dịch/ngày sẽ tích lũy thành số tiền đáng kể lộ ra ở báo cáo tổng. Bước đầu tiên KHÔNG phải là viết ca kiểm thử — mà là hỏi rõ đội phát triển/nghiệp vụ: hệ thống đang dùng quy tắc làm tròn nào? Round-half-up (làm tròn .5 lên), round-half-even/banker's rounding (làm tròn .5 về số chẵn gần nhất), hay truncate (cắt bỏ, không làm tròn)?

▶ Bước 1: Xác nhận quy tắc làm tròn nghiệp vụ chính thức (round-half-up / banker's rounding / truncate) và đơn vị làm tròn (đồng, xu, %) — hỏi BA (Business Analyst), đừng đoán.

▶ Bước 2: Thiết kế input đúng tại biên .5 của đơn vị làm tròn nhỏ nhất, ví dụ phí = 2.499,5đ và 2.500,5đ, để phân biệt các quy tắc cho kết quả khác nhau.

▶ Bước 3: So khớp giá trị làm tròn ở CẢ BA tầng (GL/TXN/RPT) — nếu chỉ một tầng làm tròn còn hai tầng kia giữ số thập phân đầy đủ, tổng cộng dồn sẽ lệch dần theo thời gian.

▶ Bước 4: Kiểm thử tỷ giá quy đổi ngoại tệ: nhập tỷ giá có nhiều số thập phân (vd 25.482,368421 VND/USD), xác nhận số tiền quy đổi và tổng cộng vẫn khớp dù hiển thị đã làm tròn.

🔒

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!