标签:
《软件测试基础》读书报告
第四章 输入空间划分
为了更直接地使相同测试需求的值集合是恰好合适,划分输入空间的方式直接的根据输入值的参数来定义输入域。输入参数可能是方法的参数和全局变量,也可能是系统当前的表现状态,或者干脆是用户级给定的一个输入,这都要根据实际情况来划分。总输入域中划分出若干个区域,从这些区域中选出一些值来进行测试。
从参数的域开始,把每个域可能的值划到块里,从块中选取适当的值来组成测试用例的过程就是输入域建模的过程。对于输入与的划分,一般是基于程序相应的某周特性,程序的输入,程序的环境等。
对于某个特性划分域时,一般要求满足两个条件:
以"输入F的次序"为例,一个看起来有效实际无效的划分可能是这样:
B1 = 升序排列
B2 = 降序排列
B3 = 任意顺序
这样做既不满足完整性也不满足分离性,升序或者降序都可以算是任意顺序的子块,而且,当F长度为0或者1的时候,F能同时满足三个块。出现这个问题的原因是把升序和降序两个概念放在相同的特性里面,应该将其分离。结果就是下面这个有效的划分:
B1 = True
B2 = False
B1 = True
B2 = False
当F长度为0或者1的时候,对两个特性都为真。
完整性和分离性的划分是为了使块的划分更加合适,为从块中选择合适的值来组合奠定基础。
输入域建模分三步。
在建模时,有基于接口和基于功能的两种建模方法。
孤立地看待每个参数,这种机械的方式的到的结果确实很好,也容易识别,抽象的工作也很简单。但是,并不是所有的可用信息都反映在接口域模型里面,这就意味着这样建立的IDM是不完整的;另外一个问题是对每个参数孤立的分析,会导致一些重要的子组合被遗漏。
基于功能的建模的想法是通过识别被测系统的功能,将相应的领域知识应用到IDM上。这样的话,从规格说明书语义到IDM的转换,更可能为测试用例产生预期的结果。并且,因为IDM的建立不依赖于具体实现的参数列表,需要的只是规格说明书和领域知识,所以在开发的早期就能着手设计测试。
当然,基于功能的分方法里,识别特征和取值是比较困难的,当系统比较大的时候,这一点体现的更加明显。并且,功能需求严重依赖于规格说明书,如果规格说明书不完整或者不完善,那设计合理的特性就更加困难了。
如果直接这样的话,测试数量会爆炸。可以肯定,每个块中有的选择是等价的,这样就存在一些组合策略使得测试减少
满足这样标准的测试灵活性很大,这样有的中药组合可能会遗漏
|--->T-Wise覆盖 -----> Pair-Wise覆盖------ ---|
完全组合覆盖 ------| |------> 每个选择覆盖
|--->多个基本选择覆盖 ---> 基本选择覆盖--------|
标签:
原文地址:http://www.cnblogs.com/test-tech/p/4419830.html