这里写自定义目录标题
- 测试用例的定义和特征
- 设计测试用例的基本准则
- 黑盒测试用例设计的几种方法
- (一)等价类划分法
- 等价类的类型
- 如何划分等价类
- 等价类划分步骤
- 等价类的划分原则
- 等价类划分法设计测试用例的步骤
- (二)边界值分析法
- 边界值分析法概要
- 为什么使用边界值分析法?
- 边界值分析测试的基本思想
- 边界值分析法的原则
- 怎样用边界值分析法设计测试用例?
- 健壮性测试
- 最坏情况测试
- (三)决策表法
- 决策表法思想
- 决策表应用
- (四)因果图法
- 因果图法产生的背景
- 因果图法设计测试用例思想
- 因果图法的定义
- 因果图中出现的基本符号
- 主要的原因与结果之间的关系
- 因果图法设计测试用例步骤:
- (五)场景法
- 场景法基本原理
- 基本概念
- 场景法设计测试用例的步骤
- (六)正交试验法
- 正交试验设计方法
- 正交表的性质
测试用例的定义和特征
测试用例的定义:
(1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。
(2)测试用例是执行的最小实体。
测试用例的特征:
(1)最有可能抓住错误的;
(2)不是重复的、多余的;
(3)一组相似测试用例中最有效的;
(4)既不是太简单,也不是太复杂。
设计测试用例的基本准则
测试用例的代表性
能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。
测试结果的可判定性
即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
测试结果的可再现性
即对同样的测试用例,系统的执行结果应当是相同的。
黑盒测试用例设计的几种方法
(一)等价类划分法
等价类划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。
定义:将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。
原因:由于实现穷举测试的不可能性,只有从大量的可能数据中选取一部分作为测试用例。
效果:经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。
手段:在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例。
等价类的类型
有效等价类
对规格说明而言,有意义、合理的输入数据所组成的集合;
检验程序是否实现了规格说明预先规定的功能和性能。
无效等价类
对规格说明而言,无意义的、不合理的输入数据所组成的集合;
检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。
如何划分等价类
如何划分?——先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。
举例:划分 加法器程序的等价类,给出测试用例.程序功能计算两个1~100之间整数的和
思考:刚才给出的 测试用例 都是整数,如果输入的是小数、字符怎么办?
只考虑了输入数据的范围,没有考虑输入数据的类型。
考虑输入数据类型和范围
等价类划分步骤
(1)先考虑输入数据的类型(合法型和非法型)
(2)再考虑数据范围(合法型中的合法区间和非法区间)
(3)画出示意图,区分等价类
(4)为每一个等价类编号。
(5)考虑输出,进行补充
等价类的划分原则
按照区间划分——在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。
按照数值划分——在规定了一组输入数据(假设包括 n个 输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。
按照数值集合划分——在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。
按照限制条件或规则划分——在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
细分等价类——在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。
等价类划分法设计测试用例的步骤
(1)确定等价类
(2)建立等价类表,列出所有划分出的等价类
(3)从划分出的等价类中按以下的3个原则设计测试用例:
A 为每一个等价类规定一个唯一的编号 B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
(二)边界值分析法
边界值分析法概要
边界值分析法就是 对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界
为什么使用边界值分析法?
无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。
例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次。
边界值分析测试的基本思想
故障往往出现在输入变量的边界值附近。例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次。
基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说软件失效基本上是由单故障引起的。
边界值分析法的原则
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
怎样用边界值分析法设计测试用例?
(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。
(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
边界值分析法设计测试用例
对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-、max值,对每个变量都重复进行。这样,对于一个有n个变量的程序,边界值分析测试程序会产生4n+1个测试用例。
3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。 再如一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。
4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
6)分析规格说明,找出其它可能的边界条件。
健壮性测试
边界值分析测试的一种扩展,除了取5个边界值外,还需要考虑采用一个略超过最大值(max+)及略小于最小值(min-)的取值,检查超过极限值时系统的情况
健壮性测试最有意义的部分不是输入,而是预期的输出
对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、min-,nom、max-、max, max+值,对每个变量都重复进行。这样,对于一个有n个变量的程序,边界值分析测试程序会产生6n+1个测试用例。
最坏情况测试
边界值分析采用可靠性理论中的单缺陷假设,如果不考虑这种假设,那么,应该关心当多个变量取极值时会出现什么情况。
使用这种思想生成最坏情况的测试用例,
首先对每个变量进行包含最小值min,略高于最小值min+,正常值nom,略低于最大值max-和最大值max五个元素集合的测试,
然后对这些集合进行笛卡儿积计算,以生成测试用例。
最坏情况测试比边界值分析测试以及健壮性测试要彻底,边界值分析测试用例是最坏情况测试用例的真子集。
N变量函数的最坏情况测试,会产生5n个测试用例,而边界值分析只产生4n+1个测试用例
首先对每个变量进行包含略小于最小值min-,最小值min,略高于最小值min+,正常值nom,略低于最大值max-,最大值max,和略大于最大值max+,七个元素集合的测试,然后对这些集合进行笛卡儿积计算,以生成测试用例。
(三)决策表法
决策表法思想
决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。
决策表应用
决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。
利用决策表能够设计出完整的测试用例集合。
运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出
(四)因果图法
因果图法产生的背景
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
因果图法设计测试用例思想
首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),
然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例.
因果图法的定义
是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
因果图中出现的基本符号
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
主要的原因与结果之间的关系
恒等:若c1是1,则e1也为1,否则e1为0;
非:若c1是1,则e1为0,否则e1为1;
或:若c1或c2或c3是1,则e1是1,否则e1为0,“或”可有任意个输入;
与:若c1和c2都是1,则e1为1,否则e1为0,“与”也可有任意个输入。
对于输入条件的约束有4种:
E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1;
I约束(或):a、b、c中至少有一个必须是1,即a、b、c不能同时为0;
O约束(唯一):a和b必须有一个且仅有一个为1;
R约束(要求):a是1时,b必须是1;
对于输出条件的约束只有M约束
M约束(强制):若结果a是1,则结果b强制为0。
因果图法设计测试用例步骤:
分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”。
由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件;
将因果图转换成决策表;
根据决策表中每一列设计测试用例
(五)场景法
场景法基本原理
现在的软件几乎都是用事件触发来控制流程的,象GUI软件、游戏等。事件触发时的情景形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种在软件设计方面的思想可以引入到软件测试中,可以生动地 描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
基本概念
1.基本流 和 备选流
在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,那么我们把这个称为该软件的基本流;
出现故障或缺陷的过程,就用备选流加以标注,这样,备选流就可以是从基本流来的,或是由备选流中引出的。
分析:图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。
场景法设计测试用例的步骤
根据说明,描述出程序的基本流及各项备选流.
根据基本流和各项备选流生成不同的场景.
对每一个场景生成相应的测试用例.
对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值.
(六)正交试验法
利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到.往往因果关系非常庞大,导致利用因果图而得到的测试用例数目多得惊人,给软件测试带来沉重的负担.为了有效的,合理地减少测试的工时与费用,可利用正交试验法进行测试用例的设计.
正交试验设计方法
正交试验设计方法是从大量的试验数据中挑选适量的、有代表性的点,从而合理地安排测试的一种科学的试验设计方法
使用已经造好了的表格——正交表来安排试验并进行数据分析。
正交表的性质
正交表必须满足以下两个性质:
表中任何一列,其所含各种水平的个数都相同。
表的任何两列中,所有各种可能的数对出现的次数都相同。