目前手游已经走上精品化的道路,所有的国内大厂对游戏质量都十分重视。如果有必现的严重bug,均是不允许上线的。业界对游戏品质的要求越来越高,但是测试人力缺不太能增加,所以自动化测试必然以后发展的重要方向。
不同于Web应用和Android原生应用,手游的自动化测试的难点要高的多。
1、游戏更为复杂;
2、更新迭代,版本周期更短;
3、Bug种类更多,流畅、音效等;
4、没有一款成熟的UI自动化测试框架;
5、难以以用例的形式进行测试,游戏往往是一撸到底的。
通常我们平时的自动化测试时这样的(项目组自己对待测试的方式各不相同,我只说UI自动化):
1、持续集成。每日都会自动构建一个可用版本,构建系统能够自动把这个apk提交到平台上,平台这边会在top100的手机上,执行安装、拉起、登录、monkey点击。通常10分钟之内出报告。
2、case自动化测试。开发一个新版本后,针对该新功能,使用脚本在平台上Top100的Android手机上执行。主要是兼容性测试和性能测试,附带一定的功能性测试。通常30分钟之内出报告。
3、提测版本测试。每一个提测版本,均需要做回归测试,可以利用平台进行自动化测试。
4、PVP类手游测试。MOBA多人对战游戏,往往需要找10个外包一起测试,耗费人力巨大。因此,部分项目组使用9个自动化脚本+1个人测试人员的模式进行测试,能够极大的节省人力成本。
5、探索性兼容测试。就测试效果而言,人工测试也并不全部优于自动化测试,人在测试的时候一定是具有定向思维的,部分按钮很难被测到。我们使用自动探索的方式进行测试,对游戏进行无意识的操作覆盖尽可能多的场景,更加容易发现兼容性问题。
6、大版本发布。微信在兼容性上的测试最为严格,每天晚上都会在WeTest平台上(wetest.qq.com)测试180多种Android手机,自动化测试超过8个小时。WeTest内部还有一个团队叫ATC,适配兼容测试团队。大版本上线之前,会使用人工对游戏进行最后一次测试,发现自动化发现不了的问题。
楼主提到自己是在一家提供银行解决方案的公司工作的,自动化测试一次性投入很大,学习门槛较高,部分测试人员和开发人员对自动化测试有一定的排斥。最重要的,自动化测试在可见的未来难以替代人工测试。这几个原因,可能导致国内自动化测试普及程度没有国外高。
由此WeTest(wetest.qq.com)推出了一套Unity手游自动化框架,几乎能够模拟人的一切行为,在部分手游中有非常好的应用。现在搭建的平台进行自动化不仅会发现crash、无响应、UI问题,也会记录CPU、内存、FPS、流量等性能数据,自动化测试过程中会保留说有的日志、操作截图。