软件测试方法二:黑盒测试
黑盒测试重点掌握:
(1) 等价划分类
(2) 边界值分析
(3) 决策表测试
(4) 因果图
等价类划分:
一种典型的黑盒测试方法,该方法完全不考虑程序的内部结构,只根据对软件的需求和说明,把程序输入域分若干个部分,然后从每个部分中选取少数有代表性的数据作为测试输入。使用等价类划分方法设计测试用例,必须在分析需求规格说明的基础上划分等价类。
简单说就是把程序的输入域划分成若干个互不相交的子集,成为等价类。所谓等价类是指输入域的某个子集,所有等价类的并便是整个输入域。
等价类元素的共同点:
(1) 如果用等价类的一个元素作为测试数据进行测试,不能发现软件中的故障,那么使用等价类中的其他元素进行测试也不可能发现故障。
(2) 如果测试数据全都从同一个等价类中选取,除去其中一个测试数据对发现软件故障有意义外,使用其余的测试数据进行测试都是徒劳的。
使用等价类划分的目的:希望进行完备的测试,同时又希望避免冗余。
等价类划分的实现步骤:
(1) 一是确定等价类
(2) 二是确定测试用例
等价类的两种情况:
(1) 有效等价类:是对软件规格说明而言,是有意义的,合理的输入数据所构成的集合。
(2) 无效等价类:是对软件规格说明而言,不合理的,无意义的输入数据所构成的集合。
等价类划分原则:
(1) 按区间划分
(2) 按数值集合划分
(3) 按数值划分
(4) 按限制条件和规则划分
(5) 细分等价类
按区间划分:如果规格说明书说明了输入条件的取值范围或值的数量,则可以确定一个有效等价类和两个无效等价类。
按数值划分:如果规格说明书规定了输入数据的一组值,而且软件要对每个输入值分别进行处理,则可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。
按数值集合划分:如果规格说明书规定了输入值的集合,则可确立一个有效等价类和一个无效等价类。
按限制条件和规则划分:如果规格说明书规定了输入数据必须遵守的规则或限制条件,则可以确立一个有效等价类和若干个无效等价类。
细分等价类:等价类的各个元素在程序中的处理各不相同,则可将此等价类进一步分成更小的等价类。
确定测试用例:
等价类法设计测试用例的步骤:
(1) 为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一的编号。
(2) 设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类,重复这一步骤,使得有效等价类均被测试用例所覆盖。
(3) 设计一个测试用例,使其只覆盖一个无效等价类,重复这一步骤使得所有无效等价类均被覆盖。
等价类划分的测试形式:
(1) 标准等价类测试:不考虑无效数据值,测试用例使用每个等价类中的一个值 。
(2) 健壮等价类测试:考虑了无效等价类
a) 对于有效输入来说,测试用例从每个有效等价类中取一个值。
b) 对无效输入来说,一个测试用例有一个无效值,其他值都是取有效值。
边界条件分析(重点:首先确定边界情况)
边界条件分析法是一种最有效的黑盒测试方法。
边界值分析的基本思路:选取正好等于,刚刚小于或者刚刚大于边界的值作为测试数据,而不是选取等价类中的典型值或者任意值作为测试。
次边界条件:
有些边界在软件内部,用户是几乎看不到的。但是软件测试仍然有必要对这些边界条件进行检查。这样的边界条件称为次边界条件或者内部边界条件。
在对网站http://www.ifcts.com的前后台测试时就可能用到其中的方法。
决策表(由条件桩、条件项、动作桩、动作项组成)
决策表是分析和表达多种输入条件下系统执行不同动作的工具。它既可以把复杂的逻辑关系和多种条件组合的情况表达得即具体又明确。
决策表一直被用来表示和分析复杂的逻辑关系。描述不同条件集合下采取行动的若干组合情况。
条件桩:列出问题的所有条件。
条件项:针对条件桩给出的条件列出所有可能的取值。
动作桩:给出了问题规定的可能采取的动作。
动作项:它和条件项紧密相关。指出在条件项的各组取值情况下应采取的动作。
决策表的合并:
若表中有两条或多条规则具有相同的动作,并且条件之间存在着极为相似的关系,我们就要设法将它合并。
决策表设计用例:
步骤:①确定规则个数
②列出所有的条件桩、条件项、动作桩、动作项
③填入条件项
④填入动作桩和动作项
⑤化简,合并相似的规则
⑥将每条规则转化为用例
决策表的优缺点:
优点:能把复杂的问题按各种可能的情况一一列出来,简而易于理解,也可避免遗漏。
缺点:合并存在漏测的风险,一个显然易见的原因是虽然某个输入条件在输入接口上时无关的,但是在软件设计上,内部针对这个条件走了不用的程序分支。
因果图(cause-Effect Graphing)
提供了一个把规格转化为判定表的系统方法。从该图可以产生测试数据,其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。
因果图方法最终生成的就是决策表,它适合于检查软件输入的各种组合情况。
它能够帮助测试人员按照一定得步骤,高效率的设计出测试用例,以检测程序输入条件的各种组合情况。
因果图设计用例:
①把大的系统规格分解成可以测试的规格片段
②分析分解后待测的系统规格,找出哪些是结果
③画出因果图
④把因果图转换成判定表(决策表)
⑤简化判定表
⑥用判定表中的每一项生成测试用例
因果图的优缺点:
优点:等价类法尽管各个输入条件可能出错的情况都考虑了,但是多个输入条件组合起来出错的情况却被忽略了。因果图法能帮我们按一定步骤,高效的选择测试用例,设计多个输入条件组合用例。因果图还能为我们指出程序规格说明描述中存在的问题。
缺点:输入条件与输出结果的因果关系,有时难以从软件需求规格说明书中得到
,即使得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目及其庞大。