软件测试技术白盒_第1页
软件测试技术白盒_第2页
软件测试技术白盒_第3页
软件测试技术白盒_第4页
软件测试技术白盒_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

软件测试技术白盒本章内容白盒测试技术黑盒测试技术沈阳师范大学软件学院2第2页,共34页,2024年2月25日,星期天本节内容2.1白盒测试技术2.1.1静态测试方法2.1.2逻辑覆盖测试2.1.3基本路径测试2.1.4其他白盒测试技术沈阳师范大学软件学院3第3页,共34页,2024年2月25日,星期天2.1.1静态测试方法白盒测试概述

程序的结构和处理过程像白盒子一样透明。允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。沈阳师范大学软件学院4输入输出第4页,共34页,2024年2月25日,星期天2.1.1静态测试方法桌前检查

由程序员自己检查编写好的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。范例

习题

沈阳师范大学软件学院5第5页,共34页,2024年2月25日,星期天2.1.1静态测试方法代码审查代码审查是由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。

沈阳师范大学软件学院6第6页,共34页,2024年2月25日,星期天2.1.1静态测试方法代码审查代码审查一般分如下七步:1.计划2.概述3.准备4.审查会议5.审查报告6.返工7.跟进沈阳师范大学软件学院7第7页,共34页,2024年2月25日,星期天2.1.1静态测试方法代码走查走查与代码审查基本相同,其过程分为两步。第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。

沈阳师范大学软件学院8第8页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖测试语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖沈阳师范大学软件学院9第9页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖

