测试流程


1.调研阶段

这个阶段通常是老板 和 产品经理做的事情,就是调研 想做的产品

  • 大体有哪些功能?
  • 到底有没有价值?
  • 到底能不能做?

2.需求分析阶段

如果调研阶段决定产品要做,接下来就是确定产品的功能。

调研阶段确定产品的 大体功能 ,而需求分析阶段则是确定 具体的功能

这个阶段的工作通常是 产品经理开发经理 讨论制定需求细节, 开发人员 和测试人员参与评审。

比如要做一个 K12在线教育 系统, 需要具体实现哪些具体功能,和功能的细节需求。

功能要一一列出来,比如

  • 直播课程
  • 录播课程
  • 学生、老师 注册
  • 学生考试
  • 每年学生升级

每个功能点要不断 细化 ,直到可以给开发人员没有什么疑问,可以着手开发工作。

这个阶段,测试人员 需要 做如下事情:

  • 评审需求文档

    通过评审了解需求,甚至参与需求分析讨论,看看 需求有没有错误、矛盾、遗漏的地方。

  • 整理测试需求

    什么是整理测试需求?

    就是通过需求文档的评审分析(产品、开发人员往往写的比较乱,不全面), 从测试的角度 进行 需求和场景的分类,

    其实这是 更加 具体的、有条理的需求文档。

    相当于测试用例的提纲,为后续编写测试用例 准备 测试需求,

这个阶段,建议不用写测试用例,因为后续产品的设计、编码阶段,很可能会对产品需求进行返工修改,此时就写测试用例,很可能是无效的。

而且此时,最终产品细节(包括界面、接口)往往都是没有的,也没有办法写测试用例。

3.设计阶段

搞清楚产品设计细节(甚至一部分实现细节)后,测试团队就应该制定 写测试计划 ,编写 测试用例

测试计划要完成:

  • 评估工作量和人力配备,风险评估,从而确定测试目标
  • 制定测试任务(包括指定测试协调人、编写用例、学习和开发测试工具、准备环境),并且分派到人员
  • 其他为了实现测试目标和任务确定必要的测试活动。

这些通常都是测试部门领导干的事情,不是本文的重点。

分派给测试人员的任务,其中最重要的就是 编写测试用例。

编写测试用例有很多方法,个人觉得最重要的就是

  • 判定表(因素组合法)
  • 边界值法
  • 错误猜测法

4.开发阶段

开发阶段 当然 就是 开发工程师(码农们)加班加点、没日没夜 的根据设计开发了。

这时,测试工程师不要闲着,有些事情可以做

  1. 评审测试用例
  2. 准备测试工具、学习使用测试工具
  3. 准备测试环境
  4. 和开发人员保持沟通,因为开发过程中 开发人员随时可能推翻原来的设计,修改功能,你要相应改变测试用例。

5.发布测试版本,测试开始

在正式测试前,往往会有一个 冒烟测试

冒烟测试 是 挑选针对 最基本的功能点 的测试用例, 进行的测试。 如果这些最基本的功能点都有问题,测试不通过, 那么后续的大量测试用例 都是没法测试的。 就会立即打回测试版本,要求开放人员改正后,再进行测试。

如果通过了冒烟测试,就可以进入正式的测试环节。

测试过程中发现的问题(bug) 提交到 问题跟踪系统,比如:BugZilla、禅道、Redmine、JIRA 之类,开发人员根据优先级和严重级别 决定下个版本修正哪些bug。

测试过程中,测试人员往往会发现实际的产品实现 和 需求设计文档(或者从开发人员口头了解的)功能不符, 当然也就和你写的测试用例不符。

这时候就要和开发人员确认,要求修改对应文档。测试人员也要相应更新测试用例。

测试结束后,通常会有一个 测试报告 ,给出这次测试的结果的描述,比如:

  • 测试覆盖的功能点有哪些
  • 总共多少测试用例,通过了多少,不通过的有多少。
  • 发现问题,哪些是特别严重的

测试人员往往会在测试过程中发现测试用例有不足的地方,需要及时改进。

6.回归测试

当一轮测试结束后,会发现一批bug,当然开发人员需要修改这些bug。

并不是所有的bug都会立刻修改,根据发现bug的严重程度和出现几率,开发人员确定优先级,修复一批bug。

修改后会发布一个新的测试版本。

测试人员需要根据这个新的测试版本进行测试,这次测试有两个目的

  • 验证开发工程师修复的bug正确修复了
  • 确保在修复的过程总没有引入其他bug

要确保第二点,就需要在大量的测试用例中挑选 这次修复可能引发问题的地方。

新版本也可能不只修复bug,可能会添加一些前面没有实现的功能点。

如果是这样,测试的目标就不只是 回归测试,还要包括新功能点的测试。

7.发布正式版本

经过N次内部版本的发布、测试后,产品实现的功能越来越多,并且通常bug会越来越少。

到了某个版本,经过评估,如果实现的功能足够,并剩余的bug,不影响产品发布给客户,就会作为正式版本发布给客户使用。

8.功能添加,产品迭代

虽然产品已经正式发布给客户使用了。

但是产品可能还有后续的需求(可能来自客户,也可能来自产品团队),需要在目前版本的基础上继续开发。

这时就会重复前面 从 需求调研阶段 到 发布正式版本阶段的 流程。

9.引入自动化测试

一个复杂的产品,要经过很多轮的回归测试,才能最终发布。

每轮回归都有大量的测试用例 需要重测,防止修复bug的过程中引入新的bug。

这样的反复测试,非常耗费测试工程师的精力。

一个典型的解决方法,就是使用自动化测试系统,代替人工测试。

合理的分批次挑选用例,进行自动化,从而有效的提高测试效率。

挑选哪些用例自动化呢?可以考虑如下因素:

  • 需要反复执行的测试用例
  • 对应功能点稳定
  • 容易自动化

文章作者: 姜楠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜楠 !
  目录