系统测试教案稿_第1页
系统测试教案稿_第2页
系统测试教案稿_第3页
系统测试教案稿_第4页
系统测试教案稿_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件测试

软件测试基本概念

软件测试技术

实例

2

软件测试基本概念

什么是软件测试?目标是什么?

测试步骤

测试阶段信息流

3

]软件测试的概念

1.软件测试是按照特定的规则,发现软件错误的

过程;

2.软件测试是对软件规格说明、设计和编码的最

后复审;

3.软件测试在软件生存周期中横跨两个阶段:模

块和单元测试在编码阶段,综合测试在独立的

测试阶段;

4.软件测试的工作量一般占软件开发总工作量的

40%以上,有的测试成本占到其它步骤总成本的

3—5倍。

4

《软件测试的目标

1.软件测试是为了发现错误而执行程序的过程;

2.测试是程序的执行过程,目的在于发现错误;

3.软件测试中需要数据,即为测试而精心设计的测试

用例,利用测试用例去运行程序,帮助发现程序错误;

4.一个好的测试用例在于能发现至今未发现的错误;

5.一个成功的测试是发现了至今未发现的错误的测试。

6.软件测试绝对不是要证明程序的正确性,也证明不

了程序的正确性.

5

《软件测试与软件调试的区别

内容软件测试软件调试

目的从一个侧面证明程序员的失败;证明程序员的正确;

方法从已知条件开始,使用预先定义的程序,从不可知内部条件开始,除

且有预知的结果,不可预见的仅是程序是统计性调试外,结果是不可

否通过测试;预见的;

约束有计划并且要进行测试设计;不受时间约束;

过程发现错误、改正错误、重新测试的过程;是一个推理的过程;

方式执行是有规程的;执行要求程序员进行必要的

推理;

测试由独立的测试组在不了解软件设计的由了解详细设计的程序员完

人员条件下完成;成;

工具大多数测试的执行和设计可由工具支持。程序员能用的工具主要是调

试器。6

&软件测试的原则⑴

1.设计测试用例,要给出测试的预期结果。一个测试

用例,必须由两部分组成:对输入数据的描述及其

这些输入数据所产生的程序预期结果的精确描述。

2.设计非法输入用例。当有非法输入时,测试程序

是否能够拒绝接受那些非法输入并给出提示信息。

3.进行回归测试,对程序的任何修改,使用以前测试

用例,重新进行测试,有助于发现修改程序引起

的新错误。

&软件测试的原则(2)

4.集中测试容易出错的程序段。测试统计结果表明:

一段程序中发现的错误越多,则其中存在错误的概

率也就越大。为了提高测试效率,在深入测试时,

要集中测试那些容易出错的程序段。

5.开发小组与测试小组应分离,二者在思想上、方法

上是不一样的,前者是建设性的,后者是“破坏性”

的。因此二者分离是成立测试小组的基本要求。

8

软件测试方法和技术

代码会审

「人工测试走查和排练

(代码复审)

办公桌检查

软件测试Y

机器测试白盒测试技术

I(动态测试)

黑盒测试技术

9

《软件测试方法和技术

1.人工测试

代码复审采用人工方式进行,目的在于检查程

序的静态错误。

2.机器测试

(1)在设定的测试数据上执行被测程序的过程,也称

为动态测试;

(2)动态测试包括:测试用例、执行被测程序和分析

执行结果并发现错误的过程。

10

&软件测试步骤

步骤测试内容时间

单元将每一个模块作为一个单独的测试单元,保证每个模块作编码

测试为一个单元能正确运行。阶段

子系统将经过单元测试的模块放在一起形成一个子系统来测试,

测试以测试模块间的接口正确性作为主要任务。

系统将经过测试的子系统装配成一个完整的系统来测试,检验集中测

测试系统是否确实能实现需求规格说明书中的功能,以及系统的试阶段

动态特征是否符合预定要求。系统测试是指整个计算机系统(

包括软硬件)的测试,可与系统的安装和验收相结合进行。

