Để có một bộ Testcase hiệu quả, Tester cần xác định được những case sẽ được viết trong testcase của mình và thể hiện nó một cách rõ ràng,đầy đủ và dễ hiểu. Thông thường, một testcase rõ ràng sẽ được chia theo 2 phần: Test UI (Giao diện người dùng) và Test Functional (Chức năng). Test UI là thực hiện test về Bố cục, Màu sắc, Kiểu chữ, Đồ họa,...tất cả những gì thuộc về giao diện người dùng nhìn vào. Vậy còn Test Functional, làm thế nào để có một testcase chức năng tốt. Bài viết này sẽ giúp các bạn xây dựng được một testcase chức năng hiệu quả.
I. Bố cục testcase chức năng
Chia thành 3 phần chính:
- Kiểm tra các ràng buộc trên màn hình, điều kiện hiển thị dữ liệu trên màn hình - Kiểm tra giá trị trong Combo (các giá trị hardcode hoặc có sự truy vấn dữ liệu trong cơ sở dữ liệu để kiểm tra) - Kiểm tra ràng buộc giữa các control (có sự truy vấn dữ liệu trong cơ sở dữ liệu để kiểm tra) - Kiểm tra ràng buộc, ẩn hay hiện button. - Kiểm tra các màn hình trung gian để thực hiện chức năng chính: ví dụ để thực hiện chức năng phải có màn hình popup - Kiểm tra danh sách, giá trị các trường hiển thị trên màn hình
- Kiểm tra Constraint trong cơ sở dữ liệu.
Ví dụ: Không rỗng, không trùng - Kiểm tra Constraint nghiệp vụ
Note: Thứ tự sắp xếp các test case phải theo thứ tự tương ứng trên luồng trong tài liệu đặc tả yêu cầu: kiểm tra các luồng sự kiện phụ trước, cuối cùng là sự kiện chính
II. Cách viết
1. Cách 1: Các bước thực hiện chỉ mô tả các bước thực hiện đứng từ phía người dùng cuối bao gồm nhập dữ liệu, nhấn button. Việc kiểm tra dữ liệu trong DataBase so với hiển thị trên màn hình nằm ở kết quả mong muốn. Thường được dùng cho trường hợp kiểm thử kiểm tra lưu, cập nhật, xóa DataBase
2. Cách 2: Các bước thực hiện mô tả bao gồm các bước thực hiện đứng từ phía người dùng cuối và bước kiểm tra dữ liệu trong DataBase. Kết quả mong muốn so sánh dữ liệu hiển thị trên màn hình khớp với dữ liệu trong DataBase. Thường dùng cho các trường hợp kiểm thử tìm kiếm, báo cáo, check thông tin load từ DataBase lên màn hình
III. Hướng dẫn viết một số testcase Tìm kiếm, Thêm mới, Sửa, Xóa
1. Testcase chức năng Tìm kiếm
1.1. Validate giao diện:
- Không cần check validate các trường text box như maxlength, ...
- Chỉ cần validate các trường ngày tháng, combobox
- Luôn phải nhớ các case kiểm tra danh sách bao gồm tiêu đề các cột, căn lề, các tooltip và phân trang
1.2. Chức năng:
- Tìm kiếm theo giá trị mặc định (không nhập tiêu chí tìm kiếm nào)
- Tìm kiếm không ra kết quả
- Tìm kiếm theo từng tiêu chí đơn lẻ
- Tìm kiếm kết hợp các tiêu chí
1.3. Testcase tìm kiếm đơn lẻ
a. Đối với text box:
- Tìm kiếm khi nhập toàn ký tự khoảng trắng
- Tìm kiếm khi nhập chuỗi có chứa ký tự khoảng trắng đầu cuối
- Tìm kiếm khi nhập chuỗi có ký tự hoa thường
- Tìm kiếm khi nhập tiếng việt có dấu
- Tìm kiếm khi nhập các ký tự đặc biệt
b. Đối cới combobox:
- Tìm kiếm khi Combobox = ----Chọn---- Hoặc Tât cả
- Tìm kiếm khi chọn giá trị bất kỳ trong combobox
c. Đối với checkbox:
- Tìm kiếm khi check chọn 1 giá trị của Checkbox
- Tìm kiếm khi check chọn nhiều giá trị trong list của checkbox
d. Đối với radio button
- Tìm kiếm khi tích chọn 1 radio button
e. Đối với ngày tháng: Từ ngày
- Tìm kiếm khi nhập từ ngày là ngày hiện tại
- Tìm kiếm khi nhập từ ngày là 1 ngày bất kỳ
f. Đối với ngày tháng: Đến ngày
- Tìm kiếm khi nhập đến ngày là ngày hiện tại
- Tìm kiếm khi nhập đến ngày là 1 ngày bất kỳ
g. Đối với tìm kế hợp từ ngày – đến ngày
- Tìm kiếm khi nhập từ ngày = đến ngày
- Tìm kiếm khi nhập từ ngày , đến ngày
1.4. Testcase tìm kiếm kết hợp
- Không thể viết tất cả các case là tổ hợp của các tiêu chí tìm kiếm
- Viết các test case kết hợp lần lượt 2 tiêu chí, 3 tiêu chí, 4,5,... cho đến khi đủ tất cả các tiêu chí
2. Testcase chức năng Thêm mới
- Kiểm tra hiển thị confirm trước khi thêm
- Kiểm tra hủy bỏ thao tác thêm mới
- Kiểm tra xác nhận thêm mới
- Kiểm tra lưu vào DB
- Kiểm tra check trùng,...
- Kiểm tra chỉ nhập các trường bắt buộc
- Kiểm tra nhập tất cả các trường đạt maxlength
- Kiểm tra khi nhấn nút thêm mới liên tục
3. Testcase chức năng Sửa
3.1. Validate giao diện
Kiểm tra validate giống hệt khi thêm mới.Tuy nhiên case kiểm tra giá trị mặc định sẽ khác.Chú ý kiểm tra trường nào không được sửa (trường là khóa chính)
3.2. Chức năng
- Kiểm tra hiển thị confirm khi sửa
- Kiểm tra hủy thao tác sửa
- Kiểm tra khi xác nhận sửa
- Kiểm tra sửa khi không thay đổi dữ liệu nào
4. Testcase chức năng Xóa
- Kiểm tra hiển thị thông báo khi xóa
- Kiểm tra khi hủy bỏ thao tác xóa
- Kiểm tra khi chưa chọn bản ghi cần xóa
- Kiểm tra khi xóa thành công 1 bản ghi không có ràng buộc
- Kiểm tra khi xóa không thành công 1 bản ghi không có ràng buộc
- Kiểm tra khi xóa 1 số bản ghi có ràng buộc và 1 số bản ghi không có ràng buộc
- Kiểm tra khi xóa tất cả các bản ghi (đều không có ràng buộc)
Kết luận:
Trên đây là một số trường hợp về các case chức năng khi bạn làm việc với màn hình có chức năng Thêm, Sửa, Xóa và Tìm kiếm. Việc xác định chi tiết các case sẽ giúp các bạn tránh được việc bỏ sót case trong quá trình test và trong lúc xây dựng testcase. Bài viết của mình còn nhiều thiếu xót, rất vui nếu mọi người comment để mình bổ sung và hoàn thiện cho các bài viết sau.
Cám ơn mọi người đã đọc!