黑盒测试方法详解.pdf
《黑盒测试方法详解.pdf》由会员分享,可在线阅读,更多相关《黑盒测试方法详解.pdf(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、黑盒测试黑盒测试 o 黑盒测试的概念o 黑盒测试的实施过程o 黑盒测试的数学知识 o 测试用例设计技术黑盒测试黑盒测试o 黑盒测试的概念 n什么是黑盒测试?黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。黑盒测试示意图 测试人员把被测程序当作一个黑盒子。黑盒测试黑盒测试n黑盒测试主要测试的错误类型有:不正确或遗漏的功能;接口、界面错误;性能错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。黑盒测试黑盒测试n 黑盒测试用于回答以下问题:1)如何测试功能的有效性?2)何种类型的输入会产生好的测试用例?3)系统是否对特定的输入值尤其敏感?4)如何分隔数
2、据类的边界?5)系统能够承受何种数据率和数据量?6)特定类型的数据组合会对系统产生何种影响?黑盒测试黑盒测试n 运用黑盒测试方法,可以导出满足以下标准的测试用例集:1)所设计的测试用例能够减少达到合理测试所需的附加测试用例数;2)所设计的测试用例能够告知某些类型错误的存在或不存在,而不是仅仅与特定测试相关的错误。黑盒测试黑盒测试n 用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的,因为穷举测试数量太大,无法完成。黑盒测试黑盒测试假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑
3、盒方法进行穷举测试:可能采用的测试数据组:232232264如果测试一 组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。因此,我们只能在大量可能的数据中,选取其中一部分作为测试用例。黑盒测试黑盒测试o 黑盒测试的实施过程(1)测试计划阶段(2)测试设计阶段依据程序需求规格说明书或用户手册,按照一定规范化的方法进行软件功能划分和设计测试用例。(3)测试执行阶段按照设计的测试用例执行测试;自由测试(作为测试用例测试的补充)。(4)测试总结阶段测试人员的数学知识o集合论1 集合与成员 M30=4月,6月,9月,11月2 集合的定义 列出集合元素 如M30 给出集合元素判定规则 如
4、Y=年|1900年100100 无效等价类无效等价类 成绩成绩00等价类划分在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。等价类划分n 3)划分等价类的方法在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。等价类划分在规定了输入数据必须遵守的规则的情况下,可确
5、立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。等价类划分n4)设计测试用例在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件 有效等价类 无效等价类.然后从划分出的等价类中按以下三个原则设计测试用例:为每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。等价类划
6、分o 举例n 例1:某程序规定:“输入三个整数 a、b、c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 ”。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)等价类划分分析题目中给出和隐含的对输入条件的要求:(1)整数 (2)三个数 (3)非零数(4)正数 (5)两边之和大于第三边(6)等腰 (7)等边 如果 a、b、c 满足条件(1)(4),则输出下列四种情况之一:1.如果不满足条件(5),则程序输出为“非三角形”。2.如果三条边相等即满足条件(7),则程序输出
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)无效等价类覆盖无效等价类的测试用例:等价类划分o 例2:设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2049年12月,并规定日期由6位数字字
8、符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。等价类划分1)划分等价类并编号下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度6位数字字符有非数字字符少于6位数字字符多于6位数字字符年份范围在19902049之间小于1990大于2049月份范围在0112之间等于00大于12等价类划分2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为、,设计的测试用例如下:测试数据 期望结果 覆盖的有效等价类200211 输入有效 、无效等价类3)为每一个无效等价类设计一个测试用例,设计结果如下:测试数据 期望结果
9、覆盖的无效等价类95June 无效输入 20036 无效输入 2001006 无效输入 198912 无效输入 200401 无效输入 200100 无效输入 200113 无效输入 NextDate 函数等价类测试用例n NextDate 函数包含三个变量:month、day 和 year,函数的输出为输入日期后一天的日期。例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。要求输入变量 month、day 和 year 均为整数值,并且满足下列条件:(1)1month12(2)1day31(3)1920year2050 NextDate 函数等价类测试用例o有效等价类为
10、:M1月份:1月份12D1日期:1日期31Y1年:1812年2012o若条件(1)(3)中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如“month 的值不在 1-12 范围当中”。显然还存在着大量的 year、month、day 的无效组合,NextDate 函数将这些组合作统一的输出:“无效输入日期”。其无效等价类为:M2月份:月份12D2日期:日期31Y2年:年2012NextDate 函数等价类测试用例弱一般等价类测试用例月份 日期 年 预期输出 6 15 1912 1912年6月16日强一般等价类测试用例同弱一般等价类测试用例注:弱有单
11、缺陷假设 健壮考虑了无效值 NextDate 函数等价类测试用例弱健壮等价类测试用例ID 月份 日期 年 预期输出WR1 6 15 1912 1912年6月16日WR2 1 15 1912 月份不在112中WR3 13 15 1912 月份不在112中WR4 6 1 1912 日期不在131中WR5 6 32 1912 日期不在131中WR6 6 15 1811 年份不在18122012中WR7 6 15 2013 年份不在18122012中NextDate 函数等价类测试用例o 强健壮等价类测试用例ID 月份 日期 年 预期输出SR1 1 15 1912 月份不在112中SR2 6 1 19
12、12 日期不在131中SR3 6 15 1811 年份不在18122012中SR4 1 1 1912 两个无效一个有效SR5 6 1 1811 两个无效一个有效SR6 1 15 1811 两个无效一个有效SR7 1 1 1811 三个无效佣金问题等价类测试用例它是根据佣金函数的输出值域定义等价类,来改进测试用例集合输出销售额1000元 佣金1010001800 佣金=220+(销售额-1800)*20%测试用例 枪机(45)枪托(30)枪管(25)销售额 佣金 1 5 5 5 500 50 2 15 15 15 1500 175 3 25 25 25 2500 360 根据输出域选择输入值,使
13、落在输出域等价类内,可以结合弱健壮测试用例结合。问题讨论问题:给出下面的有效和无效等价类输入条件:“统计全国各省、市、自治区的人口”输入条件:“标识符应以字母开头”输入条件:长度为1-20的字符串输入条件:数据库中的值域,CHAR(20),NOT NULL边界值分析法 o 边界值分析方法是对等价类划分方法的补充.1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况
14、.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.边界值分析法n 与等价划分的区别o 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。o 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。边界值分析法(2)基于边界值分析方法选择测试用例的原则1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为”。作为测试用例,我们应取10及50,还应取10.
15、01,49.99,9.99及50.01等。边界值分析法2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。比如,一个输入文件应包括1255个记录,则测试用例可取1和255,还应取0及256等。边界值分析法3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。例如,某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元”,其测试用例可取0.00及1165.24、还可取一0.01及116526等。再如一程序属于情报检索系统,要求每次”最少显示1条、最多显示4条情报摘要”,这时我们应考虑的测试用例包括1和4,
16、还应包括0和5等。边界值分析法5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。7)分析规格说明,找出其它可能的边界条件。边界值分析法-举例(3)例3现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:边界值分析法-举例 标题:这一组只有一个记录,其内容为输出成绩报告的名字。边界值分析法-举例试卷各题标准答案记录:每个记录均在第80个字符处标以数字“2”。该组的
17、第一个记录的第1至第3个字符为题目编 号(取 值 为 1 一999)。第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3个记录相应为第51至第1 0 0,第 1 0 1 至 第150,题的答案。边界值分析法-举例每个学生的答卷描述:该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则第2,第3纪录分别给出他的第51至第100,第101至第150题的解答。然后是学生乙的答卷记录。学生人数不超过200,试题数不超
18、过999。边界值分析法-举例程序的输出有4个报告:a)按学号排列的成绩单,列出每个学生的成绩、名次。b)按学生成绩排序的成绩单。c)平均分数及标准偏差的报告。d)试题分析报告。按试题号排序,列出各题学生答对的百分比。解答:分别考虑输入条件和输出条件,以及边界条件。给出下表所示的输入条件及相应的测试用例。边界值分析法-举例边界值分析法-举例边界值分析法-举例右表为输出条件及相应的测试用例表。错误推测法 o 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。o 错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试
19、用例。n 例如,输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。错误推测法o 例如,针对例3,采用错误推测法还可补充设计一些测试用例:1、程序是否把空格作为回答2、在回答记录中混有标准答案记录3、除了标题记录外,还有一些的记录最后一个字符即不是2也不是34、有两个学生的学号相同5、试题数是负数。错误推测法o 再如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:1)输入的线性表为空表;2)表中只含有一个元素;3)输入表中所有元素已排好序;4)输入表已按逆序排好;5)输入表中部分或全
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑盒 测试 方法 详解
限制150内