验收在用户的参与下,把软件系统作为单一的实体进行测试,验收

测试使软件系统能满足用户的需要。测试内容与系统测试基本相阶段

同。

平行新旧两个系统同时运行进行比较,避免风险的同时给用户运行

测试对新系统一段熟悉的时间。阶/

学元测试

在单元测试期间着重从下述5个方面对模块进

行测试。

1.模块接口

主要检查下述几个方面:参数的数目、次序、

属性或单位素统与变元是否一致;是否修改了只

作输入用的变元;全局变量的定义和用法在各个

模块中是否一致。

2.局部数据结构

3.重要的执行通路

12

4.出错处理通路

当评价出错处理通路时,应该着重测试下

述一些可能发生的错误:

(1)对错误的描述是难以理解的;

(2)记下的错误与实际遇到的错误不同;

⑶在对错误进行处理之前,错误条件已经引起

系统干预;

(4)对错误的处理不正确;

(5)描述错误的信息不足以帮助确定造成错误的

位置。

5.边界条件■

集成测试

■不论是子系统测试还是系统测试,都兼有检测和组

装两重含义,通常称为集成测试。

■由模块组装成程序时有两种方法:

1、非渐增式测试方法

2、渐增式测试方法:a.自顶向下

b.自底向上。

14

顶向下集成

■方法:

从主控制模块开始,沿着程序的控制层次

向下移动,逐渐把各个模块结合起来。在把附

属于(及最终附属于)主控制模块的那些模块

组装到程序结构中去时,或者使用深度优先的

策略,或者使用宽度优先的策略。

15

自顶向下集成

把模块结合进软件结构的具体过程由下述4个步骤完成:

第一步,对主控制模块进行测试,测试时用存根程序

代替所有直接附属于主控制模块的模块;

第二步,根据选定的结合策略(深度优先或宽度优先),

每次用一个实际模块代换一个存根程序(新结合进

来的模块往往又需要新的存根程序);

第三步,在结合进一个模块的同时进行测试;

第四步,为了保证加入模块没有引进新的错误,可能

需要进行回归测试(即,全部或部分地重复以前做

过的测试)。

16

4

M]

s4

自顶向下结合

17

a底向上集成

实现自底向上结合策略的步骤:

第一步,把低层模块组合成实现某个特定的软件子

功能的族;

第二步,写一个驱动程序(用于测试的控制程序),

协调测试数据的输入和输出;

第三步,对由模块组成的子功能族进行测试;

18

自底向上集成

第四步,去掉驱动程序,沿软件结构自下

向上移动,把子功能族组合起来形成更大

的子功能族。

上述第二步到第四步实质上构成了一个循

环。

19

自底向上结合

20

¥不同集成测试策略的比较

一'般说来,一'种方法的优点正好对应于另一'种

方法的缺点。

自顶向下测试方法的主要优点:不需要测试驱动

程序,能够在测试阶段的早期实现并验证系统的主

要功能,而且能在早期发现上层模块的接口错误。

自顶向下测试方法的主要缺点:需要存根程序,

可能遇到与此相联系的测试困难,低层关键模块中

的错误发现较晚,而且用这种方法在早期不能充分

展开人力。

可以看出,自底向上测试方法的优缺点与上述

自顶向下测试方法的优缺点刚好相反。

21

土不同集成测试策略的比较

混合策略:

(1)改进的自顶向下测试方法。基本上使用自顶向下的测试

方法,但是在早期使用自底向上的方法测试软件中的少

数关键模块。一般的自顶向下方法所具有的优点在这种

方法中也都有,而且能在测试的早期发现关键模块中的

错误;但是,它的缺点也比自顶向下方法多一条,即测

试关键模块时需要驱动程序。

(2)混合法。对软件结构中较上层使用的自顶向下方法与

对软件结构中较下层使用的自底向上方法相结合。这种

方法兼有两种方法的优点和缺点,当被测试的软件中关

键模块比较多时,这种混合法可能是最好的折衷方法。

回归测试

