Có nhiều cách để kiểm tra một trò chơi, hai cách được sử dụng nhiều nhất là: kiểm tra đơn vị và tích hợp.
Đối với thử nghiệm đơn vịbạn đang thử nghiệm hoạt động bên trong của trò chơi mà không thực sự chạy nó. Bạn có thể làm điều này cho các mô-đun cụ thể có phần phụ thuộc được trừu tượng hóa (ví dụ: logic tính toán Quest XP bạn nhận được, dựa trên một tập hợp các yếu tố nhất định; liệu âm thanh đã cho có được phát hay không). Tùy thuộc vào mức độ trừu tượng logic của bạn, bạn có thể kiểm tra nhiều hơn, nhưng để thống nhất cụ thể, có thể khó hơn khi đưa ra cách kiến trúc trò chơi được thực hiện (ví dụ: kế thừa từ monobehaviour). Tuy nhiên, áp dụng các mẫu OOP như thành phần, bạn có thể trích xuất các bit logic có thể được kiểm tra theo cách xác định (ví dụ: vật lý), ngay cả khi đôi khi nó có thể được coi là hơi cực. Tất cả phụ thuộc vào thời gian bạn có, bạn có bắt đầu từ đầu với dự án hay không, bạn có bao nhiêu kinh nghiệm, v.v. Nói chung, tôi không biết Không thấy nhiều thử nghiệm đơn vị trong các trò chơi so với các dự án phần mềm không phải trò chơi khác. Loại thử nghiệm này khá dễ dàng để tự động hóa khi bạn cung cấp các hành vi bị chế giễu mà bạn mô phỏng.
Để thử nghiệm tích hợp , bạn tương tác với trò chơi "toàn bộ" tại một thời điểm nhất định, khi tất cả các bộ phận đang chạy. Tùy thuộc vào độ sâu của những thứ bạn muốn kiểm tra, tôi thấy nó có thể rất dễ để hoàn toàn không thể.
Một ý tưởng sẽ là xây dựng "kiểm tra tích hợp", ghi lại mọi hành động (hầu hết) mà nó thực hiện (nghĩa là sinh ra quái vật, phát âm thanh, hiệu ứng bắt đầu, sinh sản hạt). Sau khi nó chạy trong một thời gian nhất định, bạn có thể kiểm tra nhật ký để xem liệu nó có khớp với một mẫu nhất định hay không (điều này cũng phụ thuộc vào mức độ ngẫu nhiên của trò chơi, dựa trên các đầu vào). Bây giờ, điều này nghe có vẻ đơn giản, nhưng câu hỏi là: làm thế nào bạn bảo trò chơi thực hiện các hành động mong muốn? Điều này đưa tôi đến ý tưởng thứ hai.
Một ý tưởng khác là sẽ có loại máy chủ trong trò chơi, một lần nữa, cho mục đích thử nghiệm, có thể xử lý các yêu cầu (ví dụ: thông qua API REST) và hoạt động theo các thực thể. Các yêu cầu có thể là: di chuyển sang trái, nhảy, xoay X độ, thay đổi chế độ xem, v.v ... Với phương pháp này, bạn cũng có thể thực hiện "kiểm tra" rằng trò chơi đang hoạt động như mong đợi, bằng cách kiểm tra trực tiếp trạng thái hoặc xác minh ảo nhật ký các sự kiện đã xảy ra. Cách tiếp cận này được sử dụng bởi các công cụ kiểm tra giao diện người dùng khác cho điện thoại di động (ví dụ: Xamarin Test Cloud)
Đối với phần điều khiển, nếu trò chơi của bạn dựa trên cảm ứng / trình duyệt, thay vào đó bạn có thể mô phỏng các hành động thông qua một thiết bị cảm ứng / nhập liệu ảo, nhưng điều này khó hơn một chút, tùy thuộc vào độ phức tạp của hành động.
Một ý tưởng khác, liên quan đến khía cạnh trực quan, là chụp một số ảnh chụp màn hình tham chiếu, hình ảnh trong giai đoạn ban đầu và so sánh chúng sau khi chuỗi hành động tương tự xảy ra trên một bản dựng mới hơn. Việc so sánh có thể có một khoản trợ cấp sai lệch cụ thể, để bảo vệ chống lại những thay đổi nhỏ. Trong các thử nghiệm, bạn có thể đăng nhập các màn hình không khớp và thấy sự khác biệt. Nó có thể là trường hợp màn hình tham chiếu cần phải được cập nhật do những thay đổi khác nhau. Trong trường hợp đó, trò chơi có thể được chạy lại với các hành động đặt trước và hình ảnh tham chiếu được cập nhật. Điều này có thể sẽ không hoạt động tốt với các hệ thống hạt hoặc các cảnh được tạo ngẫu nhiên, trừ khi bạn sử dụng ý tưởng trước đó để đặt một số loại hạt giống, được sử dụng để tạo ra các hạt.
Đối với âm thanh, nó có thể khó hơn một chút, vì nó sẽ liên quan đến việc "nghe" thiết bị OUT (điều này không phải lúc nào cũng có thể xảy ra, vì nó phụ thuộc vào phần cứng của hệ thống). Nhưng nếu có thể, bạn có thể thực hiện so sánh dựa trên tham chiếu giống như bạn làm với hình ảnh.
Tôi hy vọng điều này làm sáng tỏ về cách bạn có thể tự động hóa thử nghiệm trò chơi.
Chỉnh sửa sau: Tôi chỉ thấy rằng có một câu hỏi liên quan khác có thể cung cấp cho bạn một số gợi ý về cách bạn thực hiện một số bit nhất định: Kiểm tra trò chơi tự động