Khi bắt đầu tham gia dự án Arinex, tôi được giao nhiệm vụ đảm bảo chất lượng toàn diện cho hệ thống quản lý sự kiện trực tuyến, bao gồm cả kiểm thử manual và automation. Quy trình kiểm thử của tôi diễn ra tuần tự như sau:
1. Phân tích yêu cầu và lập kế hoạch kiểm thử
Ban đầu, tôi tiếp nhận tài liệu yêu cầu từ đội dự án, bao gồm các User Stories và BRD. Tôi tập trung phân tích các tính năng chính như tạo sự kiện, quản lý vé và thanh toán trực tuyến.
Sau khi nắm rõ các yêu cầu, tôi họp với Product Owner và đội phát triển để làm rõ những phần còn chưa rõ ràng. Ví dụ, trong giai đoạn này, tôi phải tìm hiểu cách hệ thống xử lý thanh toán thất bại hoặc các giới hạn khi quản lý danh sách người tham gia sự kiện lớn.
Dựa trên kết quả phân tích, tôi lập Test Plan chi tiết, trong đó chia rõ các phạm vi kiểm thử Manual và Automation, các deadline cần đạt được, và ưu tiên kiểm thử các tính năng quan trọng trước.
2. Viết Test Case và chuẩn bị dữ liệu kiểm thử
Tiếp theo, tôi bắt tay vào viết bộ Test Case cho từng tính năng cụ thể.
Tôi tập trung xây dựng kịch bản kiểm thử chức năng (Functional Test) trước, bao gồm:
Đăng ký tham gia sự kiện.
Thanh toán qua nhiều phương thức như PayPal và thẻ tín dụng.
Gửi email xác nhận tự động sau khi thanh toán thành công.
Quá trình này yêu cầu tôi chuẩn bị nhiều Test Data, chẳng hạn tạo danh sách tài khoản người dùng giả lập, thông tin sự kiện mẫu, và cả các trường hợp thanh toán thất bại (ví dụ: nhập sai thông tin thẻ).
3. Thực hiện kiểm thử manual
Khi bộ Test Case đã hoàn thiện, tôi bắt đầu kiểm thử manual:
a) Kiểm thử chức năng (Functional Testing)
Ban đầu, tôi kiểm tra từng tính năng nhỏ của hệ thống, chẳng hạn như kiểm tra form tạo sự kiện. Ở đây, tôi phát hiện một lỗi nhỏ: hệ thống không hiển thị thông báo khi người dùng để trống trường bắt buộc. Sau khi báo lỗi, tôi phối hợp với đội phát triển để sửa lỗi này.
b) Regression Testing
Mỗi lần hệ thống có bản cập nhật hoặc sửa lỗi, tôi thực hiện kiểm thử hồi quy để đảm bảo các tính năng cũ không bị ảnh hưởng. Ví dụ, sau khi thêm tính năng giảm giá vé, tôi phải kiểm tra lại toàn bộ quy trình thanh toán để đảm bảo không có lỗi mới phát sinh.
c) UAT (User Acceptance Testing)
Trong giai đoạn này, tôi hỗ trợ khách hàng thực hiện kiểm thử chấp nhận. Một thách thức tôi gặp phải là khách hàng yêu cầu kiểm tra kịch bản sự kiện có tới hàng ngàn người tham gia. Tôi đã phải tạo dữ liệu mẫu lớn và mô phỏng các thao tác để đảm bảo hệ thống xử lý ổn định.
4. Kiểm thử hiệu năng và bảo mật
Sau khi hoàn thành kiểm thử chức năng, tôi chuyển sang kiểm thử hiệu năng:
Sử dụng JMeter, tôi thực hiện bài kiểm tra tải để đánh giá khả năng chịu tải của hệ thống khi có hơn 500 người dùng truy cập đồng thời. Kết quả ban đầu cho thấy thời gian phản hồi tăng đáng kể khi vượt quá 400 người dùng, nên tôi báo cáo và đề xuất tối ưu code backend.
Bên cạnh đó, tôi cũng thực hiện kiểm thử bảo mật để phát hiện các lỗ hổng như SQL Injection và XSS. Ví dụ, tôi phát hiện một lỗ hổng nhỏ trong form nhập liệu và phối hợp với đội phát triển để khắc phục.
5. Xây dựng và triển khai automation testing
Sau khi phần manual testing ổn định, tôi bắt đầu xây dựng Automation Framework:
Tôi sử dụng Cypress để viết script tự động cho các bài kiểm thử quan trọng, như:
Đăng nhập hệ thống.
Đăng ký sự kiện và kiểm tra thanh toán.
Kiểm tra email xác nhận sau khi hoàn thành đăng ký.
Tiếp theo, tôi tích hợp framework vào CI/CD Pipeline để chạy tự động các bài kiểm thử mỗi khi có cập nhật mới. Điều này giúp giảm thời gian kiểm thử thủ công và phát hiện lỗi sớm hơn trong quá trình phát triển.
Quá trình xây dựng automation kéo dài khoảng 3 tháng. Sau khi hoàn thành, tôi chạy thử và tinh chỉnh để đảm bảo kết quả chính xác và ổn định.
6. Kết quả và bàn giao
Cuối cùng, tôi tổng hợp báo cáo kiểm thử, bao gồm danh sách lỗi đã được sửa và các kết quả kiểm thử tự động. Trước khi bàn giao, tôi tổ chức một buổi trình bày với khách hàng, giải thích chi tiết quy trình kiểm thử và cách vận hành framework automation trong các lần kiểm thử sau này.
Quy trình kiểm thử toàn diện này không chỉ giúp phát hiện sớm các lỗi mà còn tối ưu thời gian kiểm thử nhờ tự động hóa, đảm bảo hệ thống đạt chất lượng cao nhất khi ra mắt.