Là kiểm thử phần mềm khác nhau khi chúng ta đang đối phó với phát triển trò chơi?


11

Tôi đã đọc bài báo này về sự khác biệt giữa phát triển phần mềm nói chung và phát triển trò chơi và các tác giả đã đưa ra một số điểm tốt liên quan đến kiểm thử phần mềm, ví dụ, chỉ ra rằng

... Các nhà phát triển trò chơi ngần ngại sử dụng thử nghiệm tự động vì sự lỗi thời nhanh chóng của các thử nghiệm này khi đối mặt với mong muốn sáng tạo của các nhà thiết kế trò chơi.

Vì vậy, cách đọc này khiến tôi nghĩ, những khía cạnh nào khác trong kiểm thử phần mềm chúng ta nên xem là khác biệt hoặc cụ thể khi chúng ta đang xử lý / thử nghiệm một trò chơi? Có ai có kinh nghiệm về điều này hoặc có ai nghe thấy điều gì khác về nó không?


Tâm liên kết với bài báo? Tôi tò mò muốn đọc nó.
RubberDuck

1
Đây là bài báo: microsoft.com/en-us/research/wp-content/uploads/2016/02/ . Ồ, và đưa ra ý kiến ​​của bạn về điều này nếu bạn không phiền. Cảm ơn. :-)
Ronnie Edson

9
Tôi sợ rằng sự lỗi thời nhanh chóng (của các bài kiểm tra) khi đối mặt với mong muốn thay đổi của các quyền lực cũng xảy ra trong quá trình phát triển phi trò chơi. Điều đó cho thấy rằng có lẽ phát triển trò chơi không khác biệt so với phát triển khác?
Erik Eidt

Tôi muốn nói rằng sự khác biệt lớn nhất giữa phần mềm kinh doanh và trò chơi không phải là "yêu cầu thay đổi", điều này phổ biến hầu như ở mọi nơi, nhưng sự nhấn mạnh vào hiệu suất và công việc UI mạnh mẽ tạo nên một trò chơi. Trong phần mềm kinh doanh, các mô hình dữ liệu và logic có xu hướng tách biệt khỏi phần trình bày, khiến chúng trở thành ứng cử viên dễ dàng cho thử nghiệm đơn vị. Trò chơi không phải lúc nào cũng có sự xa xỉ này. Điều này không có nghĩa là phần trò chơi trực tuyến của máy chủ không thể được kiểm tra theo những cách truyền thống hơn, logic trò chơi thuần túy, tỷ lệ sinh sản quái vật, v.v.
Dan1701

1
Khác nhau là một nhà thờ rất rộng. Và nó phụ thuộc vào những gì bạn đang so sánh nó với.
Robbie Dee

Câu trả lời:


10

Các trò chơi hiện đại thực sự là một tấn nội dung nghệ thuật sáng tạo được phát triển bằng cách sử dụng một công cụ trò chơi nội bộ hoặc độc quyền. Bản thân động cơ có thể kiểm tra đơn vị cho hầu hết các phần (kết xuất, hình học, vật lý, mô-đun AI, v.v.). Tương tự, các bài kiểm tra đơn giản cũng có thể được gắn vào các phần riêng lẻ của nội dung được phát triển. Điều này có nghĩa là thử nghiệm đơn vị và hộp trắng thực sự khả thi và thành công.

Theo như "toàn bộ sản phẩm" có liên quan, một trò chơi là một mô phỏng. Nó có thể có nhiều phức tạp khái quát hơn một chương trình kinh doanh đơn giản. Hãy nghĩ về những thế giới vô tận, độc đáo, được tạo ra theo thủ tục so với một nhà hoạch định tài nguyên doanh nghiệp với những hành vi được lên kế hoạch tốt. Nói một cách đơn giản, số cách duy nhất có thể để làm một cái gì đó trong bối cảnh trò chơi, có thể là toán học, rất rất lớn. Trong thực tế, nó được coi là một điểm bán hàng cho các trò chơi.

Thêm vào đó là thực tế rằng đầu ra cuối cùng hoàn toàn là âm thanh trực quan và không có tiêu chuẩn xác định về tính chính xác tuyệt đối của đầu ra đó. Chip GPU thực sự không cần thực hiện các tính toán chính xác, chỉ cần rất nhiều tính toán, ngay cả khi một số không chính xác.

Và cuối cùng, mục tiêu chính là Giải trí . Các game thủ sẽ ổn với các trục trặc nếu nó chạy 60+ FPS, trông tuyệt vời và có hàng giờ nội dung giải trí vô tận.

Điều này chỉ đơn giản là đặt các ý tưởng thử nghiệm hộp đen tự động truyền thống trong khu vực "không hữu hình và đáng giá" khi áp dụng cho các trò chơi.

