Ví dụ
Best Practices
Đặt tên Test Case
✓ TC_DKDL_CHON (Tên nghĩa, rõ ràng)
✓ TC_LOGIN_VALID_USER (Chứa flow logic)
✗ TC_001 (Quá chung chung)
✗ TC_TEST TEST (Chứa khoảng trắng)
Viết Description
✓ "Chọn menu DKDL và nhập dữ liệu hợp lệ"
✓ "Login với user invalid, xác nhận lỗi"
✗ "Test"
✗ "Chạy flow"
Tổ chức DataSet
✓ DKDL_DATA, LOGIN_DATA, COMMON_DATA (Tên rõ ràng)
✓ row1, row2, row3 (Đánh số tuần tự)
✗ data1, data2, d1, d2 (Tên mơ hồ)
Locator chất lượng cao
✓ #user_input (Có ID rõ ràng)
✓ button:Lưu (Role-based, text rõ)
✗ div > span > input (Quá phụ thuộc CSS)
✗ //*[1]/… (XPath quá dài)
Step descriptions rõ ràng
✓ "Nhập email: admin@test.com"
✓ "Click button 'Lưu' và kiểm tra thông báo"
✗ "Điền"
✗ "Click"
Chia test case nhỏ
✓ TC_DELETE_01: Chọn item, click Xóa, confirm
✓ TC_DELETE_02: Chọn many items, bulk delete
✗ 1 TC chứa 50 steps (quá phức tạp, khó debug)
Ví dụ hoàn chỉnh
Test Case đơn giản (Không dùng DataSheet)
TestCases sheet:
TC_ID | Description | DataSet | Run
TC_LOGIN_SIMPLE | Login với hardcode data | (empty) | Y
Steps sheet:
TC_ID | Step_No | Description | Action | Locator | Value
TC_LOGIN_SIMPLE | 1 | Mở trang login | goto | (empty) | ${DOMAIN}/login
TC_LOGIN_SIMPLE | 2 | Điền username | fill | #user_input | admin
TC_LOGIN_SIMPLE | 3 | Điền password | fill | #pass_input | pass123
TC_LOGIN_SIMPLE | 4 | Click login | click | button:Đăng nhập | (empty)
TC_LOGIN_SIMPLE | 5 | Kiểm tra thành công | expectURL | (empty) | ${DOMAIN}/home
Test Case dùng DataSheet
TestCases sheet:
TC_ID | Description | DataSet | Run
TC_LOGIN_DATA | Login với DataSheet | LOGIN_DATA | Y
Steps sheet:
TC_ID | Step_No | Description | Action | Locator | Value
TC_LOGIN_DATA | 1 | Mở trang login | goto | (empty) | ${DOMAIN}/login
TC_LOGIN_DATA | 2 | Nhập dữ liệu user1| fillData | (empty) | LOGIN_DATA.row1
TC_LOGIN_DATA | 3 | Click login | click | button:Đăng nhập | (empty)
TC_LOGIN_DATA | 4 | Kiểm tra thành công| expectText | (empty) | Trang chủ
LOGIN_DATA sheet:
DataID | user_input | pass_input | role_select
id | #email | #password | #role
row1 | admin | admin123 | Admin
row2 | user | user123 | User
Test Case với Popup/Tab
Steps sheet:
TC_ID | Step_No | Description | Action | Locator | Value
TC_POPUP_01 | 1 | Mở trang | goto | (empty) | ${DOMAIN}/home
TC_POPUP_01 | 2 | Click nút mở popup | waitForNewPageAfterClick| button:Chi tiết | (empty)
TC_POPUP_01 | 3 | Điền dữ liệu popup | fill | #name_in_popup | Test Data
TC_POPUP_01 | 4 | Click Lưu popup | click | button:Lưu | (empty)
TC_POPUP_01 | 5 | Đóng popup | closePage | (empty) | (empty)
TC_POPUP_01 | 6 | Kiểm tra quay về main| expectURL | (empty) | ${DOMAIN}/home