自动化测试能够提高测试效率、覆盖率,降低测试成本和工作量,是软件开发中不可或缺的一部分。但前提是要确保自动化测试的有效性和可靠性,否则无效或错误的自动化测试,往往会对项目造成负面影响,如维护成本高、假阳性和假阴性等问题。
因此我们在进行自动化测试时,需要有所权衡和注意,一般来说,主要是从以下四个方面进行:
1、权衡哪些项目适合自动化测试
在进行自动测试之前,需要权衡哪些产品合适做自动化测试。一般我们需要从以下三个方面进行权衡:
(1)需求变更不频繁
如果项目需求稳定,变更不频繁的情况下,合适使用自动化测试。测试脚本的稳定性决定了自动化测试的维护成本。
如果项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
(2)项目周期长
自动化测试需求的确定、框架设计、脚本编写和调试,这一过程需要较长的时间完成,如果项目周期短,就没有必要进行自动化测试。因此自动化测试适合周期长的项目。
(3)重复测试的场景
对于一些需要不断重复运行的测试,可以通过重复使用测试脚本,无需再人为编写脚本,从而减少每次测试运行的成本和完成开发周期的时间。
自动化测试脚本的重复使用要从三个方面来考量,一方面所测试的项目之间是否很大的差异性(如C/S系统和B/S系统的差异);所选择的测试工具是否适应这种差异;最后,测试人员是否有能力开发出适应这种差异的自动化测试框架。
2、选择合适的自动化测试工具
在确定哪些项目使用自动化测试后,我们需要根据测试对象的类型、测试需求的复杂度、测试工具的功能和性能等因素,选择合适的自动化测试工具。
测试的产品分为桌面程序(C/S)和web应用(B/S),而一般来说,适合桌面程序的测试工具有:QTP、 AutoRunner;而适合web应用的测试工具有:QTP、AutoRunner、Robot Framework、watir、selenium。我们可以根据需要,选择合适的测试工具。
另外为了进一步确保测试覆盖率和测试质量,我们可以使用如CoCode开发云中的自动生成测试用例功能,其使用AI,自动生成每个需求的正向反向多维度测试用例,提高测试覆盖度和全面性,保障测试质量,减轻测试人员工作量,提高20%-30%工作效率。
3、分层的自动化测试
我们需要进行分层自动化测试,不仅仅是关于产品UI的自动化测试,也需要进行集成/接口测试和单元测试。
产品UI的自动化测试,我们相对较为熟悉;而集成/接口测试关注的某个函数、类(方法)所提供的接口是否可靠;单元测试关注代码的实现逻辑,如一个if 分支或一个for循环的实现等。而UI层的元素时常发生变化,我们可以将更多的自动化测试放在单元测试与接口测试阶段。
在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。
4、关注测试结果的可靠性
自动化测试工具的最终目的是提供准确可靠的测试结果,测试人员需要对测试结果进行充分的验证和分析,确保测试结果的准确性和可靠性。
在自动化测试结束后,我们需验证测试结果是否与预期结果一致,对于失败的测试用例进行详细的分析和调查,对整个测试结果进行统计和汇总,包括统计通过的测试用例数量、失败的测试用例数量、跳过的测试用例数量等,从而从整体上了解测试的整体质量和进展情况。
另外,为了进一步提高测试效率,我们可以使用CoCode开发云的自动生成测试报告功能,进一步汇总和分析测试结果。使用此功能,可以通过创建报告按钮,生成任意时间段的测试报告,报告包括:测试执行情况、测试配置、测试汇总、缺陷分析、项目质量评分、测试评价和建议、测试结论等。
我们还可以对测试报告进行在线编辑和保存,并一键导出测试报告。