功能性测试(黑盒测试)实验报告(共7页)

精选优质文档-----倾情为你奉上实 验 内 容功能性测试(黑盒测试)实验目的:1、掌握应用功能性测试技术进行测试用例设计2、掌握对测试用例进行优化设计方法实验内容:1.题目一:三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例一个程序读入三个整数把此三个数值看成是一个三角形的三个边这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的2.题目二:日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、 day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩) (3) 根据 (1) 和 (2) ,画出简化后的决策表实验步骤1、三角形问题(1)根据功能性测试技术设计测试用例,主要考虑等价类划分测试技术。
• 使用等价类划分方法必须仔细分析和推敲题目所给出的要求本题的输人条件要求的关键之处有:– 1) 整数;– 2) 三个数;– 3) 非零数;– 4) 正数;• 输出条件要求的关键之处有:– 5) 应满足两边长之和大于第三边边长;– 6) 等腰;– 7) 等边;• 其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的列出等价类表(表中号码为等价类编号)表1-1 三角形问题等价类划分有效等价类号码无效等价类号码输入条件输入三个整数整数1一边为非整数a为非整数12b为非整数13c为非整数14两边为非整数a, b为非整数15b, c为非整数16a, c为非整数17三边均为非整数18三个数2只给一边只给a19只给b20只给c21只给两边只给a,b22只给b,c23只给a,c24给出三个以上25非零数3一边为零a为026b为027c为028二边为零a,b为029a,c为030b,c为031三边a,b,c均为032正数4一边<0a<033b<034c<035二边<0a<0且b<036a <0且c<037b<0且c<038三边均<0; a<0且b<0且<039输出条件构成一般三角形a+b>c5a+b 列出覆盖步骤1中的等价类划分的测试用例表1-2三角形问题测试用表abc覆盖等价类号码3451—74451—7,84551—7,95451—7,104441—7,11(3)根据设计的两套测试用例集进行测试表1-3 Test1测试用例的测试结果测试用例IDTest1目的测试程序能否识别一般三角形前提输入三个不等的正整数,且两边之和大于第三边输入a=3;b=4;c=5预期结果输出“三角形是一般三角形”测试结果输出“三角形是一般三角形”测试日期2011-11-15备注无表1-4 Test2测试用例的测试结果测试用例IDTest2目的测试程序能否识别等腰三角形前提输入三个不等的正整数,且两边之和大于第三边输入a=4;b=4;c=5预期结果输出“三角形是等腰三角形”测试结果输出“三角形是等腰三角形”测试日期2011-11-15备注无2、日期问题(1)根据功能性测试技术设计测试用例,主要考虑决策表测试技术决策表适合描述不同条件集合下采取行动的若干组合的情况• 决策表的构成:– 桩部分– 条目部分– 条件部分– 行动部分• 使用决策表标识测试用例,则把条件解释为输入,行动解释为输出• 有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则则解释为测试用例。 在日期问题中,为了获得一个日期,NextDate函数需要执行的操作有5种:1) day变量值加2;2) day变量复位为1;3) day变量为2;4) month变量值加1;5) month变量复位为1;6) year变量加1仔细研究动作桩,可以在以下的等价类集合上建立决策表M1:{mount:month有30天};M2:{mouth:month有31天,12月份除外};M3:{month:month是12月};M4:{mouth:month是2月};D1:{day:1<=day<=26};D2:{day:day=27};D3:{day:day=28};D4:{day:day=29};D5:{day:day=30};D6:{day:day=31};Y1:{year:year是闰年};Y2:{year:year不是闰年}建立NextDate函数的简化决策表如下表2-1所示 表2-1 日期问题简化决策表规则选项规则1~34567~10111213~1617条件C1:month在M1M1M1M1M2M2M2M3M3C2:day在D1~D3D4D5D6D1~D4D5D6D1~D4D5C3:year在—————————动作A1:不可能√A2:day加2√√√A3:day复位1√√√A4:day等于2√√A5:month加1√√√√A6:month复位√A7:year加1√日期问题决策表续2-2规则选项规则1819202122232425~2728~29条件C1:month在M3M4M4M4M4M4M4M4M4C2:day在D6D1D2D2D3D3D4D4~D6D5~D6C3:year在——Y1Y2Y1Y2Y1Y2Y1动作A1:不可能√√A2:day加2√√A3:day复位1√√A4:day等于2√√√A5:month加1√√√√A6:month复位√A7:year加1√(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集。 根据步骤1中的决策表,可设计测试用例如表2-3所示表2-3 日期问题测试用例表测试用例monthdayyear预期输出Test1~3628200130/6/2001Test462920011/7/2001Test563020012/7/2001Test66312001不可能Test7~10329200231/3/2002Test1133020021/4/2002Test1233120022/4/2002Test13~161229200331/12/2003Test17123020031/1/2004Test18123120032/1/2004Test19226200328/2/2003Test20227200429/2/2004Test2122720051/3/2005Test2222820041/3/2004Test2322820052/3/2005Test2422920042/3/2004Test25~272292005不可能Test28~292302004不可能(3)根据设计的两套测试用例集进行测试以下是对步骤(2)中的Test1和Test6进行测试的结果表2-4 Test1测试用例的测试结果测试用例IDTest1目的测试程序能否识别正确输出日历上隔一天的日期前提1≤month≤12;1≤day≤31输入month=6;day=28;year=2001预期结果输出:30/6/2001测试结果输出:30/6/2001测试日期2011-11-15备注无表2-5 Test6测试用例的测试结果测试用例IDTest6目的测试程序能否识别错误输入前提1≤month≤12;1≤day≤31输入month=6;day=31;year=2001预期结果输出:输入错误,6月份不存在31日测试结果输出:输入错误,6月份不存在31日测试日期2011-11-15备注无实 验 总 结专心---专注---专业。