Kiểm thử phần mềm
Thiết kế ca khóa đăng nhập sau ba lần sai
Viết chuỗi kiểm thử có khởi tạo lại và phân biệt lần sai thứ hai, thứ ba.
Thích và đánh giá Bình luận và hỏi đáp1. Đề bài
Tài khoản bị khóa sau ba lần nhập sai liên tiếp. Đăng nhập đúng trước khi khóa đặt bộ đếm về 0. Khi đã khóa, nhập đúng cũng bị từ chối. Xây ca kiểm thử phát hiện lỗi khóa sớm ở lần thứ hai và lỗi quên đặt lại bộ đếm.
2. Lập ca từ đặc tả
Dãy sai, sai, sai phải báo hai lần còn được thử rồi báo khóa. Dãy sai, sai, đúng, sai cần cho thấy lần cuối vẫn còn được thử. Khởi tạo bộ đếm và trạng thái khóa riêng cho từng ca để kết quả không phụ thuộc thứ tự chạy.
3. Đối chiếu lời giải
Mẫu Python mô phỏng đặc tả rồi so cả nhãn trả về lẫn bộ đếm cuối. Thay ngưỡng từ 3 xuống 2 để xem phép kiểm tra nào thất bại. Bỏ dòng đặt lại bộ đếm và chạy lại để xác nhận ca thứ hai phát hiện được lỗi.
Chạy ví dụ bằng python hoc_test_khoa_dang_nhap.py.
Môi trường thực hành. Python 3.10 trở lên. Ví dụ dùng thư viện chuẩn Python.
def chay(chuoi):
dem = 0
ket_qua = []
for dung in chuoi:
if dem == 3:
ket_qua.append("đã khóa")
elif dung:
dem = 0
ket_qua.append("đăng nhập")
else:
dem += 1
ket_qua.append("vừa khóa" if dem == 3 else "còn lượt")
return ket_qua, dem
assert chay([False, False, False, True]) == (["còn lượt", "còn lượt", "vừa khóa", "đã khóa"], 3)
assert chay([False, False, True, False]) == (["còn lượt", "còn lượt", "đăng nhập", "còn lượt"], 1)
print("Đạt cả ca khóa và ca đặt lại bộ đếm.")4. Bài tập mở rộng
Bổ sung quy tắc mở khóa sau khi quản trị viên xác nhận. Viết một ca thử mở khóa từ trạng thái đang khóa, một ca thử thao tác khi chưa khóa và mô tả rõ kết quả mong đợi của cả hai.