软件测试课程论文

软件测试课程论文
软件测试课程论文

NANCHANG UNIVERSITY

软件测试

题目: 软件测试课程论文

软件测试实训

目录

一、黑盒测试原理及测试用例设计——等价类划分法 (2)

1.1测试用例的定义和特征 (2)

1.2设计测试用例的基本准则 (2)

1.3等价类划分原则 (2)

1.4等价类划分法设计测试用例 (2)

二、黑盒测试原理及测试用例设计——边界值分析法 (4)

2.1边界值分析法概要 (4)

2.2边界值分析法的思想 (4)

2.3测试用例:找零钱最佳组合 (4)

三、黑盒测试原理及测试用例设计——决策表法 (6)

3.1决策表法思想 (6)

3.2决策表的生成 (6)

3.3决策表的简化 (6)

3.4决策表法设计测试用例 (6)

四、黑盒测试原理及测试用例设计——因果图法设计 (9)

4.1因果图的定义 (9)

4.2因果图法设计测试用例步骤 (9)

五、白盒测试方法——逻辑覆盖法 (11)

5.1语句覆盖 (11)

5.2判定覆盖 (11)

5.3条件覆盖 (11)

5.4判定--条件覆盖 (12)

5.5条件组合覆盖 (12)

5.6路径覆盖 (12)

5.7设计测试用例 (12)

六、基本路径法 (18)

6.1基本路径法的思想 (18)

6.2控制流图 (18)

6.3环形复杂度(环路复杂性) (18)

6.4独立路径 (18)

6.5基本路径测试步骤 (18)

七、LoadRunner基本使用 (20)

八、总结与体会 (24)

九、参考文献 (25)

1

软件测试实训

计科1131班张春娇

一、黑盒测试原理及测试用例设计——等价类划分法

1.1测试用例的定义和特征

测试用例的定义:

