单元3设计测试工作 之任务3 使用白盒测试方法设计测试用例1

合集下载

关于白盒测试的测试用例设计方法叙述

关于白盒测试的测试用例设计方法叙述

关于白盒测试的测试用例设计方法叙述下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

关于白盒测试的测试用例设计方法叙述该文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document 关于白盒测试的测试用例设计方法叙述 can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary,word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!白盒测试是软件测试中的一种重要方法,它基于了解软件内部结构和源代码的原理,以验证程序的逻辑正确性、代码覆盖率和结构设计是否合理。

白盒测试:路径测试及测试用例设计

白盒测试:路径测试及测试用例设计

20 14 —20 15 学年第 2 学期
软件测试技术课程
实验报告
学院:计算机科学技术
专业:软件工程
班级:软件12401
*名:***
学号:*********
任课教师:***
实验日期:2015年 6 月16 日实验题目实验5、白盒测试:路径测试及测试用例设计
实验目的1、掌握独立路径,程序基本路径测试的概念。

2、掌握独立路径测试法。

实验内容
程序int binsearch(int array[],int key)实现折半查找的功能。

数组array元素按升序排列,length为数组array的长度,key为要查找的值。

试用独立路径集测试法测试该程序,撰写实验报告。

关键代码如下(Java实现)
public static int binsearch(int array[],int key)
{
int low = 0;
int high = array.length - 1;
int middle;
while(low <= high)
{
middle = (low+high)/2;
if(array.[middle] == key)
{
return middle;
}else
if(array.[middle] < key)
{
low = middle +1;
}else
{
high = middle - 1;
}
}
return -1;
}
实验步骤:
1)画出程序的流图(控制流程图)。

测试用例的设计

测试用例的设计
对于测试对象中可能存在何种类型的 错误,是挑选测试用例应该考虑的重要因 素。推测的重要依据是程序设计规格说明 书(或者代码的序言性注释),不但要考虑 它告诉了我们什么,还应该考虑说明中遗 漏了什么,或者是否存在可能的冲突。
软件工程
测试用例设计小结
在实际应用中通常以黑盒测试法设计 测试用例为主,白盒测试法设计测试用例 为辅。并可以考虑以下测试策略: l任何情况下都应该使用边界值分析设计测 试用例; l必要时采用等价类划分法补充用例; l必要时再用错误推测法补充用例; l对照程序内部逻辑,检查已设计用例的逻 辑覆盖。根据程序可靠性要求,补充用例 使之达到规定的逻辑覆盖要求。
第一步:将详细设计结果或程序编码映射成程 序控制结构图。
第二步:根据程序控制结构图计算程序的环形 复杂度。
第三步:确定线性独立路径的基本集合。 第四步:设计测试用例,确保基本路径集中每 条路径的执行。
软件工程
1.2 黑盒测试法用例的设计
黑盒测试法用例的设计有等价类划分、 边界值分析、错误推测等。根据这些方法来 生成测试用例,可以提前到需求分析阶段或 设计阶段。同时使用这些方法很可能发现白 盒测试不易发现的其他类型的错误。
(满足A≤1,B=O,A≠2和x>1的条件) 【{A=1,B=1,X=1},{A=1,B=1,X=1}】
(满足A≤1,B≠O,A≠2和x≤1的条件)
覆盖sacbed 覆盖sabed 覆盖sabed 覆盖sabd
软件工程
2. 基本路径测试
使用这种技术设计测试用例时,首先计算程 序的环形复杂度,并用该复杂度为指南定义执行 路径的基本集合,从该基本集合导出的测试用例 可以保证程序中的每条语句至少执行一次,而且 每个条件在执行时都将分别取真、假两种值。基 本路径测试技术设计测试用例的步骤:

基于白盒测试的用例设计与验证(一)

基于白盒测试的用例设计与验证(一)

学号:《软件测试技术》实验报告与习题册2014 / 2015 学年第2学期系别计算机科学与技术专业计算机软件班级一班姓名指导教师目录实验一:基于白盒测试的用例设计与验证(一)一.实验目的(1)熟悉Eclipse开发环境(2)掌握Java语言的基本语法,能够利用Java实现简单的程序开发(3)熟悉白盒测试基本原理(4)掌握白盒测试的逻辑覆盖法,能够依据语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理进行相应测试用例的设计工作。