Tuy nhiên, gần đây đã có những nỗ lực đào tạo NN để chơi trò chơi , đây thực sự là một hình thức thử nghiệm khỉ tự học.


2
"Chương trình kinh doanh trung bình" là gì?
tên của

1
Đúng ! Đó không phải là quá nhiều số lượng tương tác khác nhau (có một ERP hàng đầu với hàng ngàn loại giao dịch liên quan và bối cảnh quá trình có thể được cấu hình lại vô tận). Thêm nữa là một phần mềm kinh doanh dự kiến ​​sẽ cung cấp một hành vi lặp lại có thể dễ dàng xác minh trong một thử nghiệm tích hợp. Trò chơi phải giải trí và bất cứ điều gì lặp lại là nhàm chán. Vì vậy, công cụ kiểm tra rất khó để đo lường mức độ giải trí hoặc tính nhất quán và tính chân thực của các cảnh người dùng nhìn thấy. Có thể với một số AI trong 30 năm nữa ....?
Christophe

@Christophe nó phụ thuộc vào phạm vi có thể lặp lại - ví dụ: "khi nhân vật bị bắn, anh ta sẽ mất 5 máu" là hoàn toàn có thể lặp lại và hoàn toàn có thể kiểm tra được. Điều quan trọng là logic trò chơi có thể lặp lại có thể lặp lại được trừu tượng hóa từ các phần có trạng thái ít hữu hình hơn để khẳng định chống lại.
Ant P

2

Đã nhiều năm kể từ khi tôi chơi gamedev nhưng trên đầu câu trả lời hay, có một số điều tôi muốn thêm và chi tiết.

Đầu tiên đã được đề cập là đầu ra chỉ là hình ảnh và thính giác chống lại các ràng buộc "quan trọng FPS" chặt chẽ và ngân sách tính toán / bộ nhớ. Ý tưởng về sự chính xác trở nên mờ nhạt khi các câu hỏi giống như, "Nó có tốt không? Nó có chạy trơn tru mà không có bất kỳ sự lắp đặt nào không? Nghe có tuyệt không?" trong khi các nhà phát triển đang điều chỉnh và điều chỉnh và xấp xỉ trong khi sự hợp tác của nhà thiết kế / nhà phát triển dẫn đến mọi thứ trông và âm thanh hơi khác nhau với mỗi lần lặp nhanh.

Một số khác là những người thử nghiệm có thể là tuyệt vời! Tôi chưa bao giờ tìm thấy một nhóm người thử nghiệm chuyên dụng hơn trong bất kỳ miền nào khác, vì họ muốnđể kiểm tra phần mềm. Họ đang vui vẻ. Họ nghiện và ngủ cạnh máy tính trong khi khám phá mọi ngóc ngách trong trò chơi của bạn. Nó trở nên khá dễ dàng để khám phá ngay cả những trục trặc khó hiểu nhất khi mọi người thực sự được giải trí kiểm tra kỹ lưỡng mọi góc cạnh của phần mềm trong khi thực tế nghiện nó. Trong ngành công nghiệp hiện tại của tôi, những người thử nghiệm khó làm việc hơn một chút vì nhiều người trong số họ là những chuyên gia buộc kế sinh nhai của họ vào phần mềm, và vì vậy họ dựa vào một số tính năng để hoàn thành công việc của họ và không nhất thiết phải quan tâm đến việc cạn kiệt mọi ngóc ngách mọi lúc. Đương nhiên khi chúng ta không thể phụ thuộc quá nhiều vào người thử nghiệm, chúng ta cần thử nghiệm tự động hơn.

Một điều nữa là cơ sở mã cho một trò chơi thường không được duy trì và sửa đổi và mở rộng trong nhiều năm. Nó không giống như các nhà phát triển của Super Mario, người đầu tiên phát triển nó trong phiên bản 6502 đã phải duy trì bất cứ thứ gì giống với mã gốc đó rất lâu sau khi trò chơi xuất xưởng. Doom 3 có thể sử dụng các dòng mã bằng 0 (hoặc đóng) từ Doom 1. Nếu có nhượng quyền tiếp tục, các trò chơi mới giống như "phần tiếp theo" hơn là "nâng cấp". Hầu hết các trò chơi chỉ xuất xưởng và có thể phát hành một số bản vá, DLC, và sau đó mã được thực hiện. Đó là một sự tương phản lớn với ngành VFX của tôi, nơi tôi đã làm việc để duy trì mã có từ thời Amiga đã được chuyển và duy trì trong nhiều thập kỷ. Trò chơi thường không '

