我想对刚入职的测试人说:软件测试的工作流程你真的会吗?

从事测试的同学想必对“尽早的介入测试,遇到问题的解决成本就越低”的事实深信不疑。而随着软件测试技术的发展,测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷,探索测试,破坏程序的过程,因此测试活动贯穿于整个软件生命周期中,故称为 全。全程软件测试,强调整个软件生命周期中,各阶段的测试活动。无论是需求阶段,开发阶段,还是测试阶段,都需要确定在当前阶段测试活动的内容以及程度,确保每个阶段的质量,才能保证产品最终的质量。

以测试的视角出发,我们可以将整个项目周期拆分为测试前、测试中、发布、运维四个阶段。测试同学在每个阶段有不同的测试内容和产出,测试同学必须hold住每个阶段的产品质量”。下面详细分析每个阶段测试的不同分工与工作重点。

我想对刚入职的测试人说:软件测试的工作流程你真的会吗?_第1张图片

测试前

测试leader确定项目测试owner

需求评审

需求评审目的是理解需求,理解业务。

  • 弄清楚我们的产品有哪些功能?有哪些非功能性需求?
  • 明白我们的用户群体是什么?用户会如何来使用我们的产品?

那我们到底该怎么来进行需求分析呢?

我想对刚入职的测试人说:软件测试的工作流程你真的会吗?_第2张图片

测试同学准则
  • 评审前提前熟悉PRD文档,提前记录模糊需求点
  • 评审中记录产研测三方会下TODO
  • 评审后将会议记录发至项目群,并@对应同学进行跟进

项目排期&测试计划

当对需求有完整和全面的理解后,接下来我们需要制定详细的测试计划,为即将开始的测试工作做好充足的准备。对于测试计划的理解,根据团队规模,可以分为两种:

  • 小团队

小团队的测试计划重点讲清楚以下四个要素:

  1. 时间:根据以往经验以及需求理解进行时间估算(小建议:时间节点多争取1到2天时间缓冲,项目过程中难免出现意外事件)
  2. 任务:将测试活动拆分成具体的任务
  3. 人:任务的执行人以及质量负责人
  4. 风险控制
  • 大团队

大公司测试团队每个人往往同时并行多个项目,需要对各方面有更为精细的计划:

  1. 资源估算:整个项目需要多少资源?人力、时间资源等
  2. 进度控制:每个测试活动时间节点控制
  3. 风险控制:对于在测试活动过程中出现问题的解决方案
  4. 资源配置:如何更有效率的使用资源
  5. 验收标准:项目、测试过程的验收标准定义
  6. 测试策略:测试中使用的测试策略
  7. 测试工具:项目中自动化场景工具化

技术方案评审

测试同学重点关注,技术方案实现的技术风险、异常场景、存在技术风险的点是否有兜底方案。会后将会议记录的风险点给对应的开发设计解决方案。

用例设计

测试用例设计是软件测试工作的核心
  • 明确项目的测试范围
  1. 业务功能测试
  2. 接口功能测试
  3. 性能测试
  4. 兼容测试
  5. 安全测试
  6. 联调测试
  • 测试用例6要素
  1. 用例名称
  2. 所属模块
  3. 前置条件
  4. 执行步骤
  5. 优先级
  6. 预期结果
  • 测试用例设计方法
  1. 等价类划分
  2. 边界值分析法
  3. 因果图方法
  4. 正交分析法

测试用例评审

测试评审一般测试小组负责人先组织小组内部评审,再进行三方评审

测试用例三方评审,我有一下几个建议:

  1. 选择三方接受的评审工具
  2. 预留时间给开发熟悉用例
  3. 重点关注P1级以上

测试中

测试执行

测试执行本身确实简单,只需要构造测试数据按测试步骤执行就行了,但是不要把测试执行想简单了,因为测试过程总会发现一些细节性的问题会和需求设计的不一致,那么你就要和产品、开发进行沟通最终的方案了。从这个层面来说,测试执行是一个过程,更重要的是关注测试过程中与产品开发沟通协作。

缺陷管理

缺陷管理目的在于如何缩短缺陷提出到最终解决的周期时间。

一个缺陷包含的要素,不同的开发可能有不同的要求。但是缺陷基本要素是确定的,包含以下要素:

  1. 缺陷名称
  2. 操作步骤
  3. 严重程度
  4. 所属模块
  5. 实际结果与预期结果

发布

进入发布阶段就意味着产品已经通过了测试,可以发布到线上,交付给用户使用。那如何确认测试已经通过?

  • 测试通过准则
  1. 测试需求功能覆盖率100%
  2. 测试用例通过率100%
  3. 遗留缺陷没有严重程度P3以及以上的缺陷
  • 测试报告

完成测试后,提交测试报告,给出此次测试过程中的数据,例如:测试用例的数量,发现缺陷的总数,各个严重程度的缺陷数量,总共修复的缺陷数量以及缺陷修复率等等

  • 版本回滚方案

测试是无法穷尽的,因此就算测试通过也不能保证上线就不出现新的问题,所以一定要做好回滚方案。

  1. 如果线上出现的问题不是很严重,尽量当时处理掉再上线
  2. 如果线上出现的问题很严重,就必须要系统回滚,保证线上用户的正常使用
  3. 系统回滚方案须跟开发/项目经理确认
  • 线上回归
  1. 程序原有功能的回归测试
  2. 新上线的功能全面测试

运维

产品上线后,用户能稳定的长期使用,就意味着发布的功能进入到日常维护阶段。

在这个阶段,测试人员的主要工作就比较简单

  1. 持续测试,没有产品是没有缺陷的。
  2. 及时收集线上用户反馈的问题,并尽快组织人员评估修复

总结

全程软件测试其实是一种测试思想,一种方法论,旨在强调测试同学关注整个软件生命周期,各个阶段的测试活动。通过对各个阶段的过程质量把控,从而提高产品的测试质量。产品的质量并不是测出来的,而是通过不断完善的项目流程慢慢提升的。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)

你可能感兴趣的:(技术分享,软件测试,软件测试,测试工程师,测试类型,测试流程)