软件测试课件2_第1页
软件测试课件2_第2页
软件测试课件2_第3页
软件测试课件2_第4页
软件测试课件2_第5页
已阅读5页,还剩167页未读, 继续免费阅读

下载本文档

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

文档简介

第七章软件测试

4软件测试的目的和原则

4软件测试用例设计

4软件测试策略

4软件测试种类

4程序调试

软件测试的目的和原则

■软件测试的目的

■软件测试的原则

-软件测试的对象

・测试信息流

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

软件测试的目的

■基于不同的立场,存在着两种完全

不同的测试目的。

-从用户的角度出发,普遍希望通过

软件测试暴露软件中隐藏的错误和

缺陷,以考虑是否可接受该产品。

-从软件开发者的角度出发,则希望

测试成为表明软件产品中不存在错

误的过程,验证该软件已正确地实

现了用户的要求,确立人们对软件

质量的信心。

Afyers软件测试目的

(1)测试是程序的执行过程,目的在

于发现错误;

(2)一个好的测试用例在于能发现至

今未发现的错误;

(3)一个成功的测试是发现了至今未

发现的错误的测试。

■换言之,测试的目的是

x♦想以最少的时间和人力,系统地找

出软件中潜在的各种错误和缺陷。如

果我们成功地实施了测试,我们就能

够发现软件中的错误。

♦测试的附带收获是,它能够证明软

件的功能和性能与需求说明相符合。

♦实施测试收集到的测试结果数据为

可靠性分析提供了依据。

♦测试不能表明软件中不存在错误,

它只能说明软件中存在错误。

软件测试的原则

1.应当把“尽早地和不断地进行软

件测试”作为软件开发者的座右

铭。

2.测试用例应由测试输入数据和对

应的预期输出结果这两部分组成。

3.程序员应避免检查自己的程序。

4.在设计测试用例时,应包括合理

的皤入条件和不合理的输入条件。

的

淄卷意测送

明测后

娜,

里与该

野一

正生物

神谶计6

舞蛀

忸结果做全面检查

每7测试

当对一测用例出

c出划谶,

普海保弟测o,维护提

分析报肾为

窕计和最,

供方便

-

软件测试的对象

-软件测试并不等于程序测试。软件

测试应贯穿于软件定义与开发的整

个期间。

需求分讴、概要设计、详细设计以

及程序编码等各阶段所得到的文档,

包括需求规格说明、概要设计规格

说明、详细设计规格说明以及源程

序,都应成为软件测试的对象。

-为把握软件开发各个环节的正确性,

需要进行各种确认和验证工作。

■确认(Validation),是一系列的活动

和过程,目的是想证实在一个给定

的外部环境中软件的逻辑正确性。

♦需求规格说明确认

♦程序确认(静态确认、动态确认)