二.实验内容(1)选择一门语言,完成指定的单元程序开发。

(2)分别依据白盒测试逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理设计相应的测试用例。

(3)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。

三.程序流程图运行结果示例程序源码#include<stdio.h>void main(){int m;int n;int p;int q;printf("请输入m的值:");scanf("%d",&m);printf("请输入n的值:");scanf("%d",&n);printf("请输入p的值:");scanf("%d",&p);printf("请输入q的值:");scanf("%d",&q);printf("输入完毕\n");if(m>0 && n<6){m=n+3;n=n*2;}if(p>5 || q<0){p=2*q+5;q=q++;}printf("m:%d\n",m);printf("n:%d\n",n);printf("p:%d\n",p);printf("q:%d\n",q);}1.语句覆盖程序中的每个可执行语句至少被执行一次2.判定覆盖3.条件覆盖4.判定-条件覆盖判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。

白盒测试用例设计方式

白盒测试用例设计方式

白盒测试用例设计方式:常常利用的黑盒测试用例设计方式有等价类划分法、边界值测试法、决策表法、错误猜想法和场景法,在进展黑盒测试用例设计时的主要依据是软件系统规格说明书,因此在进展黑盒测试之前必需保证软件系统规格说明书是通过审核的,若是未经审核,那么需要进展探索式测试。

等价类划分法是指将输入数据进展等价类划分,划分依据为系统的预期结果,隶属于同一个等价类的输入数据会引发一样的预期结果,而且吻合一样的输入标准。

边界值测试法是对等价类划分法的一种补充,对于每一个等价类来讲,都会存在类的边缘,经研究证明,边缘的数据更易在系统运行中产生问题,因此边界值方式是一种超级必要的方式。

决策表方式适合于解决多个逻辑条件的组合。

判定表包括条件桩、条件项、动作桩、动作项。

条件桩中列出所有执行条件,顺序无关;条件项中列出所对应条件的所有可能情况下的取值;动作桩中列出可能采取的操作,顺序无关;动作项中列出条件项各类取值情况下采取的操作。

错误推测法概念:基于经历和直觉推测程序中所有可能存在的各类错误, 从而有针对性的设计测试用例的方式。

错误推测方式的根本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,按照他们选择测试用例。

场景法:ERP系统本身是一种业务流程很复杂,单据报表众多,逻辑性很强的系统,质量保证方面很宝贵到严格的控制的软件系统,在测试进程中常常会出现测试设计遗漏、测试执行遗漏等问题发生,一般的ERP系统设计可能包括以下几方面:、业务流程测试、数据逻辑测试、接口测试、兼容性测试、、易用性测试、用户体验测试等等;在针对ERP系统的测试进程中,必需具有清楚的测试设计思路,搭建根本的测试设计框架;其次熟悉所要设计的系统或模块的业务,所要实现的功能;然后灵活运用常常利用的测试设计方式〔等价类、边界值、错误猜想、路径分析法、场景法、正交验证法……用例设计方式〕;最后运用比拟合理统一的风格和模板进展设计测试用例;“业务场景、业务流程、数据逻辑〞是关键,业务理解清楚是做好ERP测试的根底;ERP系统测试用例分为几类来写比拟好:功能用例、业务流程用例、数据逻辑用例、接口用例,最好是把功能与流程类的测试用例分开来写;就个人而言,设计覆盖率高、冗余度低的测试用例应该从以下几个方面入手:一、功能用例设计:相对而言比拟简单,按照需求规格说明书、界面原型提取测试功能点/项,运用等价类、边界值、错误猜想、正交表等根本用例设计方式来设计,结合经历积累完善用例设计就可以够弄定,难度不大;需要按照文档/功能点/业务的转变进展修订/细化用例,提高功能用例的覆盖度;关于功能用例设计的方式和有很多,都可以借鉴和参考增加自身的经历积累和和知识沉淀。

