
1.1 自动化测试的发展与现状
程序是人类思维的产物,人的思维难免会有差错,因此软件从诞生那天开始,就一直与测试相伴。早期的软件规模都很小,复杂度也不高,传统的手工测试就能很好地完成。随着软件技术的发展,软件规模和复杂度的提升,手工测试的时间成本越来越高,在这种情况下诞生了自动化测试的思想与技术。
从技术发展的角度来看,自动化测试经历了四代,如图1-1所示。
第一代:传统的“录制-回放”技术。这种技术模拟PC操作,记录键盘和鼠标的操作,对环境的依赖性太强,只要新版本的用户界面或功能发生改变,以前录制的信息就不能用了,维护成本太高。

图1-1 自动化测试技术的4个发展阶段
第二代:脚本化的自动化测试。利用脚本进行结构化的自动化测试。测试脚本可以通过工具自动生成,也可以由测试开发人员手动开发完成。当软件功能发生变动时,测试脚本也需要同步更新。
第三代:测试框架。主要是把测试脚本抽象化、模块化,包括数据驱动与关键字驱动,测试人员可以直接使用测试开发人员封装好的业务模块。编写出的自动化脚本也具有一定的泛化性。项目的维护主要体现在业务模块封装或关键字抽象等方面。
第四代:AI自动化测试。在传统的自动化测试技术基础上,引入AI技术,主要想解决自动化测试中的高通用性、低使用门槛及低维护成本等自动化测试的难题。目前,AI自动化测试还处在初期阶段,技术与方法的应用也在探索中。
腾讯互娱游戏的测试方法有以下4种,一般在一个项目中,测试人员会根据需求选择其中一种或几种测试方法。
1)测试人员手动测试:测试人员根据开发人员提交的功能,编写测试用例,然后评审测试用例。开发人员完成功能开发后,测试人员再手动逐条执行测试用例。
2)脚体自动化测试:在一些方便使用自动化测试的场合,引入自动化测试,通过相应的工具,手动或自动生成需要的自动化测试脚本,然后通过回放自动化测试脚本进行测试,完成测试后,由人工或自动化算法进行结果检测。
3)代码级别测试:一些特定的测试需要测试人员通过编写代码来完成,如后端服务器程序的性能测试。
4)AI自动化测试:基于机器学习的方法,模拟人类玩家进行游戏操作,完成游戏场景的相关操作,达到自动化测试的目的。