- 稳定,改动小
- 核心流程
- 自动化脚本编写成本低,产出高
- 需要重复执行的测试用例
- 中长期项目:某阶段的自动化测试用例可以在下一次的迭代中继续维护使用
- 经常改动
- 非重要业务流程
- 短期项目
优点:
- 减少手工测试工作量
- 满足项目的快速迭代
- 更加贴近用户层面的自动化
- 增加测试范围:覆盖更多平台或者浏览器等,而无需手工加入
缺点:
- 修改频繁,维护成本高
- 投入产出比高
- 项目启动阶段
- 可行性分析:评估是否适合自动化测试,如果不合适请及时同项目负责人沟通
- 抽样分析:写几个自动化测试脚本,查看工作能否顺利进行;对自动化测试工作有大体轮廓
- 测试准备阶段
- 自动化测试
需求筛选
和评审
:剔除不重要的测试用例,重点放在核心功能上;UI/API自动化配比:重API轻GUI - 制定自动化
测试计划
:组织架构,任务分配,工作量估计,人员分配,进度安排,风险评估,通过准则 - 制定自动化
测试方案
:目标,范围,工具设计和选择,开发语言选择,自动化框架设计和选择,持续集成规划,UI/API自动化场景与规划,用例设计原则,测试脚本编写原则,测试脚本管理,测试数据管理,自动化测试环境的规划,脚本执行策略 搭建自动化框架
:保证脚本的分布执行
,用例的模块化,测试数据管理
,日志分析与错误截图,通俗易懂的测试报告
,环境配置化
;提高测试脚本的可维护性
和可读性
,测试框架还要做到高内聚低耦合
- 测试用例标准化与制定编码规范:可以参考对应开发语言的编码规范,以及测试框架选择对应的用例设计标准,或者根据平时编码习惯共同商议
- 评估团队是否具备必要技能:技术能力有限团队,优先选择无代码自动化测试工具
- 团队预算:自动化在短期内性价比较低,要从长远进行规划和计算,为团队带来更多正向的投资回报。
- 测试需求:需求不同,选择的自动化工具自然各异;另外需要考虑:
- 支持平台
- 测试重的应用程序
- 编码语言
- CI/CD集成功能
- 测试报告
- 脚本维护和可重用性:脚本维护占测试自动化成本重要因素,理想的自动化测试工具应当具备减少维护工作能力;另外可重用性节省编写类似测试用例时间
- 持续集成能力:集成到CI/CD管道和外部平台,确保测试的连续性,确保更好的进行测试管理和团队协作
- 技术支持:商业工具,依靠商业技术支持;而开源则依靠庞大而活跃的社区
-
定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具
-
具备元素:
- 简化测试执行过程
- 提高测试机器的执行效率
- 提供测试用例并发执行能力
- 提供CI/CD集成机制
- 日志记录和管理能力
- 环境可配置,参数可配置
- 公共方法/函数,常用操作
- 结果统计能力
- 优雅的测试报告
简单举例junit项目的目录结构:
- test:不同测试场景下的自动化用例;公共方法类,比如文件读写,字符串处理等;
- resources:配置文件,一般是xml文件
仅仅实施在UI层面是非常不明智不可取的。
UI变更频率更高,细小的改动也会导致测试脚本大范围的改动,维护成本太大;而API自动化执行效率更高,并且修改相对较小,出错率低,可测试的覆盖率也比UI高,应当将自动化测试重点放在API上。