深入了解自动化:自动化测试的流程,尊重流程避免踩坑
- 2020-11-19 10:00:00
- 木头人
- 转贴:
- 知乎
- 6180
一、项目启动阶段
1、可行性分析
评估项目当前是否合适启动自动化测试?如果项目不适合,需要找出不适合原因与上级领导沟通。自动化的启动时间的切入点很关键,切入点时间可以分散到模块,先稳定的模块先开展自动化。2、抽样分析
通过可行性分析后需要进行抽样分析,也就是写几个自动化测试脚本,通过实际案列再次看看自动化测试工作是否能顺利开展,也可以在此过程中发现部分技术上的疑难或是否存在致命的问题,在这过程中也可以发现有那些需要开发、测试、运维、产品配合或改进的地方。有经验的工程师通过抽样分析,能对自动化测试工作开展有个大体的轮廓,为后面的工作开展打下基础。
抽样分析方式推荐采用自动化冒烟测试抽样,也就是将实现冒烟测试用例作为抽样的样本,将系统的手工冒烟测试转换为自动化测试用例,自动化测试的用例数量需控制在5个左右,这样既有成果又贴合实际。
注意:抽样分析时不要搭建完整的测试框架,可以只线性的实现自动化测试用例,它的主要工作还是抽样分析。
二、自动化测试准备阶段
1、自动化测试需求筛选与评审
测试需求筛选主要时明确自动化测试的的目标,整理出需要实现自动化测试的业务需求,以及自动化测试深度。需求分析完成后要对其内容进行评审,只有项目组评审通过后才能有效。API自动化测试,需要对整个系统的API进行整理,根据API的重要程度和使用率来划分等级,确定API自动化测试的深度。对API自动化测试的覆盖率要求都会在70%以上,也有公司要求达到100%覆盖率。API 变更频率比 UI 低,而且 API 测试脚本的执行效率高,出错率低,可测试的覆盖率也比 UI 高,它的维护成本也较低。所以现在很多公司将 API 作为自动化测试的重点。
2、制定自动化测试计划
由 PM 和自动化测试负责人编写计划,与手工测试的测试计划过程一致,在测试计划中要明确做什么,什么时候做。自动化测试计划包含自动测试的组织架构、工作任务分配、工作量估计、人力物力资源的分配、进度的安排、风险的估计和规避、各任务通过准则等。3、制定自动化测试方案
测试方案编写需要由有经验的工程师编写,测试方案要明确自动化该怎么做。方案写得越详细,后面遇到的坑就越少。主要从以下方面考虑:- 自动化的目标?
- 测试的范围?
- 工具的设计和选择?
- 开发语言的选择?
- 自动化测试框架的设计?
- 持续集成的规划?
- UI自动化的场景与规划?
- API自动化场景与规划?
- 用例的设计原则?
- 测试脚本编写的原则?
- 测试脚本的管理?
- 测试数据的管理?
- 自动化测试环境的规划?
- 脚本的执行策略?
4、搭建自动化测试框架
自动化测试框架是由基础模块、用例管理模块、报告统计模块等组成的工具集合;它用于组织、管理和执行自动化测试用例,在测试完成后统计测试结果生成HTML测试报告。自动化测试框架需要保证测试脚本的分布执行,用例的模块化,测试数据的管理,清楚的日志分析与错误截图,通俗易懂的测试报告,基本的公共对象库,基础的操作方法封装,可实现环境的配置,还要各种异常处理和场景恢复等。
在设计测试框架的时,要尽可能的将这些模块功能有机的结合起来,要能将脚本有效的组织和连贯应用,提高测试脚本的可维护性和可读性。测试框架还要做到高内聚低耦合。高内聚,每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码;低耦合,模块与模块之间接口的尽量简单。
对于中小型企业,不必自己编写一套自动化测试框架,现在开源的自动化测试框架有很多如:ZTE(推荐)、Python + unittest+ selenium/Appium/requests(推荐)、Robot framework(推荐)、Serenity、Phoenix Framework、Tellurium、Gauge 等等。
记住:没有万能的测试框架,适合自己项目的,能提高工作效率的就是好框架。
5、测试用例标准化与制定编码规范
测试用例标准化对提高代码的重用性和复用率直接相关,它对测试脚本的可靠性和可维护性也有很大影响。用例标准化需要有统一的设计模式,统一的编码规范与约束,共有的模块化函数与类库,统一的命名规则。
三、自动化测试脚本开发
1、测试用例设计
自动化测试的用例设计重中之重,不要在没设计自动化测试用例之前就进行编码,自动化测试用例他是对自动化测试场景的整理与综合。- 自动化用例设计要保证测试对象的明确性;
- 每个用例都是一个完整的场景;
- 每个功能点一个测试用例;
- 尽量降低用例的复杂度,每个脚本独立,脚本之间不要产生关联性。
在写用例过程中需要将共性功能或操作抽象出来模块化,提高测试脚本的可维护性与代码的重用性。不管是UI自动化还是API自动化,编码前必须设计测试用例。
2、公共脚本开发
在自动化用例设计时已经将共性的功能或操作抽象出来,在脚本编写前需要将这些操作模块化放入公共模块。3、测试脚本开发
根据自动化测试用例实现测试脚本的开发,在开发测试脚本时要将脚本的可靠性和维护性放在首位,每写一行都需要考虑它的可靠性和可维护性,代码编写必须严谨、规范。- 脚本的执行必须智能、高效、稳定、可靠。
- 脚本开发完成后要在不同的环境运行3次以上,确认脚本没有问题才能提交代码库。提交代码库的代码后,需要进行代码评审并在自动化测试平台运行通过,然后才能合并到主分支。
四、自动化测试的执行与维护
1、自动化测试执行
自动化测试的执行策略有三种:定时执行、自动触发、手工触发。- 定时执行:多用于监控代码版本的质量。如,每天早晚二次固定时间执行精选的中高级用例,实时监控版本质量。
- 自动触发:多用于冒烟测试。如,精选出冒烟用例(执行时间控制在10分钟内),在开发提交代码合并到主分支时自动触发冒烟测试,有问题邮件通知对应人员。
- 手工触发:多用回归测试。如,一周或一个sprint为周期触发两次左右的全量执行,要结合实际情况手动触发。
2、自动化测试结果分析
自动化测试结果分析主要靠测试报告,测试报告要求通俗易懂,不能过于复杂。每个sprint结束后需对自动化测试结果进行深入分析,以此来调整自动化测试方案和优化自动化测试脚本。
3、 自动化测试用例和脚本的维护
系统发生变更时需要及时更新自动化测试用例和修改测试脚本。测试用例和测试脚本的维护是个长期过程,用例与需求挂钩,测试脚本与用例挂钩,必须先更新测试用例,然后才能修改测试脚本。用例和脚本的每次更新需留下维护的记录,以便 review 和 问题查找。
4、自动化测试脚本的持续优化
测试脚本需要每个大版本检查一次,对脚本进行优化。测试脚本不是写好了,需求没有变更,运行无报错就放在哪里。每过段时间检查脚本代码,当发现测试的方法可优化的地方,就需要对代码进行修改。只有持续对测试脚本进行优化,才能让脚本更智能、更高效、更稳定、更可靠。
发表评论
联系我们
- 联系人:阿道
- 联系方式: 17762006160
- 地址:青岛市黄岛区长江西路118号青铁广场18楼