《黑盒测试课件.ppt》由会员分享,可在线阅读,更多相关《黑盒测试课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、软件测试的方法,黑盒测试边界值分析法等价类划分法错误推测法白盒测试逻辑覆盖法,边界值分析法,例如:输入值的范围是-1.0至1.0,则可选-1.0、1.0、-1.001和1.001等例子。例如;一个输入文件可以有 1255个记录,则分别设计有 0个、1个、255个和 256个 记录的输入文件。例如一个情报检索系统根据用户打入的命令显示有关文献的摘要,但是最多只提供 4篇摘要,则可设计一些例子:使得程序分别产生 0篇、1篇或 4篇摘要,并设计一个有可能使程序错误地显示 5篇摘要的例子。,等价类划分法,等价类划分是把程序的输入域划分为若干子集,然后从每个子集中选取少数具有代表性的数据用作测试用例,所
2、选取的输入数据对于揭露程序中的错误都是等效的。分类有效等价类有意义的、合理的输入数据所构成的集合无效等价类无意义的、不合理的输入数据构成的集合,等价类划分法原则,(1)如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。例:输入值是选课人数,在0到100之间有效等价类:“0学生人数100”无效等价类:“学生人数100”,等价类划分法原则,(2)如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。例:输入值是日期类型的数据有效等价类:日期类型的数据无效等价类:非日期类型的数据,等价类划分法原则,(3)如果输入条件是布尔表达式,
3、则可以分为一个有效等价类和一个无效等价类。例:要求密码非空有效等价类:非空密码无效等价类:空密码。,等价类划分法原则,(4)如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。例:输入条件“职称”的值是初级、中级或高级有效等价类:初级,中级,高级3个无效等价类:其他任何职称,等价类划分法原则,(5)如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。,设计测试用例的步骤,(1)对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行
4、编号。(2)设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,直到所有的有效等价类被覆盖。(3)为每一个无效等价类设计一个测试用例。,等价类划分法示例,输入三个变量(年、月、日),函数返回输入日期后面一天的日期:1月份12,1日期31,1812 年2012。给出等价类划分表并设计测试用例。,等价类划分法示例,(1)划分等价类,得到等价类划分表,1月份12,1日期31,1812 年2012,等价类划分法示例,(2)为有效等价类设计测试用例,等价类划分法示例,(3)为无效的等价类设计测试用例,错误推测法,所谓错误推测法就是指软件测试人员根据自身的经验和直觉选择一些测试数据对可能会出现错误
5、和容易发生错误的地方进行测试。,例1:报表日期,设某公司要打印20012005年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。,第一步:划分等价类,第二步:为有效等价类设计测试用例,对表中编号为的3个有效等价类用一个测试用例覆盖:,第三步:为每一个无效等价类至少设计一个测试用例,本例的10个等价类至少需要8个测试用例,不能出现相同的测试用例,考虑边界值应如何选取测试数据?,输入条件,报表日期的类型及长度,1个数字字符5个数字字符7个数字字符有1个非数字字符全部是非数字字符6个数字字符,显示出错显示出错显示出错显示出错显示出错输入有效,测试用例说明,测试数据,期望结果,选
6、取理由,52001520010052001.5MAY-200105,仅有1个合法字符比有效长度少1比有效长度多1只有1个非法字符6个非法字符类型及长度均有效,“报表日期”边界值分析法测试用例,输入条件,日期范围,月份,测试用例说明,测试数据,期望结果,选取理由,月份为1月月份为12月月份12,200101200112200100200113,200101200512200100200513,输入有效输入有效显示出错显示出错,输入有效输入有效显示出错显示出错,在有效范围边界上选取数据,最小日期最大日期刚好小于最小日期刚好大于最大日期,最小月份最大月份刚好小于最小月份刚好大于最大月份,范围,“报表
7、日期”边界值分析法测试用例,对招干考试系统“输入学生成绩”子模块设计测试用例 招干考试分三个专业,准考证号第一位为专业代号,如:1-行政专业,2-法律专业,3-财经专业.行政专业准考证号码为:110001111215法律专业准考证号码为:210001212006财经专业准考证号码为:310001314015,例2:准考证号码,请写出有效等价类和无效等价类,例:准考证号码的等价类划分 有效等价类:(1)110001 111215(2)210001 212006(3)310001 314015 无效等价类:(4)-110000(5)111216 210000(6)212007 310000(7)3
8、14016+,例3 电话号码,城市的电话号码由两部分组成。这两部分的名称和内容分别是:地区码:以0开头的三位或者四位数字(包括0)电话号码:以非0、非1开头的七位或者八位数字假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。,划分等价类并编号,以0开头的数串以1开头的数串以非0、非1开头的含有非法字符7或者8位数串以非0、非1开头的小于7位数串以非0、非1开头的大于8位数串,为有效等价类设计测试用例,为每一个无效等价类至少设计一个测试用例,错误推测法,错误推测法,综合策略,比较合理的策略是:1)在任何情况下都需使用边缘值分析(这个方
9、法应包括对输入和输出的边缘值进行分析)。2)必要的话,再用等价分类法补充一些测试用例。3)再用错误推测法附加测试用例。4)检查上述例子的逻辑覆盖程度,如果未能满足某些覆盖标准,则再增加足够的测试用例。5)如果功能说明中含有输入条件的组合情况,则一开始就可先用因果图法。,经典题目:三角形测试用例,根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。“一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。”,经典题目:三角形测试用例,我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条
10、边,必须满足:A0,B0,C0,且A+BC,B+CA,A+CB。如果是等腰的,还要判断A=B,或B=C,或A=C。如果是等边的,则需判断是否A=B,且B=C,且A=C。,经典题目:三角形测试用例,(AB)and(BC)and(CA)(16),(AB),(18)(BC),(19)(CA),(20),经典题目:三角形测试用例,经典题目:三角形测试用例,边界值法:(1)2数之和等于第3数错误推测法法:(1)输入3个零(2)输入3个负数,36,因果图,因果图是从用自然语言书写的程序规格说明的描述中找到因(输入条件)和果(输出或程序状态的改变),通过因果图转化为判别表。,37,因果图的基本逻辑符号,38
11、,因果图的约束符号,E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。O约束(唯一);a和b必须有一个,且仅有1个为1。R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。这四个是输入条件的约束,还有一个是输出条件约束。M约束(强制):若结果a是1,则结果b强制为0。,39,因果图产生测试用例的步骤,把程序的规格划分解成可以工作的片断;确定规格中的原因和结果;分析规格以确定原因和结果之间的逻辑关系,并且使用因果图表示出来;确定句法或环境的约束,这些约束使得某些组合不能产生;把因果图转化成有限入口
12、决策表;从决策表的每一列选取一个测试用例。,40,因果图案例,第一列字符必须或,第二列字符必须是数字,在此情况下文件被更新。但如果第一个字符不正确,那么信息被产生;如果第二个字符不是数字,则信息产生。,41,案例分析,原因:第一个字符是“”第一个字符是“”第二个字符是一个数字结果:进行更新产生信息产生信息,42,简单的因果图,43,带有约束的因果图,44,决策表,45,练习,有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”和“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还角硬币。练习:做出因果图,编制出决策表,46,47
13、,48,因果图小结,根据需求规格说明书,分析因果关系;有助于用一个系统的方法选择出高效的测试用例集;额外的好处,就是可以指出规格说明的不完整性和不明确之处。因果图是一种形式语言,实际上是一种数字逻辑电路,但没有使用标准的电子学符号,而是使用了稍微简单点的符号。,场景法,以ATM为例进行场景法分析和设计流程简图,场景法,基本流和备选流基本流:正常操作的步骤,不写出来了。太多备选流1:银行卡无效备选流2:ATM内无现金备选流3:ATM现金不足备选流4:PIN错误备选流5:账户不存在备选流6:每日最大的提款金额备选流7:退出,场景法,场景设计场景1:成功提款:基本流场景2:ATM内无现金:基本流+备选流2场景3:ATM内现金不足:基本流+备选流3场景4:PIN错误(还有输入机会):基本流+备选流4场景5:PIN错误(无输入机会):基本流+本宣流4场景6:账户不存在或者有误:基本流+备选流5,场景法,用例表将上图用数据替换,就变成真实的用例表,