T
Trinh Digital
Triển khai Giải pháp

QA Service: Phát hiện 147 bugs trước go-live cho app fintech

Trinh Digital · · 10 phút đọc

Dịch vụ kiểm thử phần mềm chuyên nghiệp có thực sự cần thiết? Câu trả lời nằm trong case study này: một startup fintech tại Việt Nam suýt go-live với 12 critical bugs trong module thanh toán — bao gồm bug cho phép rút tiền vượt số dư. Dịch vụ QA đã phát hiện tổng cộng 147 bugs trước khi app đến tay 50,000 người dùng đầu tiên.

Bối cảnh dự án

Khách hàng

Startup fintech phát triển app ví điện tử cho thị trường Việt Nam. Đã gọi vốn Series A thành công, áp lực go-live trong 2 tháng để đáp ứng yêu cầu từ nhà đầu tư.

Tình trạng khi liên hệ Trinh Digital

Hạng mụcChi tiết
PlatformMobile app (iOS + Android) + Admin web
Tech stackReact Native, Node.js, PostgreSQL
Team size8 developers, 0 QA
TimelineGo-live trong 6 tuần
FeaturesNạp/rút tiền, chuyển khoản, thanh toán QR, lịch sử giao dịch
Test coverage~15% (chỉ vài unit test)
Đã test chưaDeveloper tự test happy path, chưa có systematic testing

Vấn đề

CEO lo ngại: “Team dev nói đã test rồi, nhưng tôi không yên tâm. App liên quan đến tiền — 1 bug nhỏ cũng có thể gây thiệt hại hàng tỷ đồng và vi phạm quy định.”

Phạm vi dịch vụ QA

Team QA từ Trinh Digital

Vai tròSố lượngTrách nhiệm
QA Lead1Lập test plan, phân công, báo cáo
QA Engineer (Manual)2Functional testing, exploratory testing
QA Engineer (Automation)1Automated regression test, performance test
Security Tester1 (part-time)Penetration testing, security audit

Loại testing thực hiện

Loại testScopeTool
Functional TestingTất cả feature (32 user stories)Manual + Playwright
API Testing67 API endpointsPostman + Newman
Performance TestingLoad test 10,000 concurrent usersk6, Grafana
Security TestingOWASP Top 10, penetration testBurp Suite, OWASP ZAP
Compatibility TestingiOS 15-17, Android 11-14, 12 devicesBrowserStack
Regression TestingAutomated suite 280 test casesPlaywright, Appium
UAT SupportHỗ trợ business team UATManual

Quy trình QA: 6 tuần

Tuần 1: Test Planning & Setup

Ngày 1-2 — Requirement Review:

  • Đọc PRD (Product Requirements Document)
  • Identify gaps: 8 requirements mơ hồ, cần clarify với Product Owner
  • Phát hiện sớm 3 logical inconsistencies trong business rules:
    • Rule 1: “User mới được bonus 50K” nhưng không định nghĩa “mới” (đăng ký lần đầu hay chưa giao dịch?)
    • Rule 2: “Giới hạn chuyển 10 triệu/ngày” nhưng không rõ tính theo ngày UTC hay giờ Việt Nam
    • Rule 3: “KYC level 1 giới hạn 5 triệu/tháng” nhưng không xử lý case user upgrade KYC giữa tháng

Ngày 3-5 — Test Case Design:

  • 450 test cases tổng cộng
  • Priority: P0 (120), P1 (180), P2 (100), P3 (50)
  • Bao gồm: happy paths, error paths, boundary values, edge cases

Setup:

  • Test environment (staging) isolated
  • Test data generation scripts
  • CI/CD integration: automated tests chạy mỗi khi deploy staging
  • Bug tracking trên Linear

Tuần 2-3: Functional Testing Sprint

Kết quả functional testing:

ModuleTest casesPassFailBug count
Đăng ký / KYC453879
Nạp tiền3528711
Rút tiền40291115
Chuyển khoản50391118
Thanh toán QR302468
Lịch sử giao dịch252235
Notification201469
Admin Panel5547812
Tổng3002415987

Top 5 Critical Bugs phát hiện

Bug #1 — Rút tiền vượt số dư (P0 Critical):

Khi user rút tiền, API kiểm tra số dư → approve → trừ tiền. Nhưng nếu gửi 2 request rút tiền cùng lúc (race condition), cả 2 đều được approve trước khi trừ tiền. Kết quả: số dư 1 triệu nhưng rút được 2 triệu.

Impact nếu không phát hiện: Mất tiền thật, có thể hàng tỷ VND.

Bug #2 — Bypass KYC Level (P0 Critical):

API endpoint update KYC không validate ở server-side. User có thể gửi API request trực tiếp để tự nâng KYC level từ 1 lên 3, bỏ qua xác minh CCCD.

Impact: Vi phạm quy định chống rửa tiền.

Bug #3 — SQL Injection trong tìm kiếm (P0 Critical):

Ô tìm kiếm lịch sử giao dịch không sanitize input. Nhập '; DROP TABLE transactions; -- → execute SQL trên database.

Impact: Hacker có thể xóa toàn bộ dữ liệu giao dịch.

Bug #4 — Thông tin giao dịch người khác (P0 Critical):

API /api/transactions/{id} không kiểm tra ownership. User A có thể xem giao dịch của User B bằng cách thay đổi transaction ID trong URL.

Impact: Rò rỉ thông tin tài chính cá nhân, vi phạm quy định bảo mật.

Bug #5 — Notification chứa thông tin nhạy cảm (P1 Major):

