☀️光学会自动化测试还不够?还差最后这一步!☀️

2023-11-09

同大多数项目一样,自动化测试项目也需要一个完整的项目管理流程。在项目执行之前要进行充分的评估和计划、项目执行过程中要把控每个节点的质量,执行后要进行复盘和评估;确保项目顺利实施,并达到预期效果。

01

自动化项目启动

在项目启动阶段,我们要明确为什么要做自动化,并选择合适的项目进行自动化测试。

1、为什么要做自动化

在启动自动化测试之前,我们要明确做自动化的目的,是为了提高测试效率还是因为客户需求,亦或者是为了提高自动化的覆盖率。只有明确了项目目的,才能更好地制定自动化策略,最大程度上满足最初的需求。比如说,我们为了满足客户需求而执行的自动化测试,就要以客户需求为主;而如果我们是为了提高测试效率,我们就要结合项目的实际情况,进行合理的用例选择与设计,以期最大程度上提高测试效率。

2、选择合适的项目进行自动化

首先,我们要明确一点,不是所有的项目都适合进行自动化。我们一般会选择项目周期比较长、版本比较稳定的项目进行自动化。因为短期项目的测试脚本无法复用,容易造成脚本和人力的浪费。此外,由于项目初期改动较大,我们会针对较为稳定的版本执行自动化。

02

自动化项目前准备

在明确了我们做自动化的目的并选择合适的项目之后,我们就要开始制定自动化策略与方案、进行方案评估。

1、制定自动化策略

首先,我们要明确实现的是哪类的自动化,是UI、接口还是unit?这是我们制定自动化方案的基础;其次,我们要确认哪些场景需要实现自动化,在这个阶段,要明确一点,不是所有的功能都适合做自动化,我们要选择基础的、改动较小的功能进行自动化;最后,我们要明确自动化脚本用在项目的哪个阶段,是单模块、集成还是验收阶段。

2、制定自动化方案

自动化测试方案包括却不仅限于以下几个方面:

  • 制定实现方案:包括所选工具和编程语言;所选工具要能够满足测试需求、使用方便且便于集成、有明确的技术支持;

  • 预估工期:根据项目的紧急情况和资源支持情况,制定一个合理的工期;

  • 风险分析:可能遇到的风险包括但不仅限于团队成员能力不足、资源无法协调、实现效果不理想等;

  • 所需资源:包括人力、设备、服务器等;对于团队成员,一个很简单的估算方式,假设我们一共有a条用例需要实现自动化,每人天可以完成b条用例,那么一个人完成所有用例需要c=a/b天;如果我们要在d天内完成,那么就需要d/c个人;

  • 测试结果展现形式:通过邮件、网站或者其他方式展示测试结果;

以上所有步骤的基础是,我们要选择合适的人进行自动化方案的制定。

3、自动化方案评估

在自动化方案评估环节,我们需要评估该方案所需人力、物力以及资源配置是否合理,以团队当前情况,是否可以满足需求,可以寻求哪些外部支撑;是否有更加经济合理的替代方案等;此外,对于项目风险,可以采取哪些措施等。

4、建立规范

在项目进入执行阶段之前,我们要对执行过程中可能遇到的问题进行提前规范;

  • 工作进度汇报:以何种方式进行进度汇报?定期汇报还是在关键节点处汇报?关键节点包括用例编写完成、框架开发完成、编码完成、试运行完成等;在汇报过程中,把控项目质量;

  • 自动化测试用例如何选择?是重新编写还是从手工测试用例进行筛选?多人协作的情况下如何进行合并归档?自动化用例评审如何进行?

  • 在项目执行过程中遇到问题如何解决?比如,系统环境出现问题应该找谁负责;工具使用遇到问题,应该谁来负责?尽量做到有章可循;

  • 多人合作完成编码的情况下,遵循何种代码规范?

03

自动化项目执行

经过以上准备之后,我们进入项目的执行阶段;这个阶段的工作主要包括以下几个方面:

1、组建自动化团队

这个过程也可以在项目准备阶段就开始着手进行;当然,如果一个公司有成熟的自动化团队,这个过程就可以变得更加简单;我们要保证这个团队能够具备完成该项目所必须的能力,能够彼此合作;

2、分配任务

团队组建完成之后,就要开始分配任务;一个自动化项目的主要任务包括:用例准备、测试框架搭建、测试用例编写与集成、试运行等;