白盒测试测试用例设计方法

白盒测试测试用例设计方法

白盒测试测试用例设计方法
白盒测试是基于代码的内部结构、逻辑和路径进行测试的方法。

以下是一些常用的白盒测试测试用例设计方法:
1. 语句覆盖(Statement Coverage):测试用例被设计为执行程序中的每个语句至少一次。

这是最基本的覆盖准则。

2. 分支覆盖(Branch Coverage):测试用例被设计为执行程序中的每个分支(if-else语句、switch语句等)至少一次。

目标是确保每个分支的执行至少一次。

3. 条件覆盖(Condition Coverage):测试用例被设计为满足每个条件的真值和假值至少一次。

例如,if语句中的每个条件都应该至少执行一次为真和一次为假的情况。

4. 路径覆盖(Path Coverage):测试用例被设计为覆盖程序中的每个可能路径。

这种方法通常会创建测试用例来测试每种可能的路径,以确保程序在各种情况下正常工作。

5. 逻辑覆盖(Logical Coverage):测试用例被设计为覆盖逻辑运算符(例如AND,OR)的各种情况。

目标是测试程序在逻辑操作方面的准确性。

6. 循环覆盖(Loop Coverage):测试用例被设计为满足循环的不同情况,包括循环开始、循环中和循环结束的情况。

7. 数据流覆盖(Data Flow Coverage):测试用例被设计为覆盖程序中的数据流转。

目标是测试程序在处理数据输入和输出时的准确性。

这些测试用例设计方法可以根据具体的应用场景和需求进行组合使用,以确保对代码的全面测试。

白盒测试及例题


基本路径测试
• 前提条件 测试进入的前提条件是在测试人员 已经对被测试对象有了一定的了解,基 本上明确了被测试软件的逻辑结构。 • 测试过程 过程是通过针对程序逻辑结构设计 和加载测试用例,驱动程序执行,以对 程序路径进行测试。测试结果是分析实 际的测试结果与预期的结果是否一致。
基本路径测试
• 在程序控制流图的基础上,通过分析控制构造的环 路复杂性,导出基本可执行路径集合,从而设计测 试用例。包括以下4个步骤和一个工具方法: 1. 程序的控制流图:描述程序控制流的一种图示 方法。 2. 程序圈复杂度:McCabe复杂性度量。从程序的 环路复杂性可导出程序基本路径集合中的独立 路径条数,这是确定程序中每个可执行语句至 少执行一次所必须的测试用例数目的上界。 3. 导出测试用例:根据圈复杂度和程序结构设计 用例数据输入和预期结果。 4. 准备测试用例:确保基本路径集中的每一条路
条件组合覆盖
• 针对上述问题又提出了另一种标准——―条 件组合覆盖”。它的含义是:执行足够的 例子,使得每个判定中条件的各种可能组 合都至少出现一次。显然,满足“条件组 合覆盖”的测试用例是一定满足“分支覆 盖”、“条件覆盖”和“分支/条件覆盖” 的。
条件组合覆盖
再看例1的程序,我们需要选择适当 的例子,使得下面 8种条件组合都能 够出现:
基本路径测试
工具方法: 图形矩阵:是在基本路径测试中起辅 助作用的软件工具,利用它可以实现自 动地确定一个基本路径集。
控制流图的符号
• 在介绍基本路径方法之前,必须先介绍一种简单的 控制流表示方法,即流图。流图是对待测试程序过 程处理的一种表示。流图使用下面的符号描述逻辑 控制流,每一种结构化构成元素有一个相应的流图 符号。
• • • • 白盒测试概念 测试覆盖标准 逻辑驱动测试 基本路径测试

白盒测试用例设计方法

白盒测试用例设计方法
白盒测试用例设计方法是通过了解软件系统的内部结构和代码的执行路径来设计测试用例。

下面是几种常用的白盒测试用例设计方法:
1. 语句覆盖:确保每个代码语句至少被执行一次。

设计测试用例以覆盖代码中的每个语句。

2. 判定覆盖:设计测试用例以覆盖代码中的每个条件判断语句的每个路径。

