在软件测试中目前黑盒测试的测试用例设计方法有5种:
一、等价类划分
等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。
等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类。
下面给出6条确定等价类的原则:
在确立了等价类后,可建立等价类表,列出所有划分出的等价类。然后从划分出的
等价类中按以下的3个原则设计测试用例:
例:程序规定;输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。
解:设a、b、c代表三角形的三条边。
1)分析题目中给出的和隐含的对输入条件的要求:
a) 整数
b) 3个数
c) 非零数
d) 正数
e) 两边之和大于第三边
f) 等腰
g) 等边
2)列出等价类表并编号
MILY: 宋体">java_script_:if(this.width>500)this.width=500" border=0>
3)列出覆盖上述等价类的测试用例,如下表:
二、边界值分析法
使用边界值分析方法设计测试用例,首先:应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。其次,应但选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
基于边界值分析方法选择测试用例的原则:
三、错误推测法
错误推测法就是根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。
基本思路:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如:输入数据和输出数据为0的情况。
例:现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,所有记录分为3组,如图:
1、标题:改组只有一个记录,其内容是成绩报告的名字。
2、各题的标准答案:每个记录均在第80个字符处标以数字2。该组的记录:
第一个记录:第1~3个字符为试题数(1~999)。第10~59个字符是1~50题的标准答案(每个合法字符表示一个答案)。
第二个记录:是第51~100题的标准答案。
…….
3、学生的答案:每个记录均在第80个字符处标以数字3。每个学生的答卷在若干个记录中给出。
学号:1~9个字符
1~50题的答案:10~59。当大于50题时,在第二、三、……个记录中给出。
学生人数不超过200,试题数不超过999。
程序的输出有4个报告:
a)按学号排列的成绩单,列出每个学生的成绩、名次。
b)按学生成绩排序的成绩单。
c)平均分数及标准偏差的报告
d)试题分析报告。按试题号排序,列出各题学生答对的百分比。
解答一:采用边界值分析方法,分析和设计测试用例。分别考虑输入条件和输出条件,以及边界条件。下表列出了输入条件及相应的测试用例。
下表为输出条件及相应的测试用例表。
解答二:采用错误推测法还可补充设计一些测试用例:
四、 因果图法
因果图法是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的测试用例设计方法。
利用因果图生成测试用例的基本步骤:
例:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解1、画出因果关系表和因果图。
2、根据因果图建立判定表。
按条件的各种组合情况产生对应的动作。原因1和原因2不能同时成立,故可排除这种情况。
从判定表可设计出测试用例:6个测试用例是所需的数据。