软件测试之旅,路漫漫,其修远兮,吾将上下而求索。 <<软测之魂>> 作者 擅长测试设计,嵌入式软件测试,测试自动化,测试体系建设,测试管理, 软件配置管理建设,医疗器械软件测试,教育。 新浪微博@Aullyxiao,邮箱aul516@126.com

需求覆盖的度量与方法

上一篇 / 下一篇  2011-07-31 16:48:56 / 天气: 热 / 心情: 平静 / 精华(1) / 置顶(1) / 个人分类:测试方法

 需求覆盖,指测试用例对需求的11,或1N的对应索引关系,是测试用例覆盖需求程度的一种度量方式。由于需求有粗细之分,常见的如一级需求、二级需求、三级需求,指的就是需求的粒度。用例对需求的覆盖度,目前有一些文档管理工具可自动建立它们之间的索引对应关系,如doors,testlink,也可采用excel人工建立体现覆盖情况的追溯关系表。由于文字描述的需求层次划分的主观性较强,度量本身难于精确化。

对于需求覆盖与软件质量的关系,我们可以问一个这样的问题,需求覆盖率达到了100%,就表示所有需求点都有测试用例对应了吗,回答这一点,我想是很容易的。因为在过去的经历中,测试需求总会大于软件需求,如软件对异常情况,边界值的处理(有些需求是来自设计的限制)。需求一般不会描述如此详细,往往会出现有些用例没有需求对应,或者说用例对需求的覆盖可达120%,甚至150%的覆盖,但就能说明软件质量可靠、稳定吗。只能说用户需求确认已实现,测试的程度(全面性)如何,只能是在一个较低要求的层次上回答了这个问题,就好象是解决了温饱问题。再具体一点,例如,张A问李B,“李B,你吃了饭吗?”,李B回答说:“吃了”,那么说用例对需求的覆盖达到了100%,意思就好比此场景的回答。至于李B吃的什么,有哪些菜,有哪些配料组成,它们是如何搭配的,营养结构是否全面、合理,是否影响身体健康。回答这个问题,犹同回答测试全面性与充分性的问题。

我们都清楚,在软件生命周期中需求经常会发生变化,需求测试对于测试来说是一个不可忽视的阶段,它同软件设计一样,是一个迭代的过程。那么需求覆盖是对需求测试的一种反馈,但绝对又不止这些,需求测试在实际工作可以如何开展,有哪些注意问题,有兴趣的读者可以参阅我的<<软测之魂核心测试设计精解>>第八章的需求测试部分(http://product.china-pub.com/197462

下面就需求覆盖的追溯方法与大家分享下个人的一些体会:

  下图是以用例为主线(逆向追溯),设计的每一条用例依据都是需求,用例与需求的对应关系体现出一对一,一对多的关系。

流程图: 可选过程: 说明:3.1.1-1表示需求3.1.1下的第一小点。目前,大部分公司的需求都是用Word文档来管理的,如果用需求管理工具,如DOORS,Telogic ,可以把每一需求点定义一个ID,用ID号来唯一标识不同的需求,用数据库进行管理。对于需求的管理已超出本 文的范围,此处只提及。

 

 

 


另一种方法是以需求为主线(正向追溯),从需求出发,检查每一需求是否有对应的用例,从而确定对需求的覆盖是否达到了100%。下图是以需求为主线的需求与用例索引矩阵图。

 优点是什么呢?需求点明确,可以保证每一需求点都有测试用例与之对应。不象用例为主线的方法,把用例对应的需求点分散在不同的地方,如果有小需求点漏了,也不足为怪哦。

 

无论以用例为主线,还是以需求为主线,建立需求与用例的追溯表,有一个问题很容易暴露出来。细心读者也许你已注意到,用例T1.5怎么没有需求与之对应呢?紧扣需求设计用例本身是没错。如果只看需求,不关心系统的设计或其他相关模块的需求,会使我们陷入只看到局部的需求,以为只要覆盖了需求说明书中的点,即达到了100%覆盖。而实际上,一个软件系统,由若干模块组成,模块与模块之间会存在一些藕合关系。或者有人会认为模块与模块之间接口关系不是集成测试关心的吗?没错,集成测试是要关心,但也没有说系统测试不要关心。到后期系统测试阶段,随着需求的变更,模块之间的接口可能会发生变化,如一些全局数据结构,全局变量等。这样,在系统测试阶段关心模块间的接口显得必不可少。


TAG:

软测路上 引用 删除 aux0   /   2011-08-14 22:46:46
也算对,只是实际的项目中需求的确不那么容易说清楚,需求有它的粒度,也就如此,常会造成不同的开发人员理解不同
ym4653的个人空间 引用 删除 ym4653   /   2011-08-10 09:31:15
你说的需求是没有经测试加工的需求文档,也就会出现没有对应需求的用例。测试人员在拿到需求文档时,不仅要对需求文档进行分解,还要对需求文档的设计进行分析,看它是否讲清楚,有没有漏讲,有没有存在与其他有冲突,有没有不符行业规则的地方等等,也就是需求验收,把这些不足的地方完善,我认为就不会存在有用例无需求的情况。
 

评分:0

我来说两句

Open Toolbar