包括覆盖判断条件为真和为假的两个路径。

3. 条件覆盖:确保每个条件判断语句中的每个条件都被测试覆盖。

为此,需要设计多个测试用例来测试各种组合情况。

4. 路径覆盖:设计测试用例以覆盖代码中的每个可能路径。

这种方法通常会生成大量的测试用例,因为需要测试所有可能的路径组合。

5. 循环覆盖:确保所有的循环结构被至少测试一次。

设计测试用例以覆盖循环的各种情况,如循环未执行、执行一次、多次等。

6. 数据流覆盖:设计测试用例以覆盖代码中使用的各种数据流。

包括输入数据、输出数据和中间数据的覆盖。

以上是一些常用的白盒测试用例设计方法,根据具体的软件系统和测试目标,可以选择合适的方法来设计测试用例。

白盒测试用例练习题(1)

白盒测试用例练习题(1)白盒测试用例练习1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。

voiddowork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);//语句块1}if((x==4)||(y>5)){j=x*y+10;}//语句块2j=j%3;//语句块3}k=0j=0aycx>3andz<10k=x*y-1j=sqrt(k)nbx=4eoryy>5j=x*y+10ndj=j%3由这个流程图可以窥见,该程序模块存有4条相同的路径:p1:(a-c-e)p2:(a-c-d)p3:(a-b-e)p4:(a-b-d)将里面的判定条件和过程记录如下:判定条件m={x>3andz<10}判定条件n={x=4ory>5}1、语句覆盖测试用例输出x=4,z=5,y=82、判定覆盖p1和p4可以做为测试用例,其中p1做为挑真的路径,p4做为row的路径。

测试用例输出x=4,z=5,y=8x=2,z=11,y=5输入k=31,j=0k=0,j=0认定m的值域认定n的值域tftf 全面覆盖路径p1(a-c-e)p4(a-b-d)输入k=31,j=0认定m的值域认定n的值域tt全面覆盖路径p1(a-c-e)也可以使测试用例测试路径p2和p3。

适当的两组输出数据如下:测试用例输出x=5,z=5,y=4x=4,z=11,y=63、条件覆盖对于m:x>3挑真时t1,取假时f1;z<10挑真时t2,取假时f2;对于n:x=4挑真时t3,取假时f3;y>5挑真时t4,取假时f4。

条件:x>3,z<10,x=4,y>5条件:x<=3,z>=10,x!=4,y<=5根据条件全面覆盖的基本思路,和这8个条件值域,女团测试用例例如表中右图:测试用例输出x=4,z=5,y=8x=3,z=11,y=5输入k=31,j=0k=0,j=0值域条件具体内容值域条件全面覆盖路径p1(a-c-e)t1,t2,t3,t4x>3,z<10,x=4,y>5输入k=19,j=sqrt(19)%3k=0,j=1认定m的值域认定n的值域tfft全面覆盖路径p2(a-c-d)p3(a-b-e)f1,f2,f3,f4x<=3,z>=10,x!=4,y<=5p4(a-b-d)4、认定/条件全面覆盖测试用例输出x=4,z=5,y=8x=3,z=11,y=5输入k=31,j=0k=0,j=0值域条件具体内容值域条件全面覆盖路径p1(a-c-e)t1,t2,t3,t4x>3,z<10,x=4,y>5f1,f2,f3,f4x<=3,z>=10,x!=4,y<=5p4(a-b-d)5、女团全面覆盖条件组合1)x>3,z<102)x>3,z>=103)x<=3,z<104)x<=3,z>=105)x=4,y>56)x=4,y<=57)x!=4,y>58)x!= 4,y<=5测试用例输出x=4,z=5,y=6x=4,z=10,y=5x=3,z=5,y=6z=3,z=10,y=56、路径全面覆盖测试用例输出x=4,z=5,y=8x=5,z=5,y=4x=4,z=11,y=6x=2,z=11,y=5输出k=31,j=0k=0,j=1k=0,j=0覆盖条件取值覆盖条件组合1,51,82,54,8覆盖路径p1(a-c-e)p2(a-c-d)p3(a-b-e)p4(a-b-d)输出k=23,j=1k=0,j=0k=14j=1k=0,j=2覆盖条件取值t1,t2,t3,t4t1,f2,t3,f4f1,t2,f3,t4f1,f2,f3,f4覆盖条件组合1,52,63,74,8覆盖路径p1(a-c-e)p2(a-c-d)p3(a-b-e)p4(a-b-d)t1,t2,t3,t4t1,f2,t3,t4f1,f2,f3,f4k=19,j=sqrt(19)%3t1,t2,f3,f4。