完成以上步骤之后,我们就进入了实际的执行阶段,在这个阶段,要根据项目规范,认真执行每个步骤,把控项目质量;

04

自动化项目分析与维护

自动化结果分析包括以下几个方面:

1、代码评审

代码评审的内容主要包括:代码结构设计的合理性、代码的可维护性、代码的可复用性以及可扩展性等;

2、用例评审

用例评审的主要内容包括:用例衔接设计的合理性,是否有更优的设计;用例之间的耦合度是否降到了最低;用例是否可以单个执行;用例输入数据设计是否合理;测试用例是否方便维护;软件版本改变时,用例改动的大小;用例断言设置的合理性等;

3、运行结果评审

运行结果评审的主要内容包括:代码运行效率、测试用例的准确性、通过率、输出报告的合理性和可读性;

4、相关文档

项目相关文档包括:输出代码、方案设计文档、详细设计文档、说明文档、环境部署文档等;

5、代码维护

自动化测试代码交付后,是需要持续维护的。那么,需要考虑后续工作如何进行,如何进行代码维护,如何进行用例补充等;

05

自动化项目实现后分析

1、建立评估目标

自动化测试项目常见的评估目标包括:

  • 测试策略和方案设计的合理性,是否最大的提高了测试效率,实际收益是否达到预期;

  • 资源配置是否合理,是否有资源分配不足或者过剩的情况;

  • 自动化的覆盖情况,是否满足预期目标;

  • 项目使用工具和语言的选择是否合理;

  • 团队沟通方式是否存在问题;

  • 项目风险评估是否合理,针对风险的改进措施是否达到预期结果;

  • 项目成员个人工作复盘;

2、完成评估

针对以上评估目标,结合项目的实际情况,完成评估;

3、完成总结

通过以上流程,对项目整体安排情况、实现效果、业务进行总结,完成项目积累。

以上,是我在实际工作中用到的一些项目管理流程,在此进行整理;并不是每个项目都需要这么一个复杂的流程,需要根据项目的实际情况进行选择;但是,只有按照规范的流程走下来,你才知道哪些是适合的,哪些是可以省略的,找到适合自己团队的项目管理流程。如有遗漏,欢迎大家补充完善~

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

可以自助拿走,群号:310357728群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦

如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

☀️光学会自动化测试还不够?还差最后这一步!☀️ 的相关文章