沈阳师范大学软件学院10(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdceL1(a

c

e)={(A>1)and(B=0)}and{(A=2)or(X>1)}第10页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖

沈阳师范大学软件学院11(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdceL2(a

b

d)=not{(A>1)and(B=0)}

andnot{(A=2)or(X>1)}L1(a

c

e)第11页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖

沈阳师范大学软件学院12(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdceL3(a

b

e)=not{(A>1)and(B=0)}and

{(A=2)or(X>1)}L1(a

c

e)L2(a

b

d)第12页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖沈阳师范大学软件学院13(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdceL4(a

c

d)={(A>1)and(B=0)}

andnot

{(A=2)or(X>1)}L1(a

c

e)L2(a

b

d)L3(a

b

e)第13页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试逻辑覆盖路径约定:a,b,c,d,e(如上图所示)判断条件约定:T1:A>1T2:B=0T3:A=2T4:X>1沈阳师范大学软件学院14第14页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试语句覆盖每一可执行语句至少执行一次。选择路径L1当前测试用例:

A=2,B=0,X=4.沈阳师范大学软件学院15问题:若AND错写为OR,或X>1错写为X<1,或OR错写为AND,仍可覆盖所有4条语句。无法发现判断中逻辑运算的错误。(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce第15页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试判定覆盖在⑴的基础上,每个判定的真、假分支至少执行一次。选择路径L4和L3当前测试用例:A=3,B=0,X=3(满足A>1,B=0;A

2,X>1)A=2,B=1,X=2(满足A>1,B0;A=2,X>1)

沈阳师范大学软件学院16问题:若X>1错写为X<1,仍可得到同样结果。不一定能发现判断的条件中存在的错误。(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce第16页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试条件覆盖在(2)基础上,每个判定的每个条件的可能取值至少执行一次

沈阳师范大学软件学院17(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdceA>1,取真值为T1,取假值为B=0,取真值为T2,取假值为A=2,取真值为T3,取假值为X>1,取真值为T4,取假值为T1andT2T3orT4第17页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试条件覆盖沈阳师范大学软件学院18测试用例通过路径条件取值覆盖分支2,1,1L3T1T2T3T4b,e1,0,2L3T1T2T3T4b,e(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce第18页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试判定-条件覆盖即判定覆盖

条件覆盖,即同时考虑条件的组合值及判定结果的检验。沈阳师范大学软件学院19测试用例通过路径条件取值2,0,4L1(ace)T1T2T3T41,1,1L2(abd)T1T2T3T4(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce问题:某些条件可能掩盖另一些条件。不一定能发现逻辑表达式中的错误。如何彻底检查所有条件的取值?第19页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试判定-条件覆盖沈阳师范大学软件学院20andorA>1TB=0TX=X/ATFFA=2TFX>1FX=X+1第20页,共34页,2024年2月25日,星期天2.1.2逻辑覆盖测试条件-组合覆盖每个判定表达式中条件的各种可能组合都至少执行一次。沈阳师范大学软件学院21全部可能的条件组合为:①A>1,B=0(T1T2)②A>1,B0(T1T2)③A1,B=0(T1,T2)④A1,B0(T1T2)⑤A=2,X>1(T3,T4)⑥A=2,X

1(T3T4)⑦A

2,X>1(T3,T4)⑧A

2,X

1(T3T4)(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce测试用例通过路径覆盖条件覆盖组合号2,0,4L1(ace)T1T2T3T4①⑤2,1,1L3(abe)T1T2T3T4②⑥1,0,3L3(abe)T1T2T3T4③⑦1,1,1L2(abd)T1T2T3T4④⑧第21页,共34页,2024年2月25日,星期天2.1.3基本路径测试基本路径测试

上节的例子是个比较简单的程序段,只有两条路径。但在实际问题中,即使一个不太复杂的程序,其路径的组合都是一个庞大的数字。如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。沈阳师范大学软件学院22第22页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的控制流图

控制流图是描述程序控制流的一种图示方式。其中基本的控制结构对应的图形符号如下图所示。在下图的图形符号中,圆圈称为控制流图的一个结点,它表示一个或多个无分支的语句或源程序语句。沈阳师范大学软件学院23第23页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的控制流图

符号○为控制流图的一个结点,表示一个或多个无分支的PDL语句或源程序语句。箭头为边,表示控制流的方向。

沈阳师范大学软件学院24第24页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的控制流图

下图左所示的是一个程序的流程图,它可以映射成图右所示的控制流图。

沈阳师范大学软件学院25第25页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的控制流图流图中用谓词结点来表示简单条件判断,即谓词结点不允许含有复合条件。对于程序(或流程图)中的复合条件,应将其转化为多个简单条件判断,在流图中用相应的谓词结点加以表示。

沈阳师范大学软件学院26第26页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的环路复杂性程序的环路复杂性(CyclomaticComplexity)又称为圈复杂性,其值等于流图中的区域个数。在进行基本路径测试时,确定了程序的环路复杂性,则可在其基础上确定程序基本路径集合的独立路径数目,这个数目是确保程序中每条可执行语句至少执行一次的测试用例数目的最小值。独立路径是一条含有以前未处理的语句或判断的路径,在流图中,独立路径表现为至少含有一条其他独立路径中均没有的边的路径。

沈阳师范大学软件学院27第27页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的环路复杂性上图所示的流图含有4个区域,故其对应的程序的环路复杂性度量V(G)为4,程序有以下4条独立路径。路径1:1—11路径2:1—2—3—4—5—10—1—11路径3:1—2—3—6—8—9—10—1—11路径4:1—2—3—6—7—9—10—1—11

沈阳师范大学软件学院28第28页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的环路复杂性可由此设计测试用例,覆盖以上4条独立路径,则可使程序中的所有可执行语句和所有判断的真、假分支至少执行一次。也可利用以下公式计算程序的环路复杂性度量V(G)。V(G)=E-N+2公式中的E代表流图中的边数,N代表流图中的结点数。如图4-3(b)所示的流图中,边数为11,结点数为9,故V(G)=11-9+2=4。

沈阳师范大学软件学院29第29页,共34页,2024年2月25日,星期天2.1.3基本路径测试程序的环路复杂性此外,还可利用流图中的谓词结点数来计算环路复杂性度量V(G)。V(G)=P+1公式中的P为流图中的谓词结点数。如图所示的流图中,谓词结点数为3,故V(G)=3+1=4。若能事先确定程序中的简单条件判断的个数(即等于流图中的谓词结点数),则可在不画出流图的情况下确定程序的环路复杂性。

沈阳师范大学软件学院30第30页,共34页,2024年2月25日,星期天2.1.3基本路径测试计算程序环路复杂性

进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执

温馨提示

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

评论

0/150

提交评论