Lợi nhuận:
- Khả năng hiểu các lớp kiểm tra chức năng, hồi quy, trường hợp biên và sự cố cũng như tạo ra các kịch bản thử nghiệm và danh sách trường hợp biên bằng trí tuệ nhân tạo
- Khả năng tăng tốc độ gỡ lỗi bằng cách viết mã kiểm tra tự động bằng trí tuệ nhân tạo và trích xuất các mẫu trong phân tích nhật ký và sự cố
- Có thể hiểu rằng chẩn đoán lỗi của trí tuệ nhân tạo không phải là bằng chứng mà là giả thuyết, nguyên nhân phải được chứng minh bằng nhật ký và bản sao, đồng thời tầm quan trọng của việc báo cáo lỗi có thể được tái tạo.
Khi một trò chơi được phát hành, người chơi chơi theo cách mà nhà phát triển không thể tưởng tượng được: mắc kẹt trong tường, khai thác kho đồ, đến những nơi không thể, gây ra sự cố. Đảm bảo chất lượng (QA - đảm bảo chất lượng); Đó là quá trình kiểm tra trò chơi một cách có hệ thống trước khi phát hành và tìm và sửa lỗi (bug), treo máy, mất ổn định và trải nghiệm không tốt. Đây là một trong những mắt xích tốn nhiều công sức nhất nhưng quan trọng nhất trong quá trình sản xuất trò chơi. AI tăng tốc QA ở nhiều điểm: tạo trường hợp kiểm thử, phân tích báo cáo lỗi, xem xét nhật ký, viết mã kiểm thử tự động, gỡ lỗi và tinh chỉnh các bước sản xuất. Nhưng AI không thay thế trực giác và đánh giá của con người về cảm giác trò chơi.
Trong phần này, bạn sẽ học cách sử dụng AI trong QA và gỡ lỗi; Bạn sẽ học thiết kế kịch bản kiểm thử, phân tích nhật ký, viết bài kiểm tra tự động và kỷ luật báo cáo lỗi.
Các lớp QA và vị trí của AI
QA có nhiều lớp. Kiểm tra chức năng: tính năng có hoạt động không (cửa có mở, tải ghi âm không). Kiểm tra hồi quy: thay đổi mới có phá vỡ những gì đang hoạt động trước đó không? Kiểm tra trường hợp biên: đầu vào bất thường (đặt lại khoảng không quảng cáo, hai khóa cùng một lúc, giá trị đường biên). Kiểm tra hiệu năng/sự cố: trò chơi có ổn định không. Kiểm tra lối chơi/trải nghiệm: vui nhộn, trực quan. AI mạnh ở bốn lĩnh vực đầu tiên: tạo kịch bản, liệt kê các trường hợp khó khăn, viết mã kiểm tra, phân tích nhật ký. Cuối cùng—trải nghiệm—thuộc về con người.
Quy trình QA từng bước:
- Tạo các trường hợp thử nghiệm (danh sách các trường hợp chức năng và cạnh với AI).
- Viết kiểm tra tự động (mã để kiểm tra lặp đi lặp lại).
- Chạy và thu thập (lỗi nhật ký, nhật ký, sự cố).
- Phân tích (kiểm tra nhật ký và mẫu lỗi bằng AI).
- Báo cáo và xác minh (báo cáo lỗi rõ ràng, có thể tái tạo; sửa lỗi kiểm tra).
Gợi ý: Thật khó để tìm thấy các trường hợp đặc biệt vì nhà thiết kế đã chơi trò chơi của mình một cách "đúng đắn". Hỏi AI "người chơi sẽ thử làm gì nếu họ muốn phá vỡ hệ thống này?" Liệt kê các trường hợp khai thác và các trường hợp nguy hiểm.
Kiểm tra tự động: để việc lặp lại cho máy
Việc kiểm tra thủ công những thứ giống nhau trong mỗi bản phát hành rất mệt mỏi và dễ xảy ra lỗi. Kiểm tra tự động sẽ đưa các bước kiểm tra này vào mã: hàm có trả về kết quả chính xác mỗi khi được gọi hay không, hệ thống có ở trạng thái mong đợi hay không. Unity và Unreal cung cấp các khung thử nghiệm; AI rất nhanh trong việc viết những bài kiểm tra này. Nó đặc biệt có giá trị cho hồi quy: nếu một thay đổi phá vỡ thứ gì đó đang hoạt động trước đó, bài kiểm tra sẽ chuyển sang màu đỏ. Xem lại các bài kiểm tra mà AI tạo ra, đảm bảo rằng chúng kiểm tra xem điều gì thực sự có ý nghĩa - một bài kiểm tra trống còn tệ hơn là không có bài kiểm tra nào.
Thận trọng: Trong quá trình gỡ lỗi, AI đôi khi đưa ra lời giải thích bịa đặt dưới dạng "nguyên nhân có thể xảy ra" (ảo giác). Đừng chấp nhận nguyên nhân gây ra lỗi chỉ vì AI đã nói với bạn như vậy; Chứng minh nguyên nhân bằng cách ghi nhật ký, sao chép và thử nghiệm. Chẩn đoán sai làm trì hoãn việc tìm ra chẩn đoán đúng.
Sinh sản: trung tâm của việc gỡ lỗi
Yêu cầu đầu tiên để sửa lỗi là tái tạo nó một cách đáng tin cậy. Không thể sửa được lỗi được mô tả là "đôi khi xảy ra" vì bạn không thể xác minh xem bản sửa lỗi có hiệu quả hay không. Vì vậy, công việc sửa lỗi có giá trị nhất là thu hẹp các điều kiện chính xác mà lỗi xảy ra (bước nào, tình huống nào, thời gian nào). AI giúp thu hẹp điều này: bạn có thể đưa ra các triệu chứng và các bước tái tạo một phần và nói “đề xuất các điều kiện và chiến lược thu hẹp có thể kích hoạt hành vi này”. Nhưng bạn thực sự thu hẹp bằng cách chạy trò chơi; AI tạo ra các giả thuyết, bạn loại bỏ chúng.
Đặc biệt là các lỗi liên quan đến thời gian (điều kiện chủng tộc) và trạng thái bộ nhớ rất nguy hiểm; những điều này chỉ xảy ra theo một trình tự hoặc tải cụ thể. Đối với những lỗi như vậy, điều quan trọng là phải thêm thông tin về dấu thời gian và trạng thái vào nhật ký; AI có thể phân tích nhật ký phong phú này và xem mẫu (“lỗi luôn xảy ra khi hai sự kiện này xảy ra gần đây”). Hãy nhớ quy tắc vàng của việc gỡ lỗi: trước tiên hãy hiểu, sau đó sửa. Sửa mà không hiểu thì che giấu lỗi nhưng không giải quyết được và thường tạo ra lỗi mới ở chỗ khác.
ba trường hợp nhỏ
Trường hợp 1 - Săn trường hợp cạnh. Trong một game nhập vai, nhóm đã thử nghiệm hệ thống kho đồ ở lối chơi "bình thường" và cho rằng nó ổn định. Họ yêu cầu AI nói "cố gắng bẻ khóa kho này" và tạo ra 30 tình huống khó khăn; 4 trong số này là lỗi thực sự (0 trọng lượng phân chia vật phẩm, dùng một lần đồng thời). Chỉnh sửa trước khi xuất bản.
Trường hợp 2 - Phân tích nhật ký đã giải quyết được sự cố. Một trò chơi bị lỗi ngẫu nhiên; nhật ký sự cố có hàng trăm dòng. Khi AI được cung cấp nhật ký và yêu cầu mẫu, nó được tiết lộ rằng sự cố luôn xảy ra ở một chuyển cảnh cụ thể và bộ nhớ thấp. Với manh mối này, người lập trình đã tìm ra chỗ rò rỉ bộ nhớ; Tỷ lệ sự cố giảm xuống bằng không.
Trường hợp 3 - Trở về sau chẩn đoán sai. Một lập trình viên tin tưởng lời giải thích của AI rằng "lỗi này là do chức năng này gây ra" và mày mò suốt nửa ngày; không có kết quả nào được đưa ra. Khi anh làm rõ và ghi lại các bước sản xuất, lỗi lại ở một chỗ hoàn toàn khác. Bài học: Chẩn đoán AI là giả thuyết, không phải bằng chứng.
Bốn mẫu có thể sao chép
1) Tạo kịch bản khai thác/trường hợp biên:
Vai trò của bạn: người kiểm tra QA độc hại. Tôi mô tả hệ thống sau: [hệ thống, quy tắc]. Nhiệm vụ: liệt kê 20 tình huống nguy hiểm sẽ cố gắng phá vỡ, khai thác hoặc đẩy hệ thống này vào trạng thái không mong muốn. Đối với mỗi: nên thử cái gì, kết quả mong đợi, lỗi có thể xảy ra.
2) Viết bài kiểm tra tự động:
Động cơ: [Unity 2022.3 / Unreal 5.3]. Khung kiểm tra: [chỉ định]. Viết các bài kiểm tra tự động cho chức năng/hệ thống sau: [mô tả/mã]. Bao gồm trường hợp bình thường, trường hợp giới hạn và đầu vào bị lỗi. Đảm bảo mỗi bài kiểm tra xác minh điều gì đó thực sự có ý nghĩa; Viết các bài kiểm tra trống rỗng/vô nghĩa.
3) Phân tích nhật ký/sự cố:
Dưới đây là nhật ký sự cố/lỗi của trò chơi: [log]. Nhiệm vụ: đánh dấu các mô hình lặp lại, các tình trạng chung (cảnh, bộ nhớ, thời gian) và các nguyên nhân gốc rễ có thể xảy ra. Trình bày mỗi nguyên nhân dưới dạng một "giả thuyết cần được chứng minh"; nói rõ ràng. Cũng cho tôi biết làm thế nào để xác minh.
4) Làm rõ báo cáo lỗi:
Làm cho báo cáo lỗi mơ hồ sau đây trở nên rõ ràng và có thể tái tạo: [báo cáo thô]. Đầu ra: tiêu đề, tái tạo từng bước, kết quả mong đợi, kết quả thực tế, tần suất, môi trường. Nếu thiếu thông tin, hãy liệt kê những thông tin cần thiết.
Dấu nhắc yếu / Dấu nhắc mạnh
Dấu nhắc yếu:
Có một lỗi trong trò chơi của tôi, hãy sửa nó.
Không có bối cảnh, không có nhật ký, không sao chép; AI có khả năng dự đoán và nguy cơ xảy ra ảo giác rất cao.
Lời nhắc mạnh mẽ:
Có một lỗi trong trò chơi Unity 2022.3 của tôi: kho đồ đôi khi tăng gấp đôi khi người chơi thực hiện tải nhanh. Sao chép: [các bước]. Mã liên quan: [dán]. Nhật ký: [dán]. Nhiệm vụ: liệt kê các nguyên nhân gốc rễ có thể có như các giả thuyết cần được chứng minh, đưa ra cách xác minh và cách khắc phục có thể cho từng nguyên nhân. Tạo ra một nguyên nhân không tồn tại; Nếu bạn không chắc chắn, hãy cho tôi biết.
Yêu cầu sao chép, mã hóa, ghi nhật ký và "trình bày dưới dạng giả thuyết" làm cho chẩn đoán trở nên đáng tin cậy.
Bảng lớp QA
lớp
Nó kiểm tra cái gì?
Đóng góp của AI
sự chia sẻ của con người
chức năng
Tính năng này có hoạt động không?
Kịch bản, mã kiểm tra
Quyết định nhập học
hồi quy
Đồ cũ có bị hỏng không?
kiểm tra tự động
Quyết định phạm vi
trường hợp cực đoan
đầu vào bất thường
Sản xuất kịch bản
ưu tiên
Sự cố/hiệu suất
quyết tâm
Phân tích nhật ký
Xác nhận nguyên nhân gốc rễ
Kinh nghiệm
giải trí, trực giác
hạn chế
hoàn toàn là con người
Những lỗi thường gặp
- Chỉ đang thử nghiệm lối chơi "bình thường". Vỏ cạnh phát nổ sau khi phát hành.
- Nhầm chẩn đoán AI là bằng chứng Tại sao được chứng minh bằng nhật ký và thử nghiệm.
- Viết các bài kiểm tra tự động trống. Những thử nghiệm vô nghĩa mang lại ảo tưởng về sự tự tin.
- Báo cáo lỗi mơ hồ. Một lỗi không thể tái tạo thì không thể sửa được.
- Bỏ qua kiểm tra hồi quy. Mỗi lần sửa có thể gây ra lỗi mới.
Tóm lại
QA là kỷ luật giúp trò chơi sẵn sàng cho người chơi. AI; tạo ra các tình huống khó khăn, viết các bài kiểm tra tự động, phân tích nhật ký và làm rõ các báo cáo lỗi. Nhưng những chẩn đoán của họ chỉ là giả thuyết, việc đánh giá kinh nghiệm là con người và mọi sửa chữa đều cần phải kiểm tra lại. Nhân rộng phản xạ “ai có thể phá vỡ cái này và làm thế nào” bằng AI; Bạn thu thập bằng chứng.
Nhiệm vụ ứng dụng
Chọn một hệ thống từ trò chơi của bạn. Tạo 20 kịch bản bằng mẫu “tạo kịch bản khai thác/trường hợp biên” và thực sự kiểm tra 5 kịch bản rủi ro nhất. Tạo báo cáo có thể tái tạo cho lỗi bạn tìm thấy bằng mẫu "Sàng lọc báo cáo lỗi".
danh sách kiểm tra
- [ ] Tôi đã tạo một trường hợp đặc biệt với "Ai có thể phá vỡ cái này và bằng cách nào?"
- [ ] Đã viết và xem xét thử nghiệm tự động để kiểm tra định kỳ.
- [ ] Tôi coi chẩn đoán AI như một giả thuyết và chứng minh nó bằng nhật ký/kiểm tra.
- [ ] Tôi đã báo cáo lỗi có thể lặp lại.
- [ ] Tôi đã kiểm tra lại từng bản sửa lỗi để tìm hồi quy.