Push notification hiển thị “Bạn đã nhận 5,000,000 VND từ Nguyễn Văn A (SĐT: 0912345678)” — hiển thị trên lock screen, ai cũng đọc được.

Impact: Lộ thông tin giao dịch, số điện thoại.

Tuần 4: Performance & Security Testing

Performance Testing Results:

MetricTargetKết quả (trước fix)Kết quả (sau fix)
Response time (P50)< 200ms180ms ✅150ms ✅
Response time (P99)< 2s4.5s ❌1.8s ✅
Throughput1,000 req/s650 req/s ❌1,200 req/s ✅
Error rate @ 5,000 users< 1%12% ❌0.3% ✅
Error rate @ 10,000 users< 5%45% ❌2.1% ✅

Bottleneck phát hiện: Database connection pool chỉ có 10 connections (default PostgreSQL). Tăng lên 100 + thêm Redis cache → throughput tăng 85%.

Security Testing Results:

VulnerabilitySeverityCount
Critical4SQL Injection (1), Broken Access Control (2), Insecure Direct Object Reference (1)
High6Missing rate limiting, weak session management, CORS misconfiguration…
Medium8Missing security headers, verbose error messages…
Low5Information disclosure in headers…
Total23 vulnerabilities

Tuần 5: Regression Testing & Bug Fix Verification

  • Dev team fix bugs dựa trên priority (P0 → P1 → P2)
  • QA verify từng bug fix
  • Automated regression suite (280 test cases) chạy sau mỗi fix
  • 3 rounds regression: Round 1 — 12 bugs reopen, Round 2 — 4 bugs reopen, Round 3 — 0 bugs reopen

Tuần 6: UAT & Final Sign-off

  • Business team test 2 ngày (10 scenarios thực tế)
  • 5 bugs mới phát hiện từ UAT (P2-P3)
  • Fix + retest trong 2 ngày
  • Go/No-Go meeting: All P0 = 0, P1 = 0, P2 = 3 (accepted), P3 = 8 (backlog)
  • Decision: GO

Tổng kết kết quả

Bug Statistics

SeverityPhát hiệnFix before launchRemaining
P0 Critical1212 (100%)0
P1 Major2828 (100%)0
P2 Minor4542 (93%)3 (accepted)
P3 Trivial6254 (87%)8 (backlog)
Total14713611

Chi phí và ROI

Hạng mụcChi phí
QA team (5 người × 6 tuần)180 triệu VND
Tools & infrastructure15 triệu VND
Tổng đầu tư QA195 triệu VND
Hạng mụcThiệt hại tránh được
12 P0 bugs (trung bình 100 triệu/bug)1.2 tỷ VND
28 P1 bugs (trung bình 30 triệu/bug)840 triệu VND
Security breaches (potential fine + reputation)500 triệu - 2 tỷ VND
Performance issues (lost revenue day 1)200 triệu VND
Tổng thiệt hại tránh được2.7 - 4.2 tỷ VND

ROI: Đầu tư 195 triệu → tránh thiệt hại 2.7-4.2 tỷ → ROI 1,300-2,000%.

Feedback từ CEO

“Ban đầu tôi nghĩ thuê QA bên ngoài là tốn tiền. Nhưng khi thấy bug cho phép rút tiền vượt số dư — nếu go-live với bug đó, chúng tôi có thể mất cả tỷ đồng trong tuần đầu tiên. 195 triệu cho QA service là khoản đầu tư xứng đáng nhất dự án.”

FAQ — Câu hỏi thường gặp

1. Dịch vụ QA từ bên ngoài có thể thay thế hoàn toàn QA nội bộ không?

Có thể cho giai đoạn đầu hoặc dự án ngắn hạn. Về lâu dài, nên kết hợp: QA nội bộ cho regression testing hàng ngày + QA outsource cho security audit, performance testing, và các dự án lớn cần tăng cường nhân sự.

2. Chi phí dịch vụ kiểm thử bao nhiêu?

Tùy scope: từ 50 triệu (dự án nhỏ, 2-3 tuần) đến 300 triệu+ (dự án lớn, full QA team, 6-8 tuần). Liên hệ Trinh Digital để được báo giá theo scope cụ thể.

3. QA bên ngoài có cần truy cập source code không?

Không bắt buộc. Black-box testing (test từ bên ngoài, không cần source code) vẫn hiệu quả cho functional và security testing. Tuy nhiên, white-box testing (có source code) cho kết quả toàn diện hơn, đặc biệt là security audit.

Kết luận

App fintech go-live thành công với 0 critical bugs, 0 major bugs, và đạt 50,000 users trong tháng đầu tiên mà không có sự cố nào liên quan đến chất lượng phần mềm. Khoản đầu tư 195 triệu VND cho dịch vụ kiểm thử đã tránh được thiệt hại tiềm tàng hàng tỷ đồng.

Nếu doanh nghiệp bạn đang phát triển app/website và cần đảm bảo chất lượng trước khi go-live, hãy liên hệ Trinh Digital. Chúng tôi cung cấp dịch vụ kiểm thử phần mềm chuyên nghiệp — từ functional testing đến security audit — giúp bạn go-live tự tin và an toàn.

#fintech#testing#QA#case study
Chia sẻ: Z

Sẵn sàng chuyển đổi số cùng Trinh Digital?

Liên hệ ngay để nhận tư vấn miễn phí. Đội ngũ chuyên gia sẽ phân tích nhu cầu và đề xuất giải pháp tối ưu.

Zalo