实验黑盒测试用例设计
- 格式:doc
- 大小:330.50 KB
- 文档页数:12
⿊盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法⿊盒测试常⽤测试⽅法的选择:1⾸先采⽤等价类划分法来编写测试⽤例2必要时采⽤边界值分析法进⾏补充测试⽤例3采⽤错误推测法再追加测试⽤例4对照程序逻辑,检查⾃⼰设计出的测试⽤例逻辑覆盖程度,若覆盖不够,则需要再补充其他的测试⽤例5如果程序功能含有输⼊条件的组合情况,应⼀开始就采⽤因果图法6如果程序某功能适合⾃动测试,可以采⽤⾃动化测试及随机测试。
什么是⿊盒测试以及优缺点?定义:⿊盒测试把测试对象看做⼀个⿊盒⼦,不⽤考虑程序内部结构和内部特性,依据程序需求规格说明书,检查程序功能是否符合功能说明。
优缺点:优:1功能性测试与软件如何实现⽆关,如果实现发⽣变化,功能性测试仍然可⽤;2测试⽤例编写与软件开发同时进⾏,节省软件开发时间3通过软件的⽤例可⽤设计出⼤部分功能性测试⽤例缺:1测试⽤例数量⼤2测试⽤例可能产⽣很多冗余3功能性测试的覆盖范围不可能达到100%⿊盒测试⽤例设计⽅法?答:1等价类划分法(有意义,合理的输⼊数据组成集合检查是否符合产品需求;⽆意义,不合理的输⼊数据组成的集合推测不符合需求的地⽅)、2边界值分析法(输⼊的边界值进⾏测试)、3因果图法(分析和表达多逻辑条件下执⾏不同操作)、4状态图法(和产品需求反着来,⽐如要求输⼊数字,就输⼊字母,要求输⼊正数,就输⼊负数等)、5场景法(利⽤图解法分析输⼊的各种组合情况,即输⼊多个条件的各种组合及输出情况之间的相互制约关系)、6正交试验法(⽐如要进⾏18次测试,最终选择具有代表性的9次进⾏试验)7其他测试⽅法有:错误推测法、通过测试与失败测试、随机测试边界值划分法:考虑的边界数据类型如数值、速度、字符、地址、位置、尺⼨、数量;以及考虑条件的等价区间:默认、空⽩、空值、零值和⽆。
还要考虑:⾮法、错误、不正确和垃圾数据。
还要测试:程序的状态及切换。
次边界条件:。
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
⿊盒测试《等价类划分》-有这篇就够了⼤家好,我是吉提。
在疫情消停不下来的2020年,既然不好跳槽,不好涨薪,也不好发挥创造⼒,那么就沉下⼼来,跟我⼀起,巩固软件测试基础知识。
积攒⼒量,蓄势待发。
本⽂将会详细描述“等价类划分",它是⿊盒测试最基本的⽤例设计⽅法。
⽬录:1. 定义(What)2. 为什么使⽤该⽅法?(Why)3. 如何划分等价类?(How)4. 设计测试⽤例5. 使⽤场景6. 根据测试⽤例的完整性划分7. 等价类划分注意事项8. 等价类划分的优缺点9. 实战演练1. 定义(What)等价类划分法是⼀种典型的,并且是最基础的⿊盒测试⽤例设计⽅法。
采⽤等价类划分法时,完全不⽤考虑程序内部结构,设计测试⽤例的唯⼀依据是软件需求规格说明书。
所谓等价类,是输⼊条件的⼀个⼦集合,该输⼊集合中的数据对于揭⽰程序中的错误是等价的。
从每⼀个⼦集中选取少数具有代表性的数据,从⽽⽣成测试⽤例。
等价类⼜分为有效等价类和⽆效等价类。
有效等价类代表对程序有效的输⼊,⽽⽆效等价类则是其他任何可能的输⼊(即不正确的输⼊值)。
有效等价类和⽆效等价类都是使⽤等价类划分法设计⽤例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输⼊,也能接受⽆效输⼊的考验。
2. 为什么使⽤该⽅法?(Why)理想的测试,是从所有可能的输⼊中找出某个⼩的⼦集,并且是可能发现错误最多的⼦集。
即:使⽤最少的测试数据,达到最好的测试质量(最⾼性价⽐)。
这个⼦集如何确定?可以借助测试⽤例的两个特性:测试⽤例数量达到最少;某个测试⽤例要能覆盖⼤部分其他测试⽤例。
第⼆个特性就暗⽰我们,应该尽量将程序输⼊范围进⾏划分,将其划分为有限数量的等价类,这样就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。
这两种特性形成了称为等价类划分的⿊盒测试⽅法。
因此,等价类划分是⿊盒测试最基本的⽅法。
3. 如何划分等价类?(How)在给定了输⼊或外部条件之后,等价类的划分原则如下:如果输⼊条件规定了⼀个取值范围(例如,“数量可以是1到999”),那么就应确定出⼀个有效等价类(1<数量<999),以及两个⽆效等价类(数量<1,数量>999)。
黑盒测试方法是根据程序的外部行为来设计测试用例的黑盒测试是软件测试中的一种方法,主要是根据程序的外部行为进行测试,而不需要了解内部代码的具体实现。
在黑盒测试中,测试人员只关心程序的输入和输出以及程序对这些输入的响应,而不考虑程序的内部逻辑。
黑盒测试方法是根据程序的外部行为来设计测试用例的,下面将介绍几种常见的黑盒测试方法。
等价类划分等价类划分是一种常用的黑盒测试方法,它将输入数据分为若干个等价类,从每个等价类中选择一个代表进行测试。
这样可以有效地减少测试用例的数量,提高测试效率。
例如,对一个需要输入年龄的程序,可以将年龄划分为未成年和成年两个等价类,分别选择一个代表进行测试。
边界值分析边界值分析是在等价类划分的基础上,针对边界情况进行测试的方法。
通常程序在处理边界值时容易出现错误,因此通过针对边界值的测试可以有效地发现潜在的问题。
例如,如果一个程序要求输入1到100之间的数字,那么就应该测试1和100两个边界值。
因果图法因果图法是一种通过分析系统中各种因果关系来设计测试用例的方法。
通过构建因果图,可以清晰地了解系统中各个组成部分之间的关系,从而有针对性地设计测试用例。
这种方法可以帮助测试人员更全面地覆盖系统的功能,发现隐藏的缺陷。
决策表测试决策表测试是一种根据程序的决策逻辑来设计测试用例的方法。
通过分析程序中的各种决策条件和可能的组合情况,设计出能够覆盖各种情况的测试用例。
这种方法可以有效地检查程序在不同条件下的正确性和完整性。
综上所述,黑盒测试是一种重要的测试方法,其设计测试用例的关键在于根据程序的外部行为来进行分析和选择。
通过等价类划分、边界值分析、因果图法和决策表测试等方法,可以有效地设计出全面而高效的测试用例,帮助发现潜在的程序缺陷,提高软件质量。
天津农学院软件测试课程实验报告——黑盒测试院系:计算机科学与信息工程学院专业:软件工程班级:12级软件4班______小组成员:王震 1208054413__许勇 1208054401___许帅杰 1208054408___吴世兵 1208054417__王艺 1208054418___一:实验内容:1. 系统地学习和理解黑盒测试的基本概念、原理,照我黑盒测试的基本技术和方法;2. 对一个已知的程序进行测试,这里用的网上小说阅读查询的系统。
3. 通过实验和应用,要逐步提高和运用黑盒测试技术解决世界测试问题的能力;这采用的是等价类划分法和边界值法两种黑盒测试常用的方法。
4. 完成试验并认真书写报告二,实验原理:黑盒测试是常用的软件测试的方法,用这种方法测试时,把被测试程序当做一个黑盒,在不考虑内部结构和内部特征性,测试者只知道该程序的输入和输出之间个关系或程序的功能的情况下,依靠能反应这一关系和程序功能需求规格的说明书,来确定测试永烈和推断测试结构的正确性。
软件的黑盒测试被用来证实软件功能的正确性和可操作性。
1. 划分等价类:等价类划分法是把程序的输入值划分成若干等价类,然后从每个类中选取少数代表性数据作为测试用例,使每一个类中的任何一个测试用例都能代表这个等价类中的其他数据。
也就是说,如果从某等价类中选出任意一个测试用例都能发现错误,就可以认为该类中其他测试用例也能发现错误,这样就不需要漫无边际地寻找测试用例,而是针对性地使用测试用例。
该方法是一种重要的、常用的黑盒测试用例设计方法。
2. 边界值分析法:就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3. 功能图法:一个程序的功能说明通常动态说明和静态说明组成。
动态说明描述了输入数据的次序和转移的次序。
静态说明描述了输入条件和输出条件之间的对应关系。
对于复杂的程序,由于存在大量的组合情况,因此仅用静态说明组成的规格说明对于测试来说往往是不够的,必须用动态说明来补充功能说明。
结合测试,⿊盒测试2007测试⽤例的设计⽅法(全)⽬录:等价类划分⽅法边界值分析⽅法错误推测⽅法因果图⽅法判定表驱动分析⽅法正交实验设计⽅法功能图分析⽅法场景设计⽅法等价类划分⽅法:⼀.⽅法简介1.定义是把所有可能的输⼊数据,即程序的输⼊域划分成若⼲部分(⼦集),然后从每⼀个⼦集中选取少数具有代表性的数据作为测试⽤例。
该⽅法是⼀种重要的,常⽤的⿊盒测试⽤例设计⽅法。
2.划分等价类:等价类是指某个输⼊域的⼦集合。
在该⼦集合中,各个输⼊数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这⼀类其它值的测试,因此,可以把全部输⼊数据合理划分为若⼲等价类,在每⼀个等价类中取⼀个数据作为测试的输⼊条件就可以⽤少量代表性的测试数据取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和⽆效等价类。
1)有效等价类是指对于程序的规格说明来说是合理的、有意义的输⼊数据构成的集合。
利⽤有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)⽆效等价类与有效等价类的定义恰巧相反。
⽆效等价类指对程序的规格说明是不合理的或⽆意义的输⼊数据所构成的集合。
对于具体的问题,⽆效等价类⾄少应有⼀个,也可能有多个。
设计测试⽤例时,要同时考虑这两种等价类。
因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更⾼的可靠性。
3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的⼀组⼦集,⽽⼦集的并是整个集合;3)并是整个集合:完备性;4)⼦集互不相交:保证⼀种形式的⽆冗余性;5)同⼀类中标识(选择)⼀个测试⽤例,同⼀等价类中,往往处理相同,相同处理映射到"相同的执⾏路径"。
4.划分等价类的⽅法1)在输⼊条件规定了取值范围或值的个数的情况下,则可以确⽴⼀个有效等价类和两个⽆效等价类。
如:输⼊值是学⽣成绩,范围是0~100;2)在输⼊条件规定了输⼊值的集合或者规定了"必须如何"的条件的情况下,可确⽴⼀个有效等价类和⼀个⽆效等价类;3)在输⼊条件是⼀个布尔量的情况下,可确定⼀个有效等价类和⼀个⽆效等价类。
⿊盒测试⿊盒测试⼀第⼀课1. 实验⽬的理解墨盒测试的基本⽅法,掌握等价类划分法、边界值分析等测试⽤例的设计⽅法。
2.实验内容(1) 等价类划分⽅法1) 三⾓形问题等价类划分设计测试⽤例2) NextDate问题,对它的输⼊进⾏分析,划分等价类,然后根据等价类设计测试⽤例。
(2) 边界值和因果图1)NextDate问题⽤边界值分析法设计测试⽤例分析NextDate问题中的逻辑,⽤边界值分析法的思想设计测试⽤例。
2) 有⼀个处理单价为5⾓钱的饮料的⾃动售货机软件测试⽤例的设计。
其规格说明如下:若投⼊5⾓钱或1元钱的硬币,押下[橙汁]或[啤酒]的按钮,则相应的饮料酒送出来。
若售货机没有零钱找,则⼀个显⽰[零钱找完]的红灯亮,这时再投⼊1元硬币并押下按钮后,饮料不送出来⽽且1元硬币也退出来;若有零钱找,则显⽰[零钱找完]的红灯灭,在送出饮料的同时退还5⾓硬币。
⽤因果图法对⾃动售货机设计测试⽤例。
要求:(1) 1)必做(1) 2)与(2)1)2)选做其⼀3.实验准备(1)主流PC机⼀套,要求安装windows操作系统、Virtul Studio6.0、C++Test、java等⼯具;(1)理解等价类划分法、边界值分析法的思想,划分依据;(2)熟悉上述⽅法测试⽤例设计的理论4.实验步骤(1)三⾓形问题1) if (!(a+b<=c||a+c<=b||b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if (a==b && a==c)MessageBox("等边三⾓形");else if (a==b || a==c || b==c)MessageBox("等腰三⾓形");elseM essageBox("⼀般三⾓形");}else {if(a<1||a>100)MessageBox("a不在范围内,不满⾜条件1,不能构成三⾓形");else if(b<1||b>100)MessageBox("b不在范围内,不满⾜条件2,不能构成三⾓形"); else if(c<1||c>100)MessageBox("c不在范围内,不满⾜条件3,不能构成三⾓形"); else if(a>=b+c)MessageBox("不满⾜aelse if(b>=a+c)MessageBox("不满⾜belse if(c>=b+a)MessageBox("不满⾜c}M essageBox("判断结束!");}2) 实验的输⼊和输出样式3) 测试⽤例设计⽤等价类分析法设计测试⽤例,按照下列步骤进⾏:⑴分析题⽬中给出的条件和隐含的输⼊要求,输⼊条件如下:①正整数②三个数③构成⼀般三⾓形④构成等腰三⾓形⑤构成等边三⾓形⑥不能构成三⾓形⑵根据输⼊条件的要求划分等价类,列出等价类表并编号,如下表:⑶设计测试⽤例,覆盖上表中的等价类,如下表:注:提⽰1(输⼊不符合要求)提⽰2(请输⼊数据)(2)(2) (2) NextDate问题⽤边界值分析法设计测试⽤例1)对于NextDate问题,分析它的输⼊限制;NextDate是⼀个有三个变量(⽉份、⽇期和年)的函数。
测试用例设计方法1——等价类边界值1、等价类划分等价类划分是黑盒测试最常用的方法,使用等价类划分的方法是将输入域划分为若干个区域,并从中选择少数具有代表性的数据进行测试,这样可以避免使用大量的测试数据,也避免了盲目性。
等价类划分针对程序的输入部分,常用的设计方法是:找出输入条件,划分等价类,并进行用例的设计。
等价类分为有效等价类和无效等价类。
所谓有效等价类是指用户输入的有效数据,并得到预期的或正常的结果;另一种是无效等价类,无效等价类是指异常的或不符合规定的输入,相应的也会得到异常的输出或提示信息。
因此在划分等价类的时候又从有效和无效两方面去考虑。
一般在设计测试用例时,要是一条用例尽量多的覆盖有效等价类,而无效等价类则要求一对一的覆盖。
2、边界值边界值同样是一种经典的黑盒测试方法,他常常作为等价类的一种补充,与等价类方法一起使用。
在进行程序设计时,大量的错误容易发生在输入数据或输出数据的边界上,因此使用边界值的方法可以经常检测出错误。
当一个输入明确的规定了一个值的取值范围时或输入条件是一组有序的集合时,就可以使用边界值的方法来设计测试用例。
关于边界值得上点、内点、离点的概念,可以参见下图。
由于等价类和边界值经常配合使用,因此两者可以合并为一个用例设计方法,下面总结一下使用等价类边界值设计测试用例的思路和方法。
1、分析需求,挖掘隐式条件,确认边界值,划分等价类2、将划分出的等价类填入表格,进行编号3、对有效等价类,用一条用例尽量多的覆盖4、对于无效等价类,一对一的覆盖,最终得到测试用例下面以最经典的三角形问题来说明如何使用等价类边界值方法设计测试用例:输入3个数,判定是否构成三角型,并判定什么时候是等腰三角形,什么时候是等边三角形。
分析输入条件:1、3个整数2、任意两边和大于第三遍3、满足1、2,且只有两个边相等4、满足1,三遍全部相等由上面的条件得到表格:获得等价类的划分后可以轻松的得到测试用例:至此,一个完整的测试用例就完成了。
软件测试之⿊盒测试测试⽅法选择的综合策略:1. ⾸先进⾏等价类划分,包括输⼊条件和输出条件的等价划分,将⽆限测试变成有限测试,这是减少⼯作量和提⾼测试效率最有效的⽅法2. 在任何情况下,都必须使⽤边界值分析法,经验表明,⽤这种⽅法设计出的⽤例,发现程序错误的能⼒最强3. 可以⽤错误推测法追加⼀些⽤例,这需要依靠测试⼯程师的经验4. 对照程序逻辑,检查出已设计出的测试⽤例的逻辑覆盖程度,如果没有⾜够覆盖,应当再补充⾜够的测试⽤例5. 如果程序说明中有输⼊条件的组合情况,则⼀开始就可以选⽤因果图或判定表驱动法设计测试⽤例6. 对于参数配置类型的软件,要⽤正交试验法选择较少的组合⽅式,达到最佳效果7. 对于业务流清晰的系统,可利⽤场景法贯穿整个测试案例过程,在案例中综合使⽤各种设计⽅法⿊盒测试⽤例设计⽅法:等价类划分边界值分析法决策表法因果图错误推测法正交试验法场景法等价划分类:将不能穷举的测试过程进⾏合理分类,从⽽保证设计出来的测试⽤例具有完整性和代表性把所有可能的输⼊数据(有效的和⽆效的)划分成若⼲个等价的⼦集(称为等价类),使得每个⼦集中的⼀个典型值在测试中的作⽤与这⼀⼦集中所有其它值的作⽤相同有效等价类:对于程序的需求规格说明书来说是合理的,有意义的的输⼊数据组成的集合。
利⽤有效性等价类可以检验程序是否实现了规格说明书中所要求的功能或性能。
⽆效等价类:与有效等价类正好相反,⽆效等价类指对程序的规格说明是不合理的或⽆意义的数据所构成的集合。
⽆效等价类⾄少应该有⼀个,也可能有多个。
如何划分等价类:⾸先从程序的规格说明书种找出各个输⼊条件,在为每个输⼊条件划分两个或多个等价类,形成若⼲的互不相交的⼦集确定等价类划分法设计测试⽤例通常分两步进⾏:1. 确定等价类,列出等价类表。
2. 确定测试⽤例。
等价划分类的原则:1. 按区间划分: 在输⼊条件规定了取值范围或值的个数的情况下,则可以确⽴⼀个有效等价类和两个⽆效等价类。
实验一黑盒测试法——等价类划分法实验目的:1.掌握等价类划分的方法2.掌握按等价类方法设计测试用例实验内容:1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。
#include "iostream.h"void main(){int a,b,c;cout<<"请输入三角形的三条边(界于1-100之间)"<<endl;cin>>a>>b>>c;if(a<=1||a>=100)cout<<"a的值超过允许的范围!";if(b<=1||b>=100)cout<<"b的值超过允许的范围!";if(c<=1||c>=100)cout<<"c的值超过允许的范围!";if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!";if(a==b&&b==c)cout<<"是等边三角形!";if(a==b||b==c||a==c)cout<<"是等边三角形!";if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!";三角形问题:划分等价类测试用例:1、覆盖有效等价类的测试用例2、覆盖无效等价类的测试用例缺陷报告:输入数据如图所示:以下部分由BUG修改人填写输入数据如图所以:以下部分由BUG修改人填写以下部分由BUG修改人填写以下部分由BUG修改人填写以下部分由BUG修改人填写2、某城市电话号码由三部分组成,分别是:1)地区码:以0开头的三位或者四位数字(包括0);2)电话号码:以非0、非1开头的七位或者八位数字。
软件测试功能测试方法软件测试功能测试方法功能测试方法黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。
黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
黑盒测试试图发现以下类型的错误:1)功能错误或遗漏;2)界面错误;3)数据结构或外部数据库访问错误;4)性能错误;5)初始化和终止错误。
一、黑盒测试的测试用例设计方法·等价类划分方法·边界值分析方法·错误推测方法·因果图方法·判定表驱动分析方法·正交实验设计方法·功能图分析方法等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.无效等价类:与有效等价类的定义恰巧相反.设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.2)划分等价类的方法:下面给出六条确定等价类的原则.①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号.②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.边界值分析法边界值分析方法是对等价类划分方法的补充.(1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.(2)基于边界值分析方法选择测试用例的原则:1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.3)根据规格说明的每个输出条件,使用前面的原则1).4)根据规格说明的每个输出条件,应用前面的原则2).5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.7)分析规格说明,找出其它可能的边界条件.错误推测法错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.利用因果图生成测试用例的基本步骤:(1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.(2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.(4) 把因果图转换为判定表.(5) 把判定表的每一列拿出来作为依据,设计测试用例.从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.判定表通常由四个部分组成.条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.判定表的建立步骤:(根据软件规格说明)①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.②列出所有的条件桩和动作桩.③填入条件项.④填入动作项.等到初始判定表.⑤简化.合并相似规则(相同动作).B. Beizer 指出了适合使用判定表设计测试用例的条件:①规格说明以判定表形式给出,或很容易转换成判定表.②条件的排列顺序不会也不影响执行哪些操作.③规则的排列顺序不会也不影响执行哪些操作.④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.黑盒测试的优点1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash了2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因黑盒测试的缺点1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。
《软件测试技术》实验报告实验序号:04实验项目名称:黑盒测试一、实验目的及要求掌握用等价类、边界值分析法、因果图的方法设计测试用例二、实验设备(环境)及要求实验在计算机系的机房进行,安装了VC6.0,Java SDK,TurboC等软件,学生能采用C语言,C++,或Java语言进行编程。
三、实验内容与步骤任务一:佣金问题问题描述如下:一酒水销售公司指派销售员销售各种酒水。
白酒卖168元瓶,红酒卖120元瓶,啤酒卖5元瓶。
白酒每月的供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶,各个销售员每月至少要售出白酒50瓶,红酒30瓶,啤酒300瓶。
月末,每个销售员上报他所在区域的销售业绩。
这样酒水销售公司就知道了当月的销售情况,并根据销售额计算佣金提成如下:2万以下(含):4%;2万(不含)~4.5万(含):1%4.5万以上(不含):0.5%这样,佣金程序生成月份销售报告,汇总售出的白酒、红酒和啤酒总数,销售公司的总销售额和各个销售员的佣金。
这个问题分为三个不同的部分:输入数据部分,用来处理输入数据的有效性;销售额计算部分;佣金(提成)计算部分.1、充分考虑输入有效性校验,编写佣金问题的代码;2、按照等价类划分的思想,设计等价类测试用例;1)佣金问题中,首先分析输入和输出,注意分析佣金问题中给出和隐含的对输入条件的要求:2)针对输入进行等价类划分,形成等价类列表,并为每一个等价类编号;3)从等价类划分的表格中设计测试用例:为有效等价类设计测试用例,为每一个无效等价类至少设计一个测试用例3、执行测试,记录发现的问题。
任务二:下一天问题1、对于NextDate问题,分析它的输入限制;2、从输入限制的边界设计测试用例;3、执行测试,记录结果。
任务三:自动售货机问题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下[橙汁]或[啤酒]的按钮,则相应的饮料酒送出来。
实验1 黑盒测试用例设计
1、实验目的
1、掌握黑盒测试用例的设计方法。
2、综合运用所学的黑盒测试方法设计测试用例。
2、实验准备
…
1、黑盒测试用例的设计方法。
2、测试用例模板。
3、实验内容
基本训练
实验一:假设现有以下的三角形分类程序。
该程序的功能是,读入代表三角形边长的3个整数,判定它们能否组成三角形。
如果能够,则输出三角形是等边、等腰或任意三角形的分类信息。
图1显示了该程序的流程图和程序图。
为以上的三角形分类程序设计一组测试用例。
@
图1
实验二:为自动售货机设计黑盒测试用例
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
|
扩展训练
题目1:利用因果图法编写测试用例。
某奖金计算软件实现功能如下:
1该软件可以计算某公司的年终奖,该公司员工分为普通员工和管理人员。
2员工表现分为普通、优秀和特殊贡献(普通和优秀员工都可以有特殊贡献,普通员工表现普通和管理人员表现普通拿的工资是不同的)。
}
3 根据员工的分类和表现,将奖金分为1类奖金,2类奖金——。
具体分析:
输入条件:员工类别:普通员工A1、管理人员A2
员工表现:普通B1、优秀B2、特殊贡献B3
输出条件:奖金类别:1类奖金C1、2类奖金C2——
…
其中:A1和A2是互斥的,B1和B2是互斥的,B1和B3,B2和B3可以同时满足。
普通员工:A1+B1—>C1
A1+B2 —〉C2
A1+B1+B3—〉C3
A1+B2+B3—〉C4
】
管理人员:A2+B1—〉C5
A2+B2—〉C6
A2+B1+B3—〉C7
A2+B2+B3—〉C8
4、实验步骤
~
基本训练
实验一步骤:
第一步:确定测试策略。
在本例中,对被测程序的功能有明确的要求,即:(1)判断能否组成三角形;
(2)识别等边三角形;
!
(3)识别等腰三角形;
(4)识别任意三角形。
因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。
第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。
等价分类法:
有效等价类:
【
输入3个正整数:
(1)3数相等
(2)3数中有2个数相等,比如AB相等
(3)3数中有2个数相等,比如BC相等
(4)3数中有2个数相等,比如AC相等
%
(5)3数均不相等
(6)2数之和不大于第3数,比如最大数是A
(7)2数之和不大于第3数,比如最大数是B
(8)2数之和不大于第3数,比如最大数是C
无效等价类:
》
(9)含有零数据
(10)含有负整数
(11)少于3个整数
(12)含有非整数
(13)含有非数字符
<
边界值法:
(14)2数之和等于第3数
猜错法:
(15)输入3个零
(16)输入3个负数
!
第三步:提出一组初步的测试用例,如下表所示:
请分别用弱健壮和强一般分别设计测试用例!
{
$
实验二步骤:
(1)列出原因和结果
;
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
.
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
!
24.送出橙汁饮料
25.送出啤酒饮料
(2)画出因果图,如图2示。
所有原因结点列在左边,所有结果结点列在右边。
建立中
间结点,表示处理的中间状态。
中间结点:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
"
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
图2
(3)转换成判定表
(4)在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
,
5、实验思考
(1)如何确定等价类
(2)如何使用判定表设计测试
¥
附录:NextData问题黑盒测试用例设计一、问题描述
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤year ≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上下一天的日期。
例如,输入为2005年11月29日,则该程序的输出为2005年11月30日。
请用黑盒测试方法设计测试用例。
三、设计测试用例
1. 用边界值测试方法设计测试用例
%
用健壮性测试法设计测试用例,按照下列步骤进行:
(1)分析各变量的取值
健壮性测试时,各变量分别取:略小于最小值、最小值、略高于最小值、正常值、略低于最大值、最大值和略大于最大值。
month:-1,1,2,11,12,13;
day:-1,1,2,30,31,32
~
year:1899,1900,1901,1975,2049,2050,2051;
(2)测试用例数
有n个变量的程序,其边界值分析会产生6n+1个测试用例。
这里有3个变量,因此会产生19个测试用例。
(3)设计测试用例,见表1-1。
NextDate函数的复杂性来源于两个方面:一是输入域的复杂性(即输入变量之间逻辑关系的复杂性),二是确定闰年的规则。
但是在进行健壮性测试时,没有考虑输入变量之间的逻辑关系,也没有考虑和闰年相关的问题,因此在设计测试用例时存在遗漏问题,比如和判断闰年相关的日期:、等。
、
表1-1NextDate函数测试用例
2. 用基于判定表的方法设计测试用例
%
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
month变量的有效等价类:
M1 = { month = 4,6,9,11 }
M2 = { month = 1,3,5,7,8,10 }
M3 = { month = 12 }
{
M4 = { month = 2 }
day变量的有效等价类:
D1={日期:1≤日期≤27}
D2={日期:日期=28}
D3={日期:日期=29}
]
D4={日期:日期=30}
D5={日期:日期=31}
year变量的有效等价类:
Y1 = { year是闰年}
Y2 = { year不是闰年}
<
(2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。
考虑各种有效的输入情况,程序中可能采取的操作有以下六种:
a1:不可能
a2:日期增1
a3:日期复位
a4:月份增1。
a5:月份复位
a6:年增1
(3)根据步骤(1)和(2),画出判定表。
对判定表进行化简。
简化后的判定表,如表1-2所示。
彪1-2 NextDate问题的判定表
表1-2续)
(4)对判定表进行化简。
简化后的判定表,如表1-3所示。
—
表1-3 NextDate函数判定表的精简表
表1-3(续)
(5)设计测试用例
为判定表中的每一列设计一个测试用例,见表1-4。
表1-4 NextDate测试用例。