随机推荐

  • Systemd中环境变量设置

    问题 不想把密码硬编码在代码里面 思路 让应用程序从环境变量中读取密码 SysV Service Environment MYSQL PASSWD sss 修改了Sys V的配置文件记得 要重新加载Sys V配置 sudo systemct
  • Altium Designer -- EMC/EMI电路设计经验

    一 基本概念 参看 电磁兼容原理及应用 讲的相当的不错 连接打不开 参看网盘 随着科学技术的不断发展 各种电气和电子设备已广泛应用于国民经济的各个部门以及人们的日常生活中 电气和电子设备在正常运行的同时 也往外发射有用或无用的电磁能量 这些
  • 【数据结构】二维数组的行优先、列优先存储问题

    今天同学问我一道感觉很基础的数据结构问题 虽然答案做对了 但是原理一直比较迷 仔细看了一下题 原来是自己把自己绕进去了 在此记录一下 大佬如果有更好的方法 可以在评论区留言 不定期更新 先给出行优先和列优先的计算公式 设数组为A m n m
  • 线程池学习笔记

    最大线程数只有在队列满了以后才开始工作 任务最大容量 最大数量 等待队列最大数量 超过则拒绝执行 会需要自己写拒绝策略 不然会抛出异常 如下图 如果将核心线程池数量设置成0 最大线程数量为int最大值 则适用场景为不可控的无法预估到底有多少
  • 2017-7-18 2-4 编写函数squeeze(s1,s2), 将字符串s1中任何与字符串s2中字符匹配的字符都删除。

    include
  • java虚拟机内存参数设置,reservedcodecachesize虚拟机jvm参数详解与调优说明

    一 reservedcodecachesize参数介绍 该参数是JvM虚拟机调优中调整内存大小的一个设置参数 值得大小设置直接影响到Code Cache的大小 而jvm编译的代码有常常存放在Code Cache中 而Code Cache的空
  • vue+ElementUI el-table表格再次封装集成多级表头合并单元格(表头分组、多级表头合并)及render渲染列

    1 此功能已集成到TTable组件中 2 实现思路 使用递归组件 源码
  • C++STL之各种容器的使用场景

    1 总结相关容器的使用场景 1 vector的使用场景 只查看 而不频繁插入删除的 因为频繁插入删除会造成内存的不断搬家和删除 使用场景比如软件历史操作记录的存储 我们经常要查看历史记录 比如上一次的记录 上上次的记录 但却不会去删除记录
  • OpenWRT 程序开机启动

    原理 bin sh etc rc common指定了执行该脚本的方式 必须 START 95 代表该脚本的启动顺序为95 注意 不是第95个执行的脚本 而是一个级别 数字越小 启动的越早 start 启动服务 stop 停止服务 resta
  • keil5 Debug调试报错“No CPU DLL specified under “Options for Target - Debug‘!”

    正常测试某个读写测试示例 结果Debug出弹窗如下图 最后解决方式如下 点击 魔术棒 Debug 在Driver DLL中填入 SARMCM3 DLL 点击ok 再次进行调试 问题解决
  • mysql(六)多列索引之索引顺序问题

    使用索引常见的错误是 为每列创建单独的索引 或者按照错误的顺序创建多列索引 多列索引 多列索引 是指在创建索引时所关联的字段不是一个字段 而是多个字段 虽然可以通过所关联的字段进行查询 但是只有查询条件中使用了所关联字段中的第一个字段 多列
  • uvm之寄存器模型

    寄存器模型的意义 寄存器模型的搭建 寄存器模型的FAQ 寄存器模型的意义 寄存器模型 字面理解 跟参考模型类似 就是为工程里的寄存器提供一个参考模型 这个模型里 包括各个寄存器字段描述 寄存器 寄存器组 寄存器地址映射等信息 有如下好处 寄
  • 【python小游戏毕设】吃豆人小游戏设计与实现

    文章目录 0 前言 1 课题背景 2 实现效果 3 Pygame介绍 4 原理和实现 4 1 环境配置 4 3 创建游戏类 4 3 游戏地图 4 4 游戏主循环 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕
  • TensorFlow学习笔记(八)—— TensorFlow基于MNIST数据集识别手写数字

    训练程序 参照Tensorflow中文社区教程 http www tensorfly cn tfdoc tutorials mnist pros html 能在自己的环境中成功运行代码 注意一点 关于教程的print函数 在博主用的Pyth
  • 一年级课程表(4月11日-4月15日)

    一年级课程表 4月11日 4月15日 时间 周一 周二 周三 周四 周五 9 00 9 25 语文 课文 数学 复习巩固 语文 课文 数学 复习巩固 语文 语文园地 9 30 9 40 眼 操 眼 操 眼 操 眼 操 眼 操 9 40 10
  • mysql建库语句 最简单最常用语句

    mysql建库语句 一 创建数据库 create database doc 创建数据库doc 二 创建用户 create user doc identified by mysql 创建用户doc 密码mysql 所有域名或IP可访问 三 访
  • DOM 的属性

    1 nodeName nodeName 属性规定节点的名称 nodeName 是只读的 元素节点的 nodeName 与标签名相同 属性节点的 nodeName 与属性名相同 文本节点的 nodeName 始终是 text 文档节点的 no
  • input的value值在页面上被改变,但是查看器代码中值不改变

    这里需要用attr 写入 而不使用val 方法 另外如果想动态改值一定不要用disabled disabled 用readonly true 代替
  • Go GPM 调度器介绍

    Go GPM 调度器介绍 1 简介 这几天在学习Go的GPM机制 于是就整理了一下收集的资料分享给大家 文章末尾有原文链接 主要介绍了Go在运行时调度器的基本实现逻辑和演变过程 2 什么是Go调度器 Go调度器很轻量也很简单 足以撑起gor
  • ☀️光学会自动化测试还不够?还差最后这一步!☀️

    同大多数项目一样 自动化测试项目也需要一个完整的项目管理流程 在项目执行之前要进行充分的评估和计划 项目执行过程中要把控每个节点的质量 执行后要进行复盘和评估 确保项目顺利实施 并达到预期效果 01 自动化项目启动 在项目启动阶段 我们要明