编写软件测试需求的技巧和方法

上一篇 / 下一篇  2012-05-21 14:42:19 / 个人分类:测试需求

● 什么测试需求?

  测试需求:是测试的规格说明书(指明测试什么),也就是说我们要测试的产品、项目有那些测试点。

  ● 测试需求的提取过程

  测试需求的提取过程:是对系统需求和系统设计内容分类、合并、整理、提取的过程。软件测试需求的提取过程应遵循:测试需求收集、测试需求分析、测试需求开发,通过对一系统列的需求的收集、分析、整理,最终提取出按测试人员思路生成的可以测试的测试点、测试项、测试场景,也就是测试需求(不断迭代的过程)。

  ● 测试需求有啥用途,为啥需要写测试需求?

  作为测试人员,对需求的理解和分析是必不可少的,需求理解的好坏直接影响测试最终的好坏,如何正确的理解需求成为测试人工作的重中之重,测试需求是理解系统需求的最佳方式。

  如下:

  1、有助于测试和开发对系统业务流程、系统功能理解。

  2、帮助定义测试对象和测试范围。

  3、有助于团队设置明确的目标。

  4、发现需求中不合符逻辑的地方、存在疑问的地方、不完善和不足的地方,提前与客户确定清楚节省变更时间和投入。

  5、便于需求基线化和跟踪业务需求变更。

  6、用来识别可做自动化测试的策略;作为一个测试的方向标。

  7、决定了后面如何做测试计划及安排测试人员的测试工作,也是测试人员的测试工作的依据。

  ● 测试需求提取依据

  1、开发文档和需求关于功能的若干细化解释,如客户资料、需求规格说明书、设计规格说明书、所有会议记录、自己对业务的了解。

  2、国家法规、行业标准、约定俗成操作习惯、行业术语、企业应用场景等。

  *********用户一手资料非常重要!**********

  ● 提取测试需求的时间点

  测试需求开始提取时间点是项目启动,但实际情况大多时根据项目的时间和人力资源确定测试人员参与到提取测试需求的时间,如果人力资源充足的话当然是尽可能在项目启动后参与到每一场需求讨论中,通过和产品、开发人员开一些需求讨论会确定测试需求;如果人力资源不是很充足,那么最好是基本需求确定下来之后测试人员再参与其中,可以是需求文档已经出来的但未评审,如评审前前几天测试人员通过阅读文档总结自己发现的问题,通过需求评审或者评审之前与开发人员讨论并确认测试需求。

  ● 提取测试需求流程

  1、阅读相关文档及用户资料,达到对系统有一个大概的了解,需要知道这个系统主要用来做啥,有呢些主要功能。

  2、画出系统业务流程图:寻找出业务流程主线,然后通过这个主线把系统的主要功能串联起来。

  3、从已有项目文档中提取有价值的内容并记录下来,当发现疑问时有可能需求文档或设计文档出现了歧义,这个地方需要特别注意,把疑问记录下来并与相关人员沟通,如果最终疑问都不能消除的则是未明确需求最终需要与用户进行沟通。

  4、对每个功能点进行整理、罗列,然后在对各功能点进行分析整理,逐步细化为5W格式(明确:什么样的系统用户,在什么时间、什么样的环境下、执行了什么样的操作,产生了什么样的结果)

  5、跟开发人员、用户或者有经验的测试人员确认,让他们帮你判断本次测试需求你了解的准确性、覆盖率,并且可以提出意见,如有疑问则属于未属于未明确需求需要与用户再次沟通。

  ● 提取测试需求常用方式

  1、最常见的方式是:通过现有的需求规格说明书得到,但是这个方式的前提是必须有具备需求规格说明书或类似的文本记录。实际上大多数公司或者需求规格说明书不够明确,要么甚至没有。这样的测试需求提炼非常困难。

  2、第二种方式,则是通过测试组织或人员的经验来形成,比如来自一些通用的行业规范等等。这种提取方法有很大的不确定性,比较容易遗漏重要的测试项,且个人能力不同,导致的结果千差万别。

  3、第三种方式,通过已实现的系统来获得,这种方式,在工程学角度上是逆反工程——有点亡羊补牢的味道,常用于无需求文档或文档达不到要求的的情况下。由于缺乏正规的工程方法,这种方法往往都是形式而无法在实质上改善软件质量。

  ● 编写测试需求的要点:

  1、从整体上把握系统,通过阅读相关的说明书来了解系统的主要业务;

  2、深深了解系统的中涉及到的用户有哪些,不同的用户权限有哪些;主要模块有那些;每个模块的主要实现功能是什么、每个模块的数据从哪里来,最后到哪里去,每个模块可以受什么样的用户什么样的权限控制和操作;系统最后要实现什么样的功能和得到怎样的数据。

  3、挖掘需求,能挖掘到需求:哪些地方/哪些功能/哪些需求是用户/开发没有想到的,没有想正确的,没有设涉及到的,为用户的使用多想几个为什么一一列出来,在开发之前做到最优化的方案。

  4、主要模块主要写,次要模块捎带上写;写的测试需求要有整体感,系统化。一目了然!抽象出自己的话语进行写,不要抄袭开发写的书。

  5、不明确的需求要和开发达成一直,并把相应的内容罗列出来。

  总之,最主要的是要自己能对系统有整体的把握,系统的理解。知道系统的主要业务和主要数据,对任何人提出的相关问题可以一一详细作答。


TAG:

 

评分:0

我来说两句

Open Toolbar