白盒测试用例实验报告

白盒测试用例实验报告《白盒测试用例实验报告》一、实验目的本实验旨在通过白盒测试用例的实验报告,了解白盒测试的原理和方法,掌握白盒测试用例的编写和执行过程。

二、实验环境1. 软件环境:Windows 10操作系统、Eclipse集成开发环境2. 硬件环境:个人电脑三、实验内容1. 理解白盒测试的原理和方法2. 编写白盒测试用例3. 执行白盒测试用例4. 分析测试结果并撰写实验报告四、实验步骤1. 阅读相关文献,了解白盒测试的原理和方法2. 选择一个简单的软件模块,编写白盒测试用例3. 在Eclipse中创建测试类,并将编写的测试用例添加到测试类中4. 执行测试用例,观察测试结果5. 分析测试结果,撰写实验报告五、实验结果1. 经过测试,所有编写的白盒测试用例均能正确执行,并且符合预期结果2. 通过对测试结果的分析,发现了一些潜在的代码逻辑错误,并及时进行了修复3. 实验报告中详细记录了测试用例的编写过程、执行结果和分析结论六、实验总结通过本次实验,我对白盒测试有了更深入的了解,掌握了白盒测试用例的编写和执行方法。

同时,通过对测试结果的分析,我也发现了一些代码逻辑上的问题,并及时进行了修复。

这次实验不仅提高了我的软件测试能力,也增强了我对软件质量控制的认识。

七、实验感想白盒测试是软件测试中非常重要的一部分,通过本次实验,我深刻体会到了白盒测试对软件质量的重要性。

在今后的学习和工作中,我将继续深入学习白盒测试的理论知识,提高自己的测试能力,为软件质量的提升贡献自己的力量。

八、参考文献1. 《软件测试与质量保障》,王晓敏,清华大学出版社2. 《软件测试方法与技术》,李彦,人民邮电出版社以上就是本次实验的白盒测试用例实验报告,希望对大家有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

