1、黑盒测试用例设计方法例子一、等价类划分问:某程序规定:输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)解: 分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 非三角形
2、。 2)如果三条边相等即满足条件(7),则程序输出为 等边三角形 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 等腰三角形 。 4)如果三条边都不相等,则程序输出为 一般三角形 。 列出等价类表并编号 覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)-(7) 4 4 5 (1)-(7),(8) 4 5 5 (1)-(7),(9) 5 4 5 (1)-(7),(10) 4 4 4 (1)-(7),(11) 覆盖无效等价类的测试用例:测试用例abc预期输出1345一般三角形2445等腰三角形3455等腰三角形4545等腰三角形5444等边三角形62.545a
3、不是整数734.55b不是整数8345.5c不是整数93.54.55a、b不是整数1034.55.5b、c不是整数113.545.5a、c不是整数124.54.55.5a、b、c均不是整数133b、c为空144a、c为空155a、b为空1634c为空1745a为空1835b为空19345 输入多于3个20045a为021305b为022340c为023005a、b为024300b、c为025040a、c为026000a、b、c均为027-345a为负数283-45b为负数2934-5c为负数30-3-45a、b为负数31-34-5a、c为负数323-4-5b、c为负数33-3-4-5a、b、c
4、均为负数34315a+bc35325a+b=c36311b+ca37321b+c=a38142a+cb39341a+c=b二、边界值分析法NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量month和变量day的取值范围为1month12和1day31,并设定变量year的取值范围为1912year2050 。测试用例monthdayyear预期输出Test1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.
5、161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出1312001.6.22001.6.32001.7.1输入日期超界day超出131Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出1122001.1.162001.2.162001.11.162001.12.16Mouth超出112三、
6、判定表驱动分析方法问题要求:”对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。请建立判定表。解答:确定规则的个数:这里有3个条件,每个条件有两个取值Yes/No,故应有2*2*2=8种规则。列出所有的条件茬和动作桩:填入条件项。填入动作桩和动作项。这样便得到形如图的初始判定表。12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理化简。合并相似规则后得到图。12345条件功率大于50马力吗?
7、YYYNN维修记录不全吗?YNN-运行超过10年吗?-YNYN动作进行优先处理作其他处理测试用例功率维修记录运行时间预期输出Test1Test2Test3Test4Test51001001002525不全全全不全全5155155优先处理优先处理其他处理优先处理其他处理四、因果图法有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5
8、角硬币。1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币 4.押下橙汁按钮5.押下啤酒按钮 结果: 21.售货机零钱找完灯亮 22.退还1元硬币23.退还5角硬币 24.送出橙汁饮料25.送出啤酒饮料2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:11. 投入1元硬币且押下饮料按钮12. 押下橙汁或啤酒的按钮13. 应当找5角零钱并且售货机有零钱找14. 钱已付清3)转换成判定表:五、错误推测法测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:I.输入的线性表为空表;II.表中只含有一个元素;III.输入表中所有元素已排好序;IV. 输入表已按逆序排好;V.输入表中部分或全部元素相同。