回归测试是指重新执行已经做过的测试

的某个子集,以保证软件发生变化时没有带

来非预期的副作用。

23

回归测试

任何成功的测试都会发现错误,而且错误必

须被改正。每当改正软件错误的时候,软件配置

的某些成分(程序、文档或数据)也被修改了。

回归测试就是用于保证由于调试或其他原因

引起的变化,不会导致非预期的软件行为或额外

错误的测试活动。

24

■回归测试

回归测试可以通过重新执行全部测试用例的一

个子集人工地进行,也可以使用自动化的捕获回放

工具自动进行。

利用捕获回放工具,软件工程师能够捕获测试

用例和实际运行结果,然后可以回放(即重新执行

测试用例),并且比较软件变化前后所得到的运行

结果。

25

回归测试集是指已执行过的测试用例的子集。

回归测试集包括3类不同的测试用例:

(1)检测软件全部功能的代表性测试用例;

(2)专门针对可能受修改影响的软件功能的附

加测试;

(3)针对被修改过的软件成分的测试。

26

确认测试

■F认测试也称为验收测试,它的目标是验证软件的

有效性。

■验证指的是保证软件正确地实现了某个特定要求的一

系列活动。

确认指的是为了保证软件确实满足了用户需求而进

行的一系列活动。

软件有效性的一个简单定义是:如果软件的功能和

性能如同用户所合理期待的那样,软件就是有效的。

需求分析阶段产生的软件需求规格说明书,准确地描

述了用户对软件的合理期望,因此是软件有效性的标

准,也是进行确认测试的基础。

27

确认测试(Alpha测试与Beta测试)

Alpha测试由用户在开发者的场所进行,

并且在开发者对用户的“指导”下进行测试。

A1pha测试是在受控的环境中进行的。

Beta测试由软件的最终用户们在一个或多

个客户场所进行。Beta测试是软件在开发者不

能控制的环境中的“真实”应用。

28

,软件测试与开发各阶段关系

f|需求分析»|设计编程—]

一确认测试V—集成测试V一单元测试V

29

测试阶段信息流

测试

分析改正的软件

测试

软件配置预率

结N.据

测试配置果

可靠性

、分析,

测试工具预测的可靠性.

30

&软件测试技术

设计测试方案是测试阶段的关键技术问题。

测试方案包括具体的测试目的(例如,预定

要测试的具体功能),应该输入的测试数据和预

期的结果。

把>测试数据和预期的输出结果称为测试用例。

其中最困难的问题是设计测试用的输入数据。

31

1|软件测试技术

两种常用的测试方法

■白盒测试:结构测试

■黑盒测试:功能测试

32

&软件测试技术

■白盒测试把测试对象看做一个透明的盒子,它

允许测试人员利用程序内部的逻辑结构及有关

信息,设计或选择测试用例,对程序所有逻辑

路径进行测试。

■通过在不同点检查程序的状态,确定实际的状

态是否与预期的状态一致。因此白盒测试又称

为结构测试或逻辑驱动测试。

33

&软件测试技术

■黑盒测试是把测试对象看做一个黑盒子,测试

人员完全不考虑程序内部的逻辑结构和内部特

性,只依据程序的需求规格说明书,检查程序

的功能是否符合它的功能说明。

■黑盒测试又叫做功能测试或数据驱动测试。

34

&软件测试技术

■白盒测试对程序模块的所有的执行路径至少测

试一次;对所有的逻辑判定,取“真”与取

“假”的两种情况都至少测试一次;

■黑盒测试发现程序中的错误,必须在所有可能

的输入条件和输出条件中确定测试数据,来检

查程序是否都能产生正确的输出。

35

&软件测试技术

白盒方法穷尽测试实例:

循环《20次

36

&软件测试技术

包含的不同执行路径数达夕〃条,对

每一条路径进行测试需要1毫秒,假定一

年工作365x24小时,要想把所有路径

测试完,需3170年。

37

软件测试技术

黑盒方法穷尽测试实例:

PZ

T

38

