【发布时间】:2010-09-06 01:24:12
【问题描述】:
问题
您将如何为游戏添加自动化测试?
我相信您可以对游戏引擎的许多功能(网络、对象创建、内存管理等)进行单元测试,但是否可以自动测试实际游戏本身?
我不是在谈论游戏元素(比如 Protoss 会在地图 X 中击败虫族),而是在谈论游戏和引擎之间的交互。
简介
在游戏开发中,引擎只是游戏的一个平台。您可以将游戏引擎视为操作系统,将游戏视为操作系统将运行的软件。游戏可以是脚本的集合,也可以是游戏引擎中的实际子程序。
可能的答案
我的想法是这样的:
您需要一个确定性的引擎。这意味着给定一组输入,输出将完全相同。这将包括使用相同输入播种的随机生成器。
然后,创建一个简单的关卡,其中包含一些虚拟形象/用户可以与之交互的对象。从小处着手,随着更多交互的发展,将对象添加到关卡中。
创建一个遵循路径的脚本(测试寻路)并与不同的对象交互(存储结果或预期行为)。该脚本将是您的自动化测试。一段时间后(比如一周),运行脚本以及引擎的单元测试。
【问题讨论】:
-
flea.sourceforge.net/gameTestServer.pdf 这是一个关于在游戏中实现成熟的功能测试器的有趣讨论。术语“单元测试”意味着正在测试“单元”。这是一回事。如果您正在进行更高级别的测试(例如同时进行多个系统),通常这称为功能测试。可以对游戏的大部分内容进行单元测试,但是您不能真正为了好玩而进行测试。只要您的测试可以是模糊的,确定性就不是必需的。例如。 “角色是否受伤”而不是“角色是否损失了 14.7 点生命值。
-
(对 stackoverflow.fail 感到抱歉。我已经有一段时间没来了!)
-
当您谈论“单元测试”时,您的意思是“自动化测试”吗?
-
@Andrew,你是对的。我的意思是自动化测试。 /已编辑
标签: unit-testing automated-tests