揭秘Unity新版本测试
每周Unity都会发布二个小版本的更新,Unity持续工程质量专家重要的工作包括:评估新版本的质量,识别潜在问题,向开发团队提供反馈,然后允许发布更新。如何能在一周时间内测试Unity这款复杂的软件,并确保当它提供给成千上万用户,不会出现问题呢?这个问题在加入LTS稳定支持版本后变得更为重要。
今天我们将为大家揭秘Unity的新版本测试工作流程,帮助你了解Unity在为提供给用户稳定质量新版本所作的工作和努力。
自动化测试
这个问题的第一个答案显而易见:自动化调试。我们会使用大量的自动化调试。每个新版本必须通过约58000项独特的测试,这些测试会在不同的配置和平台上运行。
在将新版本提供给开发者之前,LTS的更新版本需要经过多项测试,确保它按预期工作。这些测试有很多不同的特点。大多数自动化测试都是编辑器测试和本地测试。编辑器测试是涵盖编辑器功能的测试。本地测试涵盖Unity代码中的C++代码。除此之外,我们还有运行模式测试、图形测试、性能测试等。
即使只有一个测试失败,该版本都要返回修改,直至找到失败测试的问题所在,然后合并修复并创建新版本。
在新版本通过所有测试后,它会进行提交,然后开始进行手动质量保证流程。该流程中有二个主要阶段:案例验证阶段和无回归错误阶段。
我们在案例验证阶段验证所有已修复错误是否已经修复好,在无回归错误阶段检查修复内容是否产生新的错误。我们遵循的流程对于LTS版本和TECH版本是相同的,所以这二个版本都遵循相同的质量标准。
案例验证
所有更新中的修复内容都由负责相关错误的人员进行验证。该人员可以是Unity团队中的任何成员:专注图形或2D等特定领域的嵌入式质量工程师、获得客户反馈并提交错误的现场工程师,或是处于Unity的QA前线的QA Student Worker团队。
这些人员都负责检查错误是否已经修复。通常这是第二次或第三次验证错误修复情况,因为在开发分支进入特定发布版本前还会有人验证该分支上的修复情况。
以上流程是我们确保修复情况的方法。如果该修复不起作用,错误会返回给提交修复的开发人员。上述流程的积极作用是新版本会有很多人检查。不同领域的不同人员会检查该版本并评估质量。
发布验收测试
这是我们的基线测试阶段,它是一个全方位的手动测试阶段,会涉及Unity的不同区域,确保所有基础部分都能正常工作,涵盖了3D、2D、动画和XR等主要区域。
我们还会测试所有内容是否能在所有主流平台上正常构建和运行。我们对Windows、MacOS、Android、iOS和所支持的主机平台都有相应测试。
发布验收测试套件还在不断更新,我们会根据不断变化的功能集修改该套件。此外,我们还会根据特定案例在处理问题时的有效性,不定期进行重大更改。
针对性的探索式测试
上述发布验收测试是我们“不做重大改变”的阶段。不同版本进行的该项测试通常是相同的,它不会受到发布版本中修复类型的影响。为了识别版本中修复程序的潜在回归错误,我们有针对性的探索式测试阶段。
每周我们都会召开会议,讨论更新中不同类型的修复并对其进行评估。根据该项评估,决定哪些区域需要更多的探索。如果我们认为该版本主要是2D修复,将围绕2D功能进行探索式测试。为了使测试更为仔细,负责测试特定区域的人员还会查看修复程序和添加的代码,从而提高测试的针对性。
项目测试
我们拥有一些热门游戏和应用的Unity项目,这些项目是由游戏工作室提供,通常使用这些项目来测试在从一个版本更新到另一版本时可能出现的问题。
我们会导入这些项目到新版本中,然后在编辑器运行项目,确保不会出现任何错误。多数情况下,我们还会创建一个版本来验证Unity整个管线的内容不受到破坏。
此外,我们还使用Asset Store资源商店的资源包进行测试,包括Unity内容团队制作的内容,例如:3D Game Kit和Tower Defense Template以及内部开发的资源包,用于测试粒子和2D物理等特定领域。
未来展望
上面介绍的就是我们目前所做的工作,目的是确保 LTS版本足够的稳定,并且使用LTS版本不会给用户带来任何问题。目前进展不错,我们也在努力变得更好。上述内容在三个月后可能和现在不会完全一致。我们会跟踪工作的情况并相应调整流程。
我们的理念是尽早发现问题,消除可能导致问题的因素。最终目标是不管加入了多少修复,LTS版本上的回归错误都“几乎为0”。
为此,我们注重根本原因分析,去识别遗漏的关键问题,尝试找到遗漏原因,探究为什么该问题会发生。然后根据调查结果优化流程,从而能在未来更好地处理类似问题。
我们会花费大量时间来识别提高Unity版本整体质量的工具。这些工具包括:在开发者提交代码时,给我们提供有价值反馈的工具;帮助我们能轻松识别代码中风险较高区域并优化我们测试的数据分析工具。
Unity是款相当复杂的软件,成千上万的用户以各种有趣且富有创意的方式使用它。是否有可能在一周内测试这样的软件,并确保所有加入的修复都不会产生任何回归错误呢?这仍是我们非常渴望解决的难题。
更多Unity技术内容介绍尽在Unity官方中文论坛(UnityChina.com) !
推荐阅读
活动信息
9月11日,Unity将参与由中央美术学院、中国文化娱乐行业协会联合举办首届游戏艺术大展,并举办Unity视觉艺术专题论坛,邀请所有对技术与艺术游戏及视觉艺术感兴趣的人员参与本次活动。[了解详情...]
8月Asset Store资源商店促销
8月期间,只需在Asset Store资源商店消费满50-255美元,即可获赠2-6款精品资源,最高消费250美元,更可附赠获得一件Asset Store定制款T恤!
活动地址:
https://assetstore.unity.com/g/august-promo-activation
点击“阅读原文”访问Unity官方技术论坛