Một trong những lý do cho tính chất tồn tại ngắn này của các cơ sở mã trò chơi là chúng quá gắn liền với phần cứng. Khi được kết hợp với tính chất tiên tiến và các yêu cầu quan trọng của FPS, chúng thường không thể được phát triển theo cách trừu tượng hóa các chi tiết phần cứng, thậm chí không đóng. Chúng thường được viết rất đặc biệt cho thế hệ phần cứng mục tiêu và thường không lâu sau đó PS3 sẽ được thay thế bằng PS4, sau đó trở nên lỗi thời và được thay thế bằng PS5, v.v. Các khả năng phần cứng đóng một vai trò quan trọng trong thiết kế và phát triển trò chơi, nói chung không đáng để cố gắng duy trì nhiều mã được viết cho PSX như cho PS4, ví dụ: Hầu hết các nhượng quyền trò chơi kéo dài qua các thế hệ vẫn viết động cơ thế hệ tiếp theo của họ phần lớn từ nền tảng cho phần cứng mới nhất.

Với một cơ sở mã hóa ngắn có thời gian bảo trì hạn chế (nghĩa là thời gian giới hạn mà mã phải được sửa đổi). Với thời gian giới hạn để thay đổi mã không kéo dài nhiều năm với phạm vi động cơ ngày càng lớn hơn với mỗi lần nâng cấp, và kết hợp với thực tế là các trò chơi không ở gần với nhiệm vụ quan trọng, không hoàn toàn như vậy cần thiết để áp dụng các đơn vị toàn diện nhất và thử nghiệm tích hợp. Không có lợi ích gì trong việc đảm bảo tính toàn vẹn của các thay đổi trong tương lai nếu những thay đổi trong tương lai sẽ không được thực hiện và khía cạnh thử nghiệm và tái cấu trúc đơn vị của các cơ sở mã kế thừa đương nhiên không liên quan nếu không có "di sản" ở nơi đầu tiên.

Một điều nhỏ khác không phải lúc nào cũng phù hợp là một trò chơi chỉ có thể nhắm mục tiêu phạm vi phần cứng rất hẹp mà không có bất kỳ cổng máy tính để bàn nào. Trong những trường hợp đó, một nguồn lớn các trục trặc khó lường trong các bối cảnh này, đó là người dùng chạy phần mềm với phần cứng và trình điều khiển hoàn toàn khác nhau, đã bị loại bỏ.

Điều đó nói rằng, thử nghiệm tích hợp ở mức cao nhất / thô nhất có xu hướng hữu ích hơn ngay lập tức. Ví dụ: nhiều trò chơi có thể sử dụng một cách để ghi lại trạng thái trò chơi thay đổi theo thời gian cho "phát lại". Các tính năng phát lại như vậy có thể đảm bảo rằng trò chơi có tính quyết định và cũng được sử dụng như một hình thức của một công cụ kiểm tra để tự mình phát lại phiên trò chơi được ghi lại bởi người khác.

Tôi cũng đã gặp các game thủ làm việc trong các studio nhỏ, những người đã làm những việc như viết bot cho trò chơi của họ và cho các bot chơi trò chơi của họ ở tốc độ tối đa và chạy mô phỏng đó, ban đầu gặp phải một sự cố khó hiểu sau một hoặc hai ngày, sau đó sửa nó, sau đó sửa nó chạy lại mô phỏng và lặp đi lặp lại cho đến khi không còn sự cố dừng hiển thị nào nữa ngay cả sau khi chạy nó trong nhiều tuần liền. Vì vậy, có những cách tiếp cận thực tế thú vị như tôi đã thấy từ các game thủ để thử nghiệm phần mềm của họ, nhưng thường theo cách giống với mức độ thử nghiệm tích hợp thô nhất và mô phỏng mọi thứ rất gần với cách người chơi thực sự tương tác với trò chơi.

Cuối cùng, các công cụ trò chơi AAA lớn này đang bắt đầu giống với một loại quái thú khác: sống lâu hơn, trừu tượng hóa thành công phần cứng tốt hơn một chút, với các cơ sở mã hóa lớn hơn và thời gian bảo trì dài hơn trong khi các trình soạn thảo cấp độ của chúng bắt đầu giống với môi trường phát triển toàn diện. Tôi tưởng tượng những động cơ lớn đó có thể sẽ yêu cầu quy trình thử nghiệm kỹ lưỡng hơn, đặc biệt nếu thời gian mã của chúng được duy trì mở rộng đáng kể. Vẫn còn rất nhiều hãng game không viết các công cụ trò chơi AAA khổng lồ: họ cấp phép cho họ hoặc phát triển một công cụ độc quyền nhỏ có phạm vi nhỏ hơn đáng kể và sẽ không được duy trì trong nhiều năm.


1
Bots. Đúng, đó là một cách tiếp cận đã được thử nghiệm và thử nghiệm.
SD
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.