逻辑覆盖法(续)
组合覆盖
判断/条件覆盖
判断覆盖
条件覆盖
语句覆盖
逻辑覆盖法(续)
void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); } //语句块1 if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 }
例如:对于第一个判定(x>3)&&(z<10)来说,必须x>3和 z<10这两个条件同时满足才能确定该判定为真。如果x>3 为假,则编译器将不再检查z<10这个条件,那么即使这个 条件有错也无法被发现。对于第二个判定(x==4)||(y>5)来 说,若条件x==4满足,就认为该判定为真,这时将不会再 检查y>5,那么同样也无法发现这个条件中的错误。
条件覆盖:设计足够多的测试用例,使得程序中每个判定 包含的每个条件的可能取值(真/假)都至少满足一次。
逻辑覆盖法(续) 测试覆盖率
判定/条件覆盖:设计足够多的测试用例,使得程序中每个 判定包含的每个条件的所有情况(真/假)至少出现一次, 并且每个判定本身的判定结果(真/假)也至少出现一次。 ——满足判定/条件覆盖的测试用例一定同时满足判定覆盖 和条件覆盖。 组合覆盖:通过执行足够的测试用例,使得程序中每个判 定的所有可能的条件取值组合都至少出现一次。 ——满足组合覆盖的测试用例一定满足判定覆盖、条件覆 盖和判定/条件覆盖。 路径覆盖:设计足够多的测试用例,要求覆盖程序中所有 可能的路径。
实践环节
• • 通过案例运用学习掌握覆盖问题的解决方法 运用基本路径测试方法进行实际程序测试
白盒测试方法
• 白盒测试也称结构测试或逻辑驱动测试,是针对被测单元 内部是如何进行工作的测试。它根据程序的控制结构设计 测试用例,主要用于软件或程序验证。 • 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行 测试,是一种穷举路径的测试方法。但即使每条路径都测 试过了,仍然可能存在错误。因为: 穷举路径测试无法检查出程序本身是否违反了设计规范, 即程序是否是一个错误的程序。
x=4、y=5、z=15
ace
ce
判定/条件覆盖
• 判定/条件覆盖实际上是将判定覆盖和条件覆盖结合起来 的一种方法,即:设计足够的测试用例,使得判定中每个 条件的所有可能取值至少满足一次,同时每个判定的可能 结果也至少出现一次。 • 根据判定/条件覆盖的基本思想,只需设计以下两个测试 用例便可以覆盖4个条件的8种取值以及4个判定分支。 测试用例 x=4、y=6、z=5 x=2、y=5、z=15 执行路径 abd ace 覆盖条件 覆盖分支 bd ce
x=4、y=5、z=15
x=2、y=5、z=15 x=5、y=5、z=5
acd
ace abe
T1、-T2、T3、-T4
-T1、-T2、-T3、-T4 T1、T2、-T3、-T4
习题
• 为以下流程图所示的程序段设计一组测试用例,要求分别 满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、 组合覆盖和路径覆盖。
条件覆盖
• 在实际程序代码中,一个判定中通常都包含若干条件。 条件覆盖的目的是设计若干测试用例,在执行被测程序 后,要使每个判定中每个条件的可能值至少满足一次。 • 对DoWork函数的各个判定的各种条件取值加以标记。 对于第一个判定( (x>3)&&(z<10) ): 条件x>3 取真值记为T1,取假值记为-T1 条件z<10 取真值记为T2,取假值记为-T2 对于第二个判定( (x==4)||(y>5) ): 条件x==4 取真值记为T3,取假值记为-T3 条件y>5 取真值记为T4,取假值记为-T4
逻辑覆盖法(续)
a
X>3 && z<10
T b 执行语句块1 F F
c
X==4 || y>5
T d
执行语句块2
e
执行语句块3
语句覆盖
• 要实现DoWork函数的语句覆盖,只需设计一个测试用例 就可以覆盖程序中的所有可执行语句。 测试用例输入为:{ x=4、y=5、z=5 } 程序执行的路径是:abd • 分析: 语句覆盖可以保证程序中的每个语句都得到执行,但 发现不了判定中逻辑运算的错误,即它并不是一种充分的 检验方法。例如在第一个判定((x>3)&&(z<10))中把“&&” 错误的写成了“||”,或者把x>3误写成x >2,这时仍使用该 测试用例,则程序仍会按照流程图上的路径abd执行。可 以说语句覆盖是最弱的逻辑覆盖准则。
(1)弧a和弧b相乘,表示为ab,它表明路径是先经历弧a, 接着再经历弧b,弧a和弧b是先后相接的。 (2)弧a和弧b相加,表示为a+b,它表明两条弧是“或”的 关系,是并行的路段。 • 路径数的计算: 在路径表达式中,将所有弧均以数值1来代替,再进 行表达式的相乘和相加运算,最后得到的数值即为该程序 的路径数。
基本路径测试方法
• 路径测试就是从一个程序的入口开始,执行所经历的各个 语句的完整过程。从广义的角度讲,任何有关路径分析的 测试都可以被称为路径测试。 • 完成路径测试的理想情况是做到路径覆盖,但对于复杂性 大的程序要做到所有路径覆盖(测试所有可执行路径)是 不可能的。 • 在不能做到所有路径覆盖的前提下,如果某一程序的每一 个独立路径都被测试过,那么可以认为程序中的每个语句 都已经检验过了,即达到了语句覆盖。这种测试方法就是 通常所说的基本路径测试方法。
节点由带标号的圆圈表示,可代表一个或多个语句、一个处理 框序列和一个条件判定框(假设不包含复合条件)。 控制流线由带箭头的弧或线表示,可称为边。它代表程序中的 控制流。
常见结构的控制流图
• 对于复合条件,则可将其分解为多个单个条件,并映射成控制 流图。
常见结构的控制流图
其中,包含条件的节点被称为判定节点(也叫谓词节点), 由判定节点发出的边必须终止于某一个节点,由边和节点所 限定的范围被称为区域。
路径覆盖
• 前面提到的5种逻辑覆盖都未涉及到路径的覆盖。事实上, 只有当程序中的每一条路径都受到了检验,才能使程序受 到全面检验。路径覆盖的目的就是要使设计的测试用例能 覆盖被测程序中所有可能的路径。 • 根据路径覆盖的基本思想,在满足组合覆盖的测试用例中 修改其中一个测试用例,则可以实现路径覆盖: 测试用例 x=4、y=6、z=5 执行路径 abd 覆盖条件 T1、T2、T3、T4
软件测试
单元3:设计测试工作 之任务3 使用白盒测试方法设计测试用例
任务3 使用白盒测试方法设计测试用例
内容:
白盒测试方法
白盒测试的基本概念
覆盖测试
路径测试
最少测试用例数计算
学习目标
理论环节
• • 学习理解白盒测试方法的基本概念 学习理解白盒测试的覆盖理论
• •
学习掌握白盒测试的路径表达 学习掌握白盒测试的基本路径测试法
组合覆盖(续)
• 根据组合覆盖的基本思想,设计测试用例如下:
测试用例 x=4、y=6、z=5 执行路径 abd 覆盖条件 T1、T2、 T3、T4 T1、-T2、 T3、-T4 -T1、T2、 -T3、T4 覆盖组合号 1和5
x=4、y=5、z=15
x=2、y=6、z=5
acd
acd
2和6
3和7
-T1、-T2、 ace x=2、y=5、z=15 4和8 -T3、-T4 • 分析:上面这组测试用例覆盖了所有8种条件取值的组合, 覆盖了所有判定的真假分支,但是却丢失了一条路径abe。
条件覆盖(续)
• 说明:虽然前面的一组测试用例同时达到了条件覆盖和判 定覆盖,但是,并不是说满足条件覆盖就一定能满足判定 覆盖。如果设计了下表中的这组测试用例,则虽然满足了 条件覆盖,但只是覆盖了程序中第一个判定的取假分支c 和第二个判定的取真分支d,不满足判定覆盖的要求。 测试用例 x=2、y=6、z=5 执行路径 ace 覆盖条件 -T1、T2、 -T3、T4 T1、-T2、 T3、-T4 覆盖分支 ce
组合覆盖
• 组合覆盖的目的是要使设计的测试用例能覆盖每一个判定 的所有可能的条件取值组合。 • 对DoWork函数中的各个判定的条件取值组合加以标记: 1、x>3, z<10 记做T1 T2,第一个判定的取真分支 2、x>3, z>=10 记做T1 -T2,第一个判定的取假分支 3、x<=3, z<10 记做-T1 T2,第一个判定的取假分支 4、x<=3, z>=10 记做-T1 -T2,第一个判定的取假分支 5、x==4, y>5 记做T3 T4,第二个判定的取真分支 6、x==4, y<=5 记做T3 -T4,第二个判定的取真分支 7、x!=4, y>5 记做-T3 T4,第二个判定的取真分支 8、x!=4, y<=5 记做-T3 -T4,第二个判定的取假分支
逻辑覆盖法
• 根据覆盖目标的不同,逻辑覆盖又可分为语句覆盖、判定 覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。 语句覆盖:选择足够多的测试用例,使得程序中的每个可 执行语句至少执行一次。 判定覆盖:通过执行足够的测试用例,使得程序中的每个 判定至少都获得一次“真”值和“假”值, 也就是使程序 中的每个取“真”分支和取“假”分支至少均经历一次, 也称为“分支覆盖”。
穷举路径测试不可能查出程序因为遗漏路径而出错。 穷举路径测试发现不了一些与数据相关的错误。
白盒测试的基本概念
控制流图 环形复杂度 图矩阵
控制流图
相关文档
最新文档