&软件测试技术

>在字长为32位的计算机上运行。若TY

取整数,按黑盒方法进行穷举测试,可能采

用的测试数据组:

232x232=264

如果测试一组数据需要1毫秒,一年工作

365义24小时,完成所有测试需5亿年。

39

&软件测试技术

■软件的穷尽测试是不现实的,因此测试

无法证明正确性。

■如何花最少的费用,得到最好的测试效

果?...测试用例的设计。

40

&软件测试技术

一、白盒测试称为结构测试,测试者了解被测程序的

内部结构和处理过程,对程序的所有逻辑路径进行

测试,在不同点检查程序状态,确定实际状态与预

期状态是否一致。

二、白盒测试从程序的逻辑结构入手,按照一定的原

贝山来设计测试用例和测试数据,因此白盒测试法

也称为逻辑覆盖法。

41

&软件测试技术

”由白盒测试产生的测试实例应具有下列功能:

1.保证在模块中的独立路径最少被检查一次;

2.检查每个逻辑判断的真假两种情况;

3.对每个循环变量的初值、中间值和终止进行检查;

4.检查程序的内部结构是否有效。

四.通过白盒测试发现的错误:

1.程序中的逻辑错误和不正确的假设和条件;

2.没预料到的意外路径;

3.语法检查未发现的印刷或书写错误。

42

一、逻辑覆盖

逻辑覆盖:逻辑覆盖法是以程序内部的逻

辑结构为基础的设计测试用例的技术。从覆

盖源程序语句和路径的详尽程度分析,有以

下不同的覆盖标准:

语句覆盖判定-条件覆盖

判定覆盖条件组合覆盖

条件覆盖路径覆盖

43

软件测试技术示例

示例

路径:

ace---L1abd---L2

abe---L3acd---L4

44

&软件测试技术示例

对于第一个判断:

条件A>1取真为取假为彳

条件B=0取真为T2,取假为石

对于第二个判断:

条件A=2取真为T3,取假为因

条件X>1取真为T*取假为医

45

I软件测试技术示例

Ll(afc-e)

={(A>1)and(B=0)}and{(A=2)or(X/A>1)}

=(A>1)and(B=0)and(A=2)or

(A>1)and(B=0)and(X/A>1)

=(A=2)and(B=0)or

(A>1)and(B=0)and(X/A>1)

46

软件测试技术示例

L2(afb.d)

