大学生活与异世界穿梭
繁体版

第二十四章 测试工作

    《古老画卷online》目前的内部版本只能操纵英雄攻击小怪,测试角色的经验、经济成长逻辑和技能释放,地图上暂时还没有敌方英雄与自己对线,不过据说联网功能已经开发了两个月,不久就能在内部上线供大家测试。

    作为一个游戏测试新人,王云飞本来以为目前的版本功能有限,工作应该很简单,事实是工作确实不需要太复杂的思考,反而要能忍受长时间的重复,毕竟测试人员并不知道具体的代码逻辑,他们验证的唯一方式就是手动将所有可能的情况一一穷尽。组长李士杰偶尔会共享一些为方便他的测试工作而编写的自动化脚本,这是一种需要编程基础的高阶测试手段,人物的动作按照代码的指示行进,然后时刻监控当前的状态是否处于合理的范围之内。组内被招进来的其他人一般都是细心的游戏好手,但在代码方面却一窍不通,现在稍微对自己的职业前景有些抱负,或者单纯想降低自己日常工作量的成员,无不仔细研读组长的测试脚本,就算不可能做到从零到一,至少也要学会修改关键变量,总结出一套范式模板,让它能适应自己当前的工作。

    王云飞在之前购买的测试工作指南上有见到过这种高级测试技术,但因为编程基础的缺失导致畏难情绪让他始终难以迈出第一步。而且不同游戏的测试脚本针对性很强,缺乏经验的人即使看明白了实例也很难快速的举一反三。好在李士杰和其他组内成员会在每一行代码上添加注释和前置补充,可以说现在是学习这门技术的最佳时机。

    本来需要一直监控英雄升级的经验数值变化,并反复验证到顶级为止,现在因为成功套用了脚本所以工作被简化了许多,验证击杀小怪后获取的金钱和经验同理,至于技能随着等级提升而产生的复杂变化则关联多种数值,因为它牵涉到游戏更深层的作用机制和更多元的变量,所以这是王云飞目前难以攻克的命题。不过好在还有其他笨拙的办法,例如当短时间内牵涉到的变化太多太广时,可以启用类似于“时停”的断点功能,假如能把整个世界都停下来,还有什么能逃过自己的法眼呢?另外程序员还提供了实时的数值日志可供查询,任何行为所产生的逻辑变量改动都会被如实的逐条打印在屏幕上并保存下来,方便事后追查出错的细节和在程序员面前复现。

    这一周分配给王云飞的主要任务是验证两个新角色的所有行为逻辑,确保他们的可用性。王云飞非常辛苦的做了全面的测试,除了几个人物技能动作上的衔接不连贯之外,也实在没找到什么逻辑上瑕疵。他又对照新人指南上总结的几个大方向再过了一遍,只为了寻求确认,还是一无所获。尽管无事发生对大家都好,可如果以后出了问题,到头来肯定还是得算自己的工作疏忽。即便不出问题,研发团队的代码真的完美无缺,那么游戏测试存在的价值又在何处呢?王云飞突然感觉自己就仿佛是程序员的死对头,完全靠他们犯的错误生存。

    因为动作不连贯的问题还算明显,即使游戏逻辑运作无误,直接这样拿去交给玩家也肯定不行,所以王云飞首次提交了一个没有明确标准的bug,问题描述中只是说“这个动作看起来有些奇怪。”这有点像是在挑刺。

    不久后他收到测试系统的通知,负责这个角色开发的程序员将功能验收人由王云飞改为了伊敏。他不明白这样做的意义,就顺势问起了邻座的郭子豪。

    “哦,伊敏,她是3D建模小组的,负责这个项目的人物动作设计。程序员大概觉得你提的问题合不合理得由她说了算。既然验收人改了,这个问题的后续你也不用继续跟了。正好有几个讨论群我拉你一下,除了上次的研发问题反馈群之外,还有一个包含所有工作人员的大群,里面有美术,3D建模,游戏设计,脚本创作等其他组的人,有任何问题也可以在大群反馈。”

    正当王云飞一个个翻着新群组里的成员列表时,组长李士杰突然走到自己身旁,说要带自己参加一个会议,同行的还有组里另一位同事。路上李士杰问分配给自己的任务完成了多少,王云飞只能不好意思的回答,实在测不出什么问题。李士杰笑了,说因为这已经不是研发团队推出的第一个人物,所以在经历过几次角色开发的迭代之后,他们在规避常见错误上的经验已经很丰富。

    “既然你的工作完成得差不多了,现在正好有新的任务派给你。”

    “是什么?”

    “待会你就知道了。”

    推门进入会议室,会议早已开始,他们几人在桌尾找了位置坐下。测试部门的老大黄振也这里。一人正站在投影仪前做着讲话,王云飞看见上面有各类坦克、飞机还有枪械的照片,原来这是公司与军方合作的模拟仿真项目,完成之后就能以更低廉的成本做军事演练和武器性能、对抗测试。现在仿真项目的研发已经接近尾声,交付的日期快到了,现在需要各测试小组再抽调一些人手出来做最终的全局测试。因为是军方的项目,所以接下任务的人除了需要签署保密协议之外,还需要和研发一起被集中在一处做封闭开发。

    回来之后,李士杰只对王云飞说,把这当作一次锻炼的机会,然后告知封测的时间暂定为一个月左右。王云飞倒觉得没什么,只当去见识见识一个另类的游戏罢了。李士杰在测试群里通知大伙两人要去做封闭测试,可能群里的成员或多或少都参加过类似的项目,所以也没掀起多大的波澜。只是死对头林宗其还是忘不了找自己对决《热血英豪》,这次王云飞终于不再退缩。

    “拿别家公司的竞品对决有什么意思,等《古老画卷online》的联网功能上线了,我们一决雌雄!”

    “好,这回你这个胆小鬼可别再给我跑了。我最瞧不起的就是你这种赢了钱就走,吹了牛就溜的人。”

    “哦!”这一句挑衅又在群里炸开了锅。

    “见好就收嘛。”王云飞做了个得意的表情,最后还是不忘俏皮一把。

    第二天来到封闭开发的办公地点,这里的楼层已接近网鼎大厦的顶层。这个宽敞的办公区的陈设和自己的原来的地方差不多,只是侧边的走道有更多空闲的空间,两排正常的工位背后还有一列桌子上什么都没有。室内的采光不错,座位的右手边就是落地窗户,可以看到B市繁荣的远景,只是王云飞来得挺早,工位上都没坐几个人。

    和一个不认识的研发闲聊得知,他们已经连轴转了半年,刚消停一周,又得马不停蹄的进入下一阶段,所幸预估工期只剩最后一个月了,而王云飞是第二波和他们做封闭开发的测试——换测试轻而易举,要想在别人的代码上继续开发就难了。

    项目负责人进来打断了众人的闲聊,研发们则默不作声的继续工作,而测试们则被叫到一旁,被指导阅读各类武器、载具的规格和熟悉上一批测试人员留下的报告和交接文档。

    终于正式进入仿真系统之后,王云飞才大吃一惊,他一眼认出这就是用来打造《古老画卷12》那个奇幻大陆的公司最新游戏引擎所构建的另一个完全不同的军事世界。他现在不光惊叹于这个引擎逼真的画面表现力,还震惊于它对重力、撞击、爆炸等物理效果和背后物理定律的精确模拟。他觉得一款游戏应当用不上这么多特性,不过或许单独为了这个特殊的项目,引擎研发人员咨询了很多专家做了专门的定制。

    这个仿真系统能做的事可不仅仅是驾驶车辆模拟驾校考试,他还可以在海上驾驶快艇,像电影一样观测航母的雷达扫面画面,乘坐直升飞机、战斗机翱翔于天地。而且还能用虚拟世界特有的技术,将夜色中的子弹标为闪光的亮色,提前绘制出导弹行进的轨迹,随时慢放静止重播一切事物的动作。至于那些操作复杂的载具不会开也没关系,操作面板旁边就有虚拟标志浮空指示了一、二、三的操作顺序和每个按钮挡位的功能介绍。王云飞估计应该还有类似于驾驶舱的全硬件输入模拟,不过那时的测试工作应当由熟练的飞行员和航海员来做了。

    一个个的比对武器、载具规格和做性能测试比对可是相当繁杂枯燥的工作,好不容易熬到午饭时间,才发现对面的空桌上已经摆好了盒饭。为了保证进度,项目负责人会在确保当天的任务完成之后才放大家下班,因而晚上九、十点才下楼都是常事。

    一个月的时间终于熬过大半,测试工作进入了相对自由但依然繁重的全功能遍历阶段。研发们的进度则接近收尾,现在他们只盼望没有哪个该死的测试突然蹦出来指出一个致命的错误让他们继续加班加点。王云飞因为对《古老画卷》系列了如指掌,所以对公司新旧引擎的特性也摸得相当清楚,于是一时兴起玩起在网上看过的速通套路,想试试在这个全新的世界里还是否行得通。果然,以往系列的漏洞全都被堵上,即使热度颇高的12代速通用bug也被修复。不过此刻王云飞已在兴头上,他充分发挥想象力自己高超的游戏技术,将知道的所有容易引发bug的操作连贯在一起,果然构成这个虚拟世界的引擎框架——一切存在的最终法则没经住这高强度、刁钻的蹂躏陷入崩溃,不仅王云飞操纵的人物飘向空中开始做起超出限度的高速四分五裂的奇异动作,坦克学会了翻滚,飞机也能在地面舞蹈。

    所有研发围在王云飞电脑前“欣赏”着这场灾难,并要求他复现。经过王云飞眼花缭乱的操作和迅疾的键盘手速之后,复现的概率不过十分之一,如果算上极为苛刻的触发条件,实际使用中会触发的概率大概万分之一都不到。因为工期将近,研发们一致认为这个问题可以暂时搁置。传到项目负责人那,当他听说解决问题的方法就是放着不管时,他有些生气的说出了程序员们害怕听到的“不”字,因为这是公司第一次与军方合作,而且系统崩溃之后的行为过于滑稽荒唐,一旦被发现将对公司形象造成巨大损害,所以他认为这个问题非修不可。于是经过研发们加班加点的研究考察,最终认为解决问题的能力已经超出他们自身的范畴,于是又有一批引擎架构师加入了封闭开发的战场,原本有些空旷的办公区又添了几张桌子,现在甚至都显得拥挤,而一切的“罪魁祸首”王云飞这个名字将令所有人终生难忘。