Một công ty kiểm thử phần mềm đã tiết lộ cách một trò chơi Nintendo cổ điển dẫn đến bước đột phá trong nền tảng kiểm thử tự động của họ. Antithesis , chuyên về kiểm thử các hệ thống phân tán phức tạp, đã phát hiện ra một hạn chế đáng kể trong cách tiếp cận của họ khi cố gắng hoàn thành trò chơi Metroid năm 1986 - điều chưa từng được thực hiện bởi một hệ thống tự động nào trước đây.
Công ty sử dụng các trò chơi điện tử như một bãi thử nghiệm cho nền tảng của họ, không chỉ vì mục đích tiếp thị, mà còn như một phương pháp nghiên cứu thực sự. Hệ thống của họ có thể điều hướng hầu hết Metroid thành công, chiến đấu với kẻ thù và thu thập các vật phẩm tăng sức mạnh, cho đến khi gặp phải một ch장애물 cụ thể đòi hỏi quản lý tài nguyên chiến lược.
Khả năng của nền tảng Antithesis:
- Tái tạo vật chất có tính xác định của bất kỳ thời điểm thử nghiệm nào
- Cơ sở dữ liệu phân tích thời gian thực cho các quan sát hệ thống
- Khám phá không gian trạng thái sử dụng phương pháp SOMETIMES_EACH
- Lập bản đồ trực quan các khu vực đã khám phá và trạng thái hệ thống
- Các cuộc thi speedrun "Con người đấu với Máy móc" tại các hội nghị
Vấn Đề Cánh Cửa Đỏ
Hệ thống kiểm thử liên tục bị mắc kẹt tại các cánh cửa đỏ trong Metroid , cần năm tên lửa để mở. Trong khi hệ thống thu thập tên lửa thành công, nó nhanh chóng sử dụng chúng chống lại kẻ thù thay vì tiết kiệm để mở cửa. Điều này tạo ra một vấn đề quản lý tài nguyên mà phương pháp khám phá hiện tại của họ không thể giải quyết.
Vấn đề trở nên rõ ràng thông qua cơ sở dữ liệu phân tích của họ, theo dõi vị trí nhân vật trong trò chơi và tạo ra các bản đồ trực quan về các khu vực đã khám phá. Dữ liệu cho thấy hệ thống của họ chỉ ghé thăm các khu vực có thể tiếp cận mà không cần đi qua cánh cửa đỏ, xác nhận chẩn đoán.
Thử thách kiểm tra Metroid:
- Trò chơi: Metroid (1986) - chưa bao giờ được hoàn thành bởi hệ thống tự động
- Trở ngại: Cửa đỏ yêu cầu 5 tên lửa để mở
- Vấn đề: Hệ thống sử dụng tên lửa để tấn công kẻ thù thay vì tiết kiệm chúng
- Tình trạng hiện tại: Khám phá ~60% thế giới game (các khu vực có thể tiếp cận mà không cần cửa đỏ)
- Vấn đề kỹ thuật: Quản lý tài nguyên so với tối ưu hóa tiến độ tức thì
Hạn Chế Kỹ Thuật Được Phơi Bày
Vấn đề làm nổi bật các khuyết điểm trong cách tiếp cận hiện tại của họ, sử dụng một phương pháp gọi là SOMETIMES_EACH để khám phá các trạng thái trò chơi khác nhau. Việc thêm số lượng tên lửa vào các tham số khám phá của họ sẽ tạo ra quá nhiều kết hợp trạng thái, gây áp lực lên bộ nhớ của hệ thống và làm chậm hiệu suất.
Các thành viên cộng đồng thấy thử thách kỹ thuật này rất hấp dẫn, với một số người rút ra sự tương đồng với speedrunning hỗ trợ công cụ. Những người khác lưu ý về các vấn đề hiệu suất với trang web của công ty, đặc biệt liên quan đến các hiệu ứng trong suốt CSS gây lag trình duyệt.
![]() |
---|
Sự phức tạp của việc tối ưu hóa các hệ thống thử nghiệm tự động phản ánh những thiết kế tinh xảo được thấy trong kiến trúc hiện đại |
Ứng Dụng Ngoài Gaming
Những bài học chúng tôi học được trong lĩnh vực Nintendo chuyển giao rất tốt sang hoạt động kinh doanh cốt lõi của chúng tôi là kiểm thử các hệ thống phân tán lớn, phức tạp
Nghiên cứu gaming này áp dụng trực tiếp vào việc kiểm thử các hệ thống phần mềm thực tế. Công ty lập luận rằng việc làm cho các hệ thống kiểm thử thông minh là một rào cản lớn đối với việc áp dụng các kỹ thuật kiểm thử tiên tiến, và họ nhằm giải quyết những vấn đề này một cách tổng quát thay vì yêu cầu mỗi đội phải tái phát minh các giải pháp.
Thử thách Metroid đại diện cho một vấn đề rộng lớn hơn trong kiểm thử tự động: làm thế nào để cân bằng tiến bộ tức thì với các mục tiêu chiến lược dài hạn. Điều này phản ánh các tình huống kiểm thử phần mềm thực tế nơi các hệ thống phải quản lý tài nguyên hiệu quả trong khi khám phá các đường dẫn thực thi khác nhau.
Mặc dù công ty chưa hoàn toàn giải quyết được vấn đề cánh cửa đỏ, những hiểu biết thu được đang định hình các cải tiến cho nền tảng của họ sẽ có lợi cho việc kiểm thử các hệ thống phân tán ngoài các ứng dụng gaming.
Tham khảo: Optimizing our way through Metroid