=|(A>1]and(B=0)|and|(A=2)or(X>

=[(A>1)or(B=0)j>and|(A=2)and(X>l)j>

=(A>1)and(A=2)and(X>1)or

(B=0)and(A=2)and(X>1)

=(A<1)and(X<1)or

(Bw0)and(Aw2)and(X<1)

47

软件测试技术示例

L3(aTbTc)

={(A>1]and(B=0)}and{(A=2)or(X>1)}

二(A〉1)and(X>1)or

(B=0)and(A=2)or(B=0)and(X>1)

=(A<1)and(X>1)or

(Bw0)and(A=2)or(Bw0)and(X>1)

48

软件测试技术示例

L4(a->c->d)

={(A>1)and(B=0)}and{(A=2)or(X/A>1)}

=(A>1)and(B=0)and(AW2)and(X/A<1)

49

口I软件测试技术示例

①语句覆盖

❖设计若干个测试用例,运行被测程序,使

得每一可执行语句至少执行一次。

在图例中,正好所有的可执行语句都在路

径L1上,所以选择路径L1设计测试用

例:

[(2,0,4)]

注:(2,0,4)即:A=2,B=0,X=4下同。

50

软件测试技术示例

②判定覆盖

设计若干个测试用例,运行被测程序,不

仅每个语句至少执行一次,而且每个判定

的每种可能的结果都应该至少执行一次。

对于图例,如果选择路径L3和L4,就

可得满足要求的测试用例:

【(2,1,1)]覆盖[L3]

[(3,0,3)】覆盖【L4】

如果选择路径L1和L2,还可得另一组

可用的测试用例。

声图

I软件测试技术示例

同条件覆盖

小设计若干测试用例,运行被测程序,不仅每个语句

至少执行一次,而且使判定表达式中的每个条件都

取到各种可能的结果。

测试用例覆盖分支条件取值

【(2,0,4)1LITiT2T3T4

1(1,1,1)1L2T1T2T3T4

需要注意的是,条件覆盖不一定满足判定覆盖,如:

测试用例覆盖分支条件取值

【(2,0,1)1L1

"TT2乂T3乂T4

【(1,1,2)】L3TTTT

50图

&软件测试技术示例

④判定/条件覆盖

❖设计足够的测试用例,使得判断表达式

中的每个条件都取到各种可能的值,而

且每个判断表达式也都取到各种可能结

果。

测试用例覆盖分支条件取值

【(2,0,4)1L1TiT2T3T4

1(1,1,1)1L2T1T2T3T4

5竽图

&软件测试技术示例

⑤条件组合覆盖

设计足够的测试用例,运行被测程序,使得

所有可能的条件取值组合至少执行一次。

记①A>B-o

T1T2_

②A>Bwo作

A>B-o作_T1T2卜第一个判断

④A>Bwo作T1T2

⑤X>作T1T2J

⑥X>作T3T4、

⑦作

X>T3T4卜第二个判断

⑧作

X>T3T4_______

T3T4,

5制图

】I软件测试技术示例

测试用例覆盖分支覆盖条件覆盖组合

【(2,0,4)1(LI)TiT2T3T4①,⑤

1(2,1,1)1(L3)TiT2T3T4②,⑥

[(1,0,3)](L3)T\T2T^T4③,⑦

【(1,1,1)](L2)④,⑧

5中图

软件测试技术示例

⑥路径覆盖

就是设计足够的测试用例,覆盖程序中所

有可能的路径。

测试用例通过路径覆盖条件

【(2,0,4)1LlTiT2T3T4

【(1,1,1)1L2

[(1,1,2)]L3T?TITZT4

[30,1)1L4TiT2T3T4

5刎

口.二、控制结构测试

■基本路径测试

57

《控制结构测试

苴太致久加才通过计算程序的环形复杂度,并用

■基本路径测试该复杂度为指南定义执行路径的

>思想:一^、基本集合。

>效果或覆盖标准;

>步骤:

从执行路径的基本集合导出的测试:

_______k1、)ZS■二waq应rbr女二位入

fl、根据过程设计结果画出相应的流图;

2、计算流图的环形复杂度;

3、确定线性独立路径的基本集合;)

4、设计可强制执行基本集合中每条路径的测

I试用例

58

流图的画法

■流图:抽象化的程序流图,突出表现控制流.

A符号。为流图的一个结点,表示一个或多

个无分支语句。

A箭头为边,表示控制流的方向。

59

流图的画法

60

流图的画法

如果判断中的条件表达式是由一个或多个逻辑运

算符(OR,AND,NAND,NOR)连接的复合条

件表达式,则需要改为一系列只有单个条件的嵌

套的判断。

判断结点

ifaORb

thenprocedurex

elseprocedurey;

(a)(b)

61

升算变题复杂度

McCabe方法根据程序控制流的复杂程度定量度

量程序的复杂程度,这样度量出的结果称为程序的

环形复杂度。

■环形(环路)复杂度方法,根据程序内单条件分支

数或循环个数来度量程序的复杂度.

■流图G的环形复杂度:

AV(G)=流图区域数

>V(G)=边数一结点数+2

>V(G)=单条件判定数+1

62

确定线性独立路径的基本集合

■独立的路径是:

pathl:1-11

path2:1-2-3-4-5-10-1-11

path3:1-2-3-6-8-9-10-1-11

path4:1-2-3-6-7-9-10-1-11

■路径pathl,path2,path3,path4组成了控制

流图的一个基本路径集。

63

黑盒测试技术

黑盒测试着重测试软件功能。黑盒测试并不能取代白

