Có một số miền ứng dụng (ví dụ: GameDev), trong đó có rất nhiều hàm nên được tạo bằng cách sử dụng các giá trị ngẫu nhiên để tạo đầu ra của chúng. Một trong các ví dụ được trình bày bên dưới:Làm cách nào để xác nhận tính chính xác của các chức năng sử dụng ngẫu nhiên?
def generate_key(monster_key_drop_coef):
key_letters = string.ascii_uppercase
rand = random.random()
if monster_key_drop_coef < rand:
return None
button = {}
button["type"] = random.choice([1,2,3])
button["letter"] = random.choice(key_letters)
return button
Chức năng này tạo ra sự sụt giảm của mặt hàng dựa trên một số hoạt động ngẫu nhiên. Sự cố xuất hiện nếu bạn muốn xác thực tính chính xác của chức năng này. Các giá trị được tạo ra không xác định và viết các phép thử hồi quy có vẻ là không thể.
Câu hỏi của tôi là:
- phải là có thể này để viết bài kiểm tra hồi quy hữu ích cho loại chức năng?
- Có cách tiếp cận chung nào để tạo một số loại thử nghiệm khác trong trường hợp này không?
Có toàn bộ sách được viết về chủ đề này. Ví dụ: http://www.johndcook.com/Beautiful_Testing_ch10.pdf –
Trích xuất RNG để phân phối các kết quả đã biết (và sau đó thử nghiệm với các đầu ra cụ thể mà kết quả mong muốn được biết) là một cách tiếp cận. –