(+84) 236.3827111 ex. 402

KIỂM THỬ TRONG SCRUM


KIỂM THỬ TRONG SCRUM
 

GIỚI THIỆU CHƯƠNG
Kiểm thử (Testing) trong Scrum không phải là giai đoạn riêng biệt cuối cùng, mà là hoạt động xuyên suốt mỗi Sprint. Scrum thúc đẩy kiểm thử sớm, liên tục, tự động nếu có thể. Chương này giúp sinh viên hiểu vai trò của kiểm thử, các loại kiểm thử thường dùng, cách viết test case và thực hành kiểm thử phù hợp với nhóm phát triển  Agile.
 

KIỂM THỬ TRONG MÔ HÌNH TRUYỀN THỐNG VS SCRUM

Tiêu chí Mô hình truyền thống
(Waterfall)
Scrum/Agile
Vị trí kiểm thử Cuối quá trình Trong từng Sprint
Người kiểm thử Chuyên viên QA Dev + QA + Tester
Thời điểm kiểm thử Sau khi lập trình xong Kiểm thử sớm & liên tục
Mục tiêu Tìm lỗi Ngăn lỗi xuất hiện từ đầu

 

CÁC LOẠI KIỂM THỬ TRONG SCRUM
1. Unit Test (Kiểm thử đơn vị)

o Do lập trình viên viết, kiểm tra từng hàm/chức năng nhỏ.
2. Integration Test (Kiểm thử tích hợp)
o Kiểm tra sự phối hợp giữa các module.
3. System Test (Kiểm thử hệ thống)
o Đảm bảo toàn hệ thống hoạt động như mong đợi.
4. Acceptance Test (Kiểm thử chấp nhận)
o Dựa trên tiêu chí chấp nhận của User Story, do nhóm và PO thực
hiện.
5. Regression Test (Kiểm thử hồi quy)
o Đảm bảo chức năng cũ không bị lỗi sau khi thêm tính năng mới.
 

KIỂM THỬ VÀ DEFINITION OF DONE (DOD)
Trong Scrum, một chức năng chỉ được coi là "xong" khi thỏa mãn DoD, thường bao gồm:
 Đã code & build thành công
 Đã test đơn vị
 Đã test chấp nhận
 Không còn bug nghiêm trọng
 Được review code và merge
Kiểm thử là điều kiện bắt buộc để hoàn thành mỗi mục trong Sprint.
 

VIẾT KỊCH BẢN KIỂM THỬ (TEST CASE)
Mỗi Test Case nên có:
 ID: Mã định danh
 Tên: Tên chức năng kiểm thử
 Mục đích
 Dữ liệu đầu vào
 Các bước thực hiện
 Kết quả mong đợi
 Trạng thái kiểm thử (PASSED/FAILED)
Ví dụ:

TC001 Đăng nhập
thành công
Nhập đúng
email và mật khẩu
Trang chủ
hiển thị

 

QUY TRÌNH KIỂM THỬ TRONG MỘT SPRINT
1. Từ User Story → xác định tiêu chí chấp nhận
2. Viết test case tương ứng
3. Lập trình chức năng
4. Thực hiện kiểm thử (manual/auto)
5. Ghi nhận kết quả, sửa lỗi nếu cần
6. Cập nhật trạng thái trong Backlog
 

KIỂM THỬ TỰ ĐỘNG (AUTOMATED TESTING)
 Tăng tốc độ kiểm thử
 Giảm sai sót do con người
 Thích hợp cho kiểm thử lặp lại (regression)
Công cụ phổ biến:
 Unit test: JUnit (Java), Pytest (Python), Mocha (Node.js)
 UI test: Selenium, Cypress
 API test: Postman, SoapUI
 CI/CD: GitHub Actions, GitLab CI, Jenkins
Trong dự án sinh viên, có thể chỉ cần manual test hoặc test tự động ở mức cơ bản.
 

VAI TRÒ CỦA CÁC THÀNH VIÊN TRONG KIỂM THỬ

Vai trò Trách nhiệm kiểm thử
Developer Viết Unit Test, kiểm tra chức năng mình lập trình
Product Owner Xác nhận tiêu chí chấp nhận đã đạt (Acceptance)
Tester (nếu có) Viết test case, kiểm thử thủ công hoặc tự động
Scrum Master Đảm bảo test là một phần trong Definition of Done

 

QUẢN LÝ LỖI (BUG TRACKING)
Các nội dung cần ghi:
 Mô tả lỗi
 Bước tái hiện lỗi
 Mức độ nghiêm trọng (High, Medium, Low)
 Ai chịu trách nhiệm sửa
 Trạng thái lỗi: Open, In Progress, Fixed, Verified, Closed
Công cụ dùng để quản lý bug:
 Jira, Trello, ClickUp, GitHub Issues, Google Sheets
 

THỬ NGHIỆM THỰC TẾ TRONG DỰ ÁN SINH VIÊN
Gợi ý:
 Mỗi thành viên đảm nhận một phần kiểm thử
 Có thể chia theo loại: test giao diện, test logic, test database
 Tạo bảng Google Sheet chung để ghi kết quả test case
 Định kỳ test lại sau mỗi Sprint (regression)
 

CÁCH VIẾT TEST CASE TỪ USER STORY
User Story:
Là một sinh viên, tôi muốn đổi mật khẩu để bảo vệ tài khoản.
Test Case đề xuất:

Mô tả Đầu vào Kết quả mong đợi
TC01 Đổi mật khẩu
thành công
Mật khẩu cũ đúng, mật
khẩu mới hợp lệ
Thông báo thành công
TC02 Mật khẩu mới
quá ngắn
Nhập < 8 ký tự Báo lỗi
TC03 Nhập sai mật
khẩu cũ
Nhập sai mật khẩu Báo lỗi


LƯU Ý KHI KIỂM THỬ GIAO DIỆN (UI)
 Kiểm tra căn lề, font chữ, màu sắc
 Giao diện có tương thích điện thoại không?
 Nút bấm, form nhập liệu hoạt động đúng?
 Có thông báo lỗi rõ ràng?
 

LƯU Ý KHI KIỂM THỬ CƠ SỞ DỮ LIỆU
 Dữ liệu có được lưu đúng vào bảng không?
 Trường khóa chính/khóa ngoại có hoạt động đúng?
 Có phát hiện lỗi trùng khóa?
 

CÂU HỎI ÔN TẬP
1. Trong Scrum, kiểm thử được thực hiện ở giai đoạn nào?
2. Test Case gồm những thành phần nào?
3. So sánh Unit Test và Acceptance Test?
4. Mối quan hệ giữa kiểm thử và Definition of Done?
5. Khi nào nên dùng kiểm thử tự động?

BÀI TẬP THỰC HÀNH
Bài tập 1: Chọn một User Story bất kỳ của nhóm bạn, viết tối thiểu 3 test
case kèm dữ liệu và kết quả mong đợi.
Bài tập 2: Tạo bảng theo dõi lỗi bằng Google Sheet hoặc Trello cho một
Sprint.
Bài tập 3: Cài đặt một bộ Unit Test đơn giản (ví dụ dùng assert trong Python
hoặc JUnit trong Java) cho 1 hàm kiểm tra số nguyên tố.

TÀI LIỆU THAM KHẢO
1. Agile Testing, Lisa Crispin & Janet Gregory
2. Test-Driven Development: By Example, Kent Beck
3. Tài liệu nội bộ môn “Kiểm thử phần mềm” – khoa CNTT
4. Scrum Guide – www.scrumguides.org
5. Video hướng dẫn viết Test Case – YouTube