盒测试,它是与白盒测试互补的测试方法,它很可能发现

白盒测试不易发现的其他类型的错误。

黑盒测试力图发现下述类型的错误:

①功能不正确或遗漏了功能;

②界面错误;

③数据结构错误或外部数据库访问错误;

④性能错误;

⑤初始化和终止错误。

64

黑盒测试技术

黑盒测试

>等价类法

>边界值分析法

65

等价划分(等价类法)

等价类法

>思想:

>划分等价类的经验

>等价类法步骤

66

划分等价类思想

■把所有可能的输入数据,包括有效的和无效的划

分成若干个等价类,则可以合理地做如下假设:每类

中的一个典型值在测试中的作用与其他值的作用相同。

因此可以从每个等价类中只取一组数据作为测试数据,

这样选取的测试数据最有代表性也最容易发现问题。

■比如:三角形类别识别程序:等边、等腰、任意,不

合理的三角形等等

■无效的等价类可以从多个角度考虑,如:只有两个输

入边,输入不是实数,输入数据有负数等。

67

划分等价类启发式规则

(1)如果规定了输入值的范围,则可划分出一个有

效的等价类(输入值在此范围内),两个无效的等价

类(输入值小于最小值或大于最大值);

(2)如果规定了输入数据的个数,则类似地也可以

划分出一个有效的等价类和两个无效的等价类;

(3)如果规定了输入数据的一组值,而且程序对不

同输入值做不同处理,则每个允许的输入值是'一个

有效的等价类,此外还有一个无效的等价类(任一个

不允许的输入值);

68

、划分等价类启发式规则

(4)如果规定了输入数据必须遵循的规则,则可

以划分出一个有效的等价类(符合规则)和若干个

无效的等价类(从各种不同角度违反规则);

(5)如果规定了输入数据为整型,则可以划分出

正整数、零和负整数等3个有效类;

(6)如果程序的处理对象是表格,则应该使用空

表,以及含一项或多项的表。

69

划分等价类经验

等价类划分启发式规则

>输入条件:・值可以是1到999…”

“・..项数可以是1到999…”

]999_________

无效等价类一有效等价类一无效等价类

70

K划分等价类经验

>输入数据(教师职称):在教师住房分配软件中规

定对教授、副教授、讲师和助教分别计算分数,

做相应的处理。

四个有效等价类,一个无效等价类。

>输入规定:”标识符是一字母打头的长度不超

过八位的串。”

则字母打头长度在1〜8位的为一个有效等价

类,非字母打头为一个无效等价类,长度大于八

位或为空也是一个无效等价类。

71

划分等价类经验

>如果在已确定的等价类中各元素在软件中的

处理方式不同,则应根据需要对等价类进一

步进行划分。

>编译程序能发现的语法错误,无须测试。

intsum(intn)

{intm=0;

for(inti=l;i<=n;i++)

m=m+i;

72

>划分等价类

>建立等价类表,为每一个等价类规定一个唯一

编号;

输入条件有效等价类无效等价类

等价类法步骤

>选择测试用例:

■以尽可能少的测试用例覆盖所有的有效

等价类;

■为每个无效等价类设计一个测试用例。

74

边界值分析法

边界值分析法

>思想:程序总是在边界条件处失效,因此选

取测试用例应该选边界值

>使用方法:与等价划分法联合使用

75

测试技术例题

某工厂公开招工,规定报名者的年龄应在16周岁

至35周岁之间(到2005年3月30日止)。即出生年月

不在上述范围内,将拒绝接受,并显示“年龄不合格”

等出错信息。假定出生年月由6位数字字符表示,前4

位代表年,后2位代表月。

(1)利用等价类法设计测试用例.

⑵利用边界值分析法设计测试用例。

76

支术例题

等价类表如下:

输入条件有效等价类无效等价类

②有非数字字符

出生年月①6位数字字③少于6个数字符

符④多于6个数字符

⑥<197003

对应数值⑤在197003—-

198903之间⑦>198903

⑨等于0

月份对应⑧在1—12之间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论