(1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。

(2)测试用例是执行的最小实体。

测试用例的特征:

(1)最有可能抓住错误的;

(2)不是重复的、多余的;

(3)一组相似测试用例中最有效的;

(4)既不是太简单,也不是太复杂。

1.2设计测试用例的基本准则

测试用例的代表性

能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。

测试结果的可判定性

即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。

测试结果的可再现性

即对同样的测试用例,系统的执行结果应当是相同的。

1.3等价类划分原则

等价类划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。定义:将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试例。

原因:由于实现穷举测试的不可能性,只有从大量的可能数据中选取一部分作为测试用例。

效果:经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。

手段:在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例。

1.4等价类划分法设计测试用例

输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。

分析程序规格说明书中给出和隐藏的对输入条件的要求,列出等价类表:

2

计科1131班张春娇

软件测试实训

三条边:必须是大于0的整数

三边构成的关系:两边之和必须大于第三边,两边之差必须小于第三边,且必须是大于0的整数

等价类表:

3

软件测试实训

计科1131班张春娇

二、黑盒测试原理及测试用例设计——边界值分析法

2.1边界值分析法概要

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

2.2边界值分析法的思想

故障往往出现在输入变量的边界值附近。例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次。

基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说软件失效基本上是由单故障引起的。

2.3测试用例:找零钱最佳组合

假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。

请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。

一、分析输入的情形。

1.R无效: R > 100 R<=0

2.R有效: 0 < R < = 100 此种情况下再考虑P:

2_1. P无效:P > 100 (钱给多) 2_2. P无效:P < R (钱给少)

2_3. P有效:R<= P <= 100 //无效输出:多找钱少找钱

二、分析输出情形。

考虑输出——找零个数

这里是有效数据,关于" 找给顾客之最少货币个(张)数"的有效取值 50:0/1 10:0/1/2/3/4

5 :0/1

1 :0/1/2/3/4

三、分析规格中每一决策点之情形

考虑输出——找零数额(RR表示找零数额)

无效输入(不找零):

R > 100

R <= 0

0 < R < = 100 P > 100 0 < R < = 100 P < R

输出为相应错误提示信息

有效输入(找零):

0 < R < = 100 R<= P <= 100

4

计科1131班张春娇

软件测试实训

此时考虑的输出:(RR=P-R 假设计算正确不考虑此种情况无效输出)

0<=RR<4 5<=RR<10 10<=RR<50

50<=RR<100

RR:0、1、4、5、9、10、49、50、99

五、为满足以上之各种情形,测试用例设计如下: 1. 货品价格 = 101 2. 货品价格 = 0 3.货品价格 = -1

4. 货品价格 = 100, 付款金额 = 101

5. 货品价格 = 100, 付款金额 = 99

6. 货品价格 = 100, 付款金额 = 100 不找零

7. 货品价格 = 99, 付款金额 = 100 N1=1

8. 货品价格 = 96, 付款金额 = 100 N1=4 9. 货品价格 = 95, 付款金额 = 100 N5=1 10. 货品价格 = 91, 付款金额 = 100 N5=1, N1=4 11. 货品价格 = 90, 付款金额 = 100 N10=1

12. 货品价格 = 51, 付款金额 = 100 N10=4, N5=1,N1=4 13. 货品价格 = 50, 付款金额 = 100 N50=1

14. 货品价格 = 1, 付款金额 = 100 N50=1,N10=4,N5=1,N1=4

5

软件测试实训

计科1131班张春娇

三、黑盒测试原理及测试用例设计——决策表法

3.1决策表法思想

决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具。

在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。

3.2决策表的生成

决策表通常由以下4部分组成:

条件桩—列出问题的所有条件

条件项—针对条件桩给出的条件列出所有可能的取值

动作桩—列出问题规定的可能采取的操作

动作项—指出在条件项的各组取值情况下应采取的动作

(1)确定规则的个数。

有n个条件的决策表有2n个规则(每个条件取真、假值)。

(2)列出所有的条件桩和动作桩。

(3)填入条件项。

(4)填入动作项,得到初始决策表。

(5)简化决策表,合并相似规则。

若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。

合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。

3.3决策表的简化

简化是以合并相似规则为目标;

若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。

3.4决策表法设计测试用例

某厂对一部分职工重新分配工作,分配原则是:

(1)年龄不满20岁,文化程度是小学者脱产学习,文化程度是中学者当电工;

(2)年龄满20岁但不足50岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大学者技术员;

(3)年龄满50及50以上,文化程度是小学或中学者当材料员,文化程度是大学者当技术员。

6

计科1131班张春娇

软件测试实训

试分析规格说明书,建立决策表,并简化

决策表的用例测试设计条件:

A1:{A:A<20}

A2:{A:20≤A≤50}

A3:{A:50≤A}

C1:{C:C=小学}

C2:{C:C=小学||C=中学}

C3:{C:C=大学}

S1:{S:S=男}

S2:{S:S=女}

根据条件分析,则有18种规则:

化简后的规则:

7

软件测试实训

计科1131班张春娇

8 计科1131班张春娇

软件测试实训

四、黑盒测试原理及测试用例设计——因果图法设计

4.1因果图的定义

是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

4.2因果图法设计测试用例步骤

分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”。

由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件;

将因果图转换成决策表;

根据决策表中每一列设计测试用例

某软件规格说明书包含“订货单处理程序”的处理逻辑描述为:如果订货金额不足500 元且未过期,则向顾客发出批准单和提货单,已过期的什么通知也不发;如果订货金额超过500 但不足1000 ,则发出批准单和提货单,对已经过期的发过期通知单;如果订货金额超过1000 ,不论是否过期,都要发出批准单和提货单。

要求:画出因果图,并生成判定表和设计测试用例:

实验分析如下:

首先列出原因为:1、订货金额不足500 元;2、订货金额超过500 但不足1000;

3、订货金额超过1000;

4、过期。

结果则是:21、发出批准单和提货单;22、无通知;23、发过期通知单。

实验结果:原因1、2、3不能同时发生,所以对其施加异约束E,具有E约束的因果图如下:

根据因果图建立的判定表如下:

9

软件测试实训

计科1131班张春娇

设计测试用例如下,用例ID与判定表中的对应:

10

计科1131班张春娇

软件测试实训

五、白盒测试方法——逻辑覆盖法

5.1语句覆盖

语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

测试用例的设计格式如下:

输入的(A, B, X),输出的(A, B, X)

语句覆盖率

已执行的可执行语句占程序中可执行语句总数的百分比

复杂的程序不可能达到语句的完全覆盖

语句覆盖率越高越好

检查所有语句

结构简单的代码的测试效果较好

容易实现自动测试

代码覆盖率高

如果是程序块覆盖,则不涉及程序块中的源代码

优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件是无法测试的。如在多分支的逻辑运算中无法全面的考虑。语句覆盖是最弱的逻辑覆盖。

5.2判定覆盖

判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。

判定覆盖又称为分支覆盖。

说明:以上仅考虑了两出口的判断,我们还应把判定覆盖准则扩充到多出口判断(如Case语句)的情况。因此,判定覆盖更为广泛的含义应该是使得每一个判定获得每一种可能的结果至少一次。

优点:判定覆盖具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

缺点:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。判定覆盖仍是弱的逻辑覆盖。

5.3条件覆盖

在设计程序中,一个判定语句是由多个条件组合而成的复合判定,判定(a)&&(b||c)包含了三个条件:a,b和c。为了更彻底的实现逻辑覆盖,可以采用条件覆盖。

条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。

在图例中,我们事先可对所有条件的取值加以标记。

优点:增加了对条件判定情况的测试,增加了测试路径。

11

软件测试实训

计科1131班张春娇

缺点:条件覆盖不一定包含判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

5.4判定--条件覆盖

判定/条件覆盖实际上是将判定覆盖和条件覆盖结合起来的一种方法,

就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判定的可能结果也至少出现一次。

设计测试用例覆盖4个条件的8种取值以及4个判定分支。

分析:从表面上看,判定/条件覆盖测试了各个判定中的所有条件的取值,但实际上,编译器在检查含有多个条件的逻辑表达式时,某些情况下的某些条件将会被其它条件所掩盖。因此,判定/条件覆盖也不一定能够完全检查出逻辑表达式中的错误。

优点:能同时满足判定、条件两种覆盖标准。

缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

5.5条件组合覆盖

条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。

优点:条件组合覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。

缺点:线性地增加了测试用例的数量。

5.6路径覆盖

路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。

分析:

虽然前面一组测试用例满足了路径覆盖,但并没有覆盖程序中所有的条件组合,即满足路径覆盖的测试用例并不一定满足组合覆盖。

说明:

对于比较简单的小程序,实现路径覆盖是可能做到的。但如果程序中出现较多判断和较多循环,可能的路径数目将会急剧增长,要在测试中覆盖所有的路径是无法实现的。为了解决这个难题,只有把覆盖路径数量压缩到一定的限度内,如程序中的循环体只执行一次。

在实际测试中,即使对于路径数很有限的程序已经做到路径覆盖,仍然不能保证被测试程序的正确性,还需要采用其他测试方法进行补充。

5.7设计测试用例

设计测试用例,实现语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖.

void DoWork(int x,int y,int z)

{

int k=0,j=0;

12

计科1131班张春娇

软件测试实训

if((x>3)&&(z<10))

{

k=x*y-1; //语句块1

j=sqrt(k);

}

if((x= =4)||(y>5))

{

j=x*y+10; //语句块2

}

j=j%3; //语句块3

}

试做出三角形问题的语句覆盖,条件覆盖,判定覆盖,判定-条件覆盖、组合条件覆盖的测试用例.并注明满足覆盖的条件

13

软件测试实训

计科1131班张春娇

1)判定/条件覆盖

对于第一个判定a>0&&b>0&&c>0 :

条件a>0 取真值记为T1,取假值记为-T1 条件b>0 取真值记为T2,取假值记为-T2 条件c>0 取真值记为T3,取假值记为-T3

对于第二个判定( a+b>c)&&(a+c>b)&&(b+c>a ):

条件a+b>c 取真值记为T4,取假值记为-T4 条件a+c>b 取真值记为T5,取假值记为-T5 条件b+c>a 取真值记为T6,取假值记为-T6

2.

对下面的流程图用逻辑覆盖法设计测试用例(至少三种)

14

计科1131班张春娇

相关主题
相关文档
最新文档