写点什么

自动化测试方法论(管理篇)

用户头像
薛飞
关注
发布于: 5 小时前

引言

如果你是测试的负责人,是否可以识别在哪些场景上应用自动化测试?工作规划、开展需要考虑哪些问题?如何阐述工作价值及获取资源支持? 基于这些问题,我们围绕自动化工作的理解、实施策略的考虑、应用价值评估等方面来探讨。

1、自动化测试种类及应用场景


 自动化测试

通过计算机程序来模拟人或外部系统和被测系统/程序的交互,设置断言来判断系统/程序的质量(属性)表现是否符合预期。


 应用场景:

  1. 手工用例自动化,代替回归测试的重复劳动。

  2. 模拟手工无法实现的场景,如性能测试、可靠性测试


我们从测试的目的,即质量属性验证的角度、测试的对象,即测试行为的施加主体、应用场景,即测试工作的开展阶段来描述他们之间的关系。


系统结构示例


2、自动化测试实施策略

了解了自动化测试的应用场景之后,接下来要考虑的是这个工作如何开展呢,如何选取测试系统、测试场景(主要围绕功能测试探讨)。

2.1 系统评估


自动化用例的价值体现在可重复的测试应用,即:人工用例执行成本*N(版本应用次数)-自动化投入成本>0 产生价值,且 N 越多,价值越大。基于上述原理,在系统和业务的选择上需要考虑

  • 选择的系统在较长时间范围内都有迭代的需求,项目周期长

  • 自动化场景选择上优先做场景核心业务,即在每轮测试中都可能会重复测试的用例


如下情况下的投入会导致自动化用例有效性降低,维护成本增加

  • UI 改版,如有 UI 改版计划,不适宜做 UI 自动化

  • 系统拆分,如有系统拆分导致接口变化的计划,不适宜做接口自动化

  • 逻辑变更,如业务需求在迭代阶段,功能尚未稳定,该业务需求不适宜开展自动化

2.2 设计策略

有限的测试资源如何投入到无限的自动化实现中去?在业务场景的选取和测试类型投入上要看投入产出比。

2.3 工具选型

[工欲善其事,必先利其器]

根据选定的测试场景和测试类型,来选用或者开发相应的测试工具。在工具/方案选型时需要关注如下三个方面:自动化开发效率、运行效率、维护效率。



以接口测试举例,工具可分为

  • 传统型

针对不同的测试类型提供标准化的输入及流程处理,返回特定的结果格式,对非标准化的格式提供 API 或自定义脚本支持。如:JMeter 的 xxSample、关键字驱动模式

优点:

模式化处理,封装了公用服务,屏蔽底层处理,关注业务自动化实现

缺点:

随着业务/用例规模的扩大和系统演进,维护工作量变大


  • 智能型

①录制生产系统行为在测试环境回放来回归,可以基于日志或标记分析调用链路、业务场景

②机器学习错误模式,自动判断行为结果的正确性

优点:节省了人工自动化脚本设计的工作量、以生产行为更新案例脚本,人工维护工作量少

3、缺点:

不能识别业务(流程)行为的完整性和正确性(单纯的录制回放)

②测试过程会有比较多的 mock 操作,某些环节校验上会“失真”


苏宁方案

  • 测试管理:一站式研发 DevOps 平台,支持研发(测试)过程管理、自动化流水线(代码检查、打包构建、集成测试、发布)

  • 自动化 SAT:支持接口、UI(WEB、APP)关键字驱动设计

  •   流量录制回放:录制生产接口调用,生成测试脚本,在测试环境回归验证。(方案预研阶段)

  • 精准测试:提供代码覆盖率度量、测试案例和代码关联录制、代码变更测试案例推荐


2.4 技术栈规划

 根据系统架构/业务特点,确定合适的自动用测试开展类型,及所需技术/工具支持,自动化方案选型。

 根据测试类型及技术栈划分培养方向和能力等级,建设人才梯队



2.5 团队职能

为有效支持自动化工作开展,需要规划团队职能领域、分工要求。

 角色分工

  • 技术架构

技术架构技术选型、方案优化、公共服务/组件开发。

  • 设计开发

设计开发基于已有的技术方案实现测试用例的自动化设计,在版本测试中应用。

 团队模式

  • 专职团队自动化

接收业务团队的自动化需求,开发实现。优点是开发效率高,缺点是业务响应不及时,不便根据业务痛点提供针对性方案。

  • 自动化资源池(虚拟组织)

培养认证具备自动化技能的人员,承担自动化案例设计工作。

  • 全员自动化

优点是自动化实现响应快,了解效率提升痛点,业务结合度高。适用技术栈难度低(便于推广),或者成员总体技能水平高的情况。

 评估策略

在以上维度考虑时没有标准答案,要综合考虑应用成熟度和技术栈复杂度、团队成员能力、团队规模等,在不同的阶段考虑不同的方式。

2.6 执行推动

在具体工具开展的时候,需要制定目标、数据量化、阶段评估、及时反馈(投入了多少,收益了多少)。

参考如,

1)目标计划


2)阶段评估


3、自动化测试应用价值评估

3.1 能力评价

几个指标维度

举例,

一场战役(版本)准备的 10 只子弹(自动化用例),在开战时用了 5 只(执行率),其中有 3 只能正常发射(通过率),有 2 只枪击中了目标(代码覆盖)。

  1. 还有 5 只为什么没执行?可能是战斗结束了,但是子弹没打完,执行效率低

  2. 还有 2 只为什么不能正常发射,可能是在仓库没维护,受潮哑火了,稳定性低

  3. 为什么只有两只击中目标,可能是子弹发射后没到目标就掉下来了,质量差

由此可见,百分之多少的自动化用例覆盖,并不能说明什么问题。

3.2 收益评估

价值评估的几个方向,说清楚这些数据,就可以回答本文开头提到的价值。

1、 投入人员减少多少

2、 测试速度快了多少

3、 交付吞吐高了多少

4、 生产质量提升多少




举例 1:版本数据周期总结

举例 2:目标数据周期总结


数据的指标分析需要我们在研发支撑平台建设的过程中考虑、规划。

4、结语

如果一个自动化工作/项目准备开展,需要回答三个问题(也适用于对已经开展的工作进行回溯)

1、为什么要做,解决什么痛点

2、如何开展,实施策略的可行性

3、要达到什么价值,如何评估


发布于: 5 小时前阅读数: 13
用户头像

薛飞

关注

还未添加个人签名 2020.04.24 加入

苏宁IT总部-CTO办公室-高级架构师

评论

发布
暂无评论
自动化测试方法论(管理篇)