一、什么是功能测试?
功能测试 就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
Functionaltesting(功能测试),也称为behavioral testing(行为测试)、黑盒测试或数据驱动测试
黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
用例设计
(1)等价类划分方法
(2)边界值分析方法
(3)错误推测方法
(4)因果图方法
(5)判定表驱动分析方法
(6)正交实验设计方法
(7)功能图分析方法
等价类划分法
等价类划分法
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
什么是等价类?
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试
因此可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,
就可以用少量代表性的测试数据,取得较好的测试结果。
等价类的划分
有效等价类和无效等价类
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义相反。
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
划分等价类的标准: 集合划分为互不相交的一组子集,而子集的并是整个集合
下面给出六条确定等价类的原则:
1. 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
如:输入值是学生成绩,范围是0~100
2. 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类
3. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
4. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种的四个值作为四个有效等价类。
另外把四种学历之外的任何学历作为无效等价类。
5. 在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
6. 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应在将该等价类进一步的划分为更小的等价类。
等价类测试用例
在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:
1)为每一个等价类规定一个唯一的编号;
2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
实战演习
三角形问题
某程序规定:“输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形、等边三角形时,分别做计算。。。”
用等价类划分方法为该程序进行测试用例设计。
分析题目中给出和隐含的对输入条件的要求:
(1)整数
(2)三个数
(3)非零数
(4)正数
(5)两边之和大于第三边
(6)等腰
(7)等边
如果a、b、c满足条件(1)~(4),则输出下列四种情况之一
1)如果不满足条件(5),则程序输出为“非三角形”
2)如果三条边相等即满足条件(7),则程序输出为“等边三角形”
3)如果只有两条边相等,及满足条件(6),则程序输出为“等腰三角形”
4)如果三条边都不相等,则程序输出为 “一般三角形”
列出等价类表并编号
覆盖有效等价类的测试用例
a b c覆盖等价类号码
3 4 5 (1)(2)(3)(4)(5)(6)(7)
4 4 5 (1)(2)(3)(4)(5)(6)(7)(8)
4 5 5 (1)(2)(3)(4)(5)(6)(7)(9)
5 4 5 (1)(2)(3)(4)(5)(6)(7)(10)
4 4 4 (1)(2)(3)(4)(5)(6)(7)(11)
覆盖无效等价类的测试用例
边界值分析法
笛卡尔积
笛卡尔(Descartes)乘积又叫直积。假设集合A=a,b,集合B=0,1,2,则两个集合的笛卡尔积为(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)
类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。
设R,S为集合,用R中元素为第一元素,S中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做R与S的笛卡尔积,记作RxS.
笛卡尔积的符号化为:
R×S={(x,y)|x∈R∧y∈S}
边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
编写测试用例步骤:
1. 根据被测对象的输入(或输出)要求确定边界值。
2. 选取等于、刚刚大于、刚刚小于边界的值作为测试数据。
注:基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等处取值
单缺陷假设和多缺陷假设:
单缺陷假设:
是指“失效是由一个缺陷引起的”。要求测试用例只使一个变量取极值,其他变量均取正常值
多缺陷假设:
是指“失效是由两个或两个以上缺陷同时作用引起的”,要求测试用例时同时让多个变量取极值。
边界值测试分类
|
单变量假设 |
|