■验证(相/浜恒"0〃),试图证明在软

件生存期各个阶段,以及阶段间的

逻辑协调性、完备性和正确性。

[用户要求:⑤厂运行结果、

、用户:<--------->计算机:

我要什么?相符吗?程序运行得

1到的结果J

理解止确性/_彳\运行止确性

表达止确性/①④\输入止确性

,需求说明技)「源程序:

分析员:程序员:

我可以提供我要让计算

1机怎么做」

②③/

理解止确性G计说明书:理解止确性

设计止确性、一汨了三一/编码止确性

表达止确性我繇赢牛

1做什么?J,

测试信息流

涧试工具

测试信息流

软

脩

溜量

规

格

说

明

匚

软

段

计

件

代

码

等

卜

源

测

配

置

测

试

测

用

试

:

、

测

等

程

序

;

试

测

工

具

测

试

数

据

自

动

生

成

试

程

:

序

静

析

态

程

分

序

动

析

程

分

态

、

、

序

测

试

果

结

分

析

序

及

驱

程

、

以

、

效

试

的

测

试

如

数

据

等

库

等

。

・测试结果分析:比较实测结果与

预期结果,评价错误是否发生。

排错(调试):对已经发现的错误

进行错误定位和确定出错性质,

并改正这些错误,同时修改相关

由文档。

■修正后的文档再测试:直到通过

测试为止。

-通过收集和分析测试结果数据,对

软件建立可靠性模型

■利用可靠性分析,评价软件质量:

♦软件的质量和可靠性达到可以接

受的程度;

♦所做的测试不足以发现严重的错

误;

・如果测试发现不了错误,可以肯定,

测试配置考虑得不够细致充分,错

误仍然潜伏在软件中。

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

■软件开发过程是一个自顶向下,逐

步细化的过程

■软件计划阶段定义软件作用域

-软件需求分析建立软件信息域、功

能和性能需求、约束等

■软件设计

-把设计用某种程序设计语言转换成

程序代码

-测试过程是依相反顺序安排的自底

向上,逐步集成的过程。

■两种常用的测试方法

♦黑盒测试

♦白盒测试

黑盒测试

.这种方法是把测试对象看做一个

黑盒子,测试人员完全不考虑程

序内部的逻辑结构和内部特性,

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

检查程序的功能是否符合它的功

能说明。

-黑盒测试又叫做功能测试或数据

驱动测试。

-黑盒测试方法是在程序接口上进行

测试,主要是为了发现以下错误:

♦是否有不正确或遗漏了的功能?

♦在接口上,输入能否正确地接受?

能否输出正确的结果?

♦是否有数据结构错误或外部信息■r

(例如数据文件)访问错误?

♦性能上是否能够满足要求?

♦是否有初始化或终止性错误?

■用黑盒测试发现程序中的错误,必

须在所有可能的输入条件和输出条

件中确定测试数据,来检查程序是

否都能产生正确的输出。

■但这是不可能的。

-假设一个程序尸有输入量X和饭输

出量Z。在字长为32位的计算机上

运行。若X、V取整数,按黑盒方法

进行穷举测试:

-可能采用的

测试数据组:X

232X232Y

=264

-如果测试一组数据需要1毫秒,

年工作365x24小时,完成所有测

试需5亿年。

白盒测试

-此方法把测试对象看做一个透明的

盒子,它允许测试人员利用程序内

部的逻辑结构及有关信息,设计或

选择测试用例,对程序所有逻辑路

径进行测试。

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

定实际的状态是否与预期的状态一

致。因此白盒测试又称为结构测试

或逻辑驱动测试。

■善纥△县售用白盒测试方法,主要

想对程方寝唳进行如下而检查:

♦y"程序模块的所有独立的执行路

径至少测试一次;

♦对所有的逻辑判定,取“真”与

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

次;

循军的边界和运行界限内执行

循环体;

♦测试内部数据结构的有效性,等。

对一个具有多重选择和循环嵌套的

程序,不同的路径数目可能是天文

数字。给出一个小程序的流程图,

它包括了一个执行2。次的循环。

-包含的不同执行路径数达52〃条,

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

假定一年工作365x24小时,要想

把所有路径测试完,需3170年。

逻辑覆盖

逻辑覆盖是以程序内部的逻辑结构为

基础的设计测试用例的技术。它属白

盒测试。

.语句覆盖♦判定-条件覆盖

♦判定覆盖♦条件组合覆盖

♦条件覆盖♦路径覆盖。

(TV)

(IAWX)puv(oua)puv

(ou)u

PUK(zqv)

(TV)

(IAV/X)puv(0=a)puv

u

』0(zuv)PUK(OHg)PUK(IAV)

{(IAV、X)xo(zuv)}

{(ou)u

PUKPUK(IAV)}

。

个

(。个jn

((

I

AI

XA

)X

3

J

O0

P{UU

U(p

liP

NelU

P{xlK

)

S{(((

(OJZZ

{IOHH

HUVV

(A)

oXeP)

u)Js

qlU-

=oKOO

)0uUu

(P(1

p(sZp

S2Hu

个(Vu

()l)(

Ia

}AJI

qAVA

V~OH

个orUV

)u)a

K}o}

JJJ

)OuOO

nU}UU

uHH

(IAX)1(OHa一Ou

』0(ZHV)1(OHalou

=0I(lev)-Ou

』0(ZHV)pill(IAV)JOUH

((IAX)=OCUV)}

puu{(OHeJOUs(IAV)JOU}H

KIAX)=0CUV)}

一

I{(0由)I(IAV)}OUu

个

6个qSO)my

(IAWX)JOU

1CHV)JOUpillaHepuu(lev)H

{(Tv/X)=0CUV)}JOU

puv{(0由)puv(IAV)}u

个

(p个jK)n

语句覆盖

-语句覆盖就是设计若干个测试用例,

运行被测程序,使得每一可执行语

句至少执行一次。

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

都在路径L1上,所以选择路径L1设

计测试用例,就可以覆盖所有的可

执行语句。

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

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

■为图例设计满足语句覆盖的测试用例

是:

[(2,0,4),(2,0,3)]

覆盖ace[L1]

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

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

判定覆盖

.判定覆盖就是设计若干个测试用

例,运行被测程序,使得程序中

每个判断的取真分支和取假分支

至少经历一次。

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

.对于图例,如果选择路径L1和L2,

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

■1(2,0,4),(2,0,3)】覆盖ace【LI】

【(1,1,1),(1,1,1)]覆盖abd[L2]

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

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

not(A>1)andnot(A=2)andnot(X>1)

or

not(B=0)andnot(A=2)andnot(X>1)

.如果选择路径L3和L4,还可得另一

组可用的测试用例:

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

[(3,0,3),(3,1,1)1覆盖acd[L4]

not(A>1)and(X>1)ornot(B=0)and

(A=2)ornot(B=0)ard(X>1)

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

not(X/A>1)

条件覆盖

-条件覆盖就是设计若干个测试用例,

运行被测程序,使得程序中每个判

断的每个条件的可能取值至少执行

一次。

■在图例中,我们事先可对所有条件

的取值加以标记。例如,

-对于第一个判断:

♦条件A>1取真为Ti,取假为五

条件B=0取其为12,取假为T2

-对于第二个判断:_

♦条件A=2取真为T3,取假为工

条件X>1取真为1寸,取假为T4

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

【(2,0,4),(2,0,3)1Ll(c,e)T1T2T3T4

】

[(1,0,1),(1,0,1)L2(b,d)TIT2TZ1\

【(2,1,1),(2,1,2)】L3(b,e)1而3后

或

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

[0,0,3),(1,0,4)1L3(b,e)E岂辿

【(2,1,1),(2,1,2)】L3(b,e)TITZTST^

判定-条件覆盖

-判定-条件覆盖就是设计足够的测试

用例,使得判断中每个条件的所有可

能取值至少执行一次,每个判断中的

每个条件的可能取值至少执行一次。

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

【(2,0,4),(2,0,3)1Ll(c,e)T1T2T3T4

L(l,1,1),(1,1,1)1L2(b,d)

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

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

not(A>1)andnot(A=2)andnot(X>1)

or

not(B=0)andnot(A=2)andnot(X>1)

A>1B=oT

and4X=X/A

>X=X+1

条件组合覆盖

■条件组合覆盖就是设计足够的测

试用例,运行被测程序,使得每

个判断的所有可能的条件取值组

合至少嬴行一次。

记①A>1,B=O作Ti8

②A>1,BrO作TifZ

③A才1,B=O作弓二

④A才1,BrO作flfZ

⑤A=2,X>1作T3g

⑥A=2,X》1作声

⑦AW2,X>1作亘

⑧AW2,X》1作不后

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

【(2,0,4),(2,0,3)】区1)「目32①,⑤

1(2,1,1),(2,1,2)1(L3)TITZTST^②,⑥

【(1,0,3),(1,0,4)】③,⑦

[(1,1,1

温馨提示

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

评论

0/150

提交评论