白盒测试——基本路径法

白盒测试的测试方法:

  代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

  我们这次主要了解一下路径测试法:

  基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。

  

  在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法:

  1. 程序的控制流图:描述程序控制流的一种图示方法。

  2. 程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。

  3. 导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。

  4. 准备测试用例:确保基本路径集中的每一条路径的执行。

  

  工具方法:

  图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。

  程序的控制流图:描述程序控制流的一种图示方法。

  圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句

  流图只有二种图形符号:

  

  图中的每一个圆称为流图的结点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。

  在将程序流程图简化成控制流图时,应注意:

  在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。

  边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。

  

基本路径测试法的步骤:

  第一步:画出控制流图

  流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。

  第二步:计算圈复杂度

  圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。

  有以下三种方法计算圈复杂度:

  流图中区域的数量对应于环型的复杂性;

  给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;

  给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。

  第三步:导出测试用例

  根据上面的计算方法,可得出四个独立的路径。(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)

  根据上面的独立路径,去设计输入数据。

  

  第四步:准备测试用例

  为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,得出测试用例。

时间: 2024-10-11 20:46:32

白盒测试——基本路径法的相关文章

白盒测试以及基路径法测试

测试用例: 语句覆盖: 1. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 2. x=3,y=3,z=1. 预期输出 x=1 (a(F),b(T)) 判定覆盖: 1. x=3,y=1,z=0. 预期输出 x=2 (a(F),b(F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 条件覆盖: 1. x=1,y=1,z=1. 预期输出 x=0 (a(F,F),b(F,F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T,T),b(T,

基本路径法设计测试用例

基本路径法是白盒测试中使用最为广泛的方法.以下将介绍一下基本路径法如何使用. 基本路径法设计测试用例的步骤基本如下 1.由程序的源代码作为基础导出控制流图 2.计算控制流图的环路复杂度 3.确定基本路径 4.根据基本路径设计测试用例 接下来我举个例子 1 Int IsLeap(int year) 2 { 3 if (year % 4 == 0) 4 { 5 if (year % 100 == 0) 6 { 7 if ( year % 400 == 0) 8 leap = 1; 9 else 10

逻辑覆盖法和基本路径法

逻辑覆盖法 逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,这一方法要求测试人员对程序的逻辑结构有清楚的了解.逻辑覆盖可分为:语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖与路径覆盖. 1. 语句覆盖就是设计若干个测试用例,运行所测程序,使得每一可执行语句至少执行一次. 2. 判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的取真分支和取假分支至少经历一次. 3. 条件覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的每个条件的可能取值至少执行一次

白盒测试--基本路径测试法举例1

有一个函数如下: 1 public static void SortNum(int numA, int numB) 2 { 3 int x = 0; 4 int y = 0; 5 while (numA--> 0) 6 { 7 if (numB == 0) 8 x = y -12; 9 else 10 if (numB == 1) 11 x = y + 5; 12 else 13 x = y +7; 14 } 15 } 下面先画出程序控制流图 根据以上的控制流图,可以计算出以下路径: 路径1:5

白盒测试——逻辑覆盖法

  白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的."白盒"法全面了解程序内部逻辑结构.对所有逻辑路径进行测试."白盒"法是穷举路径测试.在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据.   白盒测试法的覆盖标准有逻辑覆盖.循环覆盖和基本路径测试.今天我们主要研究逻辑覆盖,逻辑覆盖包括语句覆

单元测试和白盒测试相关总结

一.  软件测试方法 1.        软件测试方法包括:白盒测试(White  Box  Testing).黑盒测试(Black  Box Testing).灰盒测试.静态测试.动态测试. 2.        白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例. 白盒测试技术一般可被分为静态分析和动态分析两类技术

白盒测试和黑盒测试

1,一般软件开发人员和测试人员对白盒测试和黑盒测试的感念都有一定的认识,但认为是编代码所做的测试是白盒测试,黑盒测试不用编写代码,这其实是一种误解. 2,首先说一下概念,任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试.黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 软件的黑盒测试意味着测试要在软件的接口处进行.这种方法是把测试对象

web项目Log4j日志输出路径配置问题

问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽可能少的改动配置文件,最好修改实例名后可以不修改log4j的配置文件. 实现分析:一般实现上面需求,需要在修改完war包名称之外要再做下面配置: 1.修改每个实例名下web.xml中参数webAppRootKey为不同值.同一个tomcat下运行多个web应用时,该值相同的话,运行时会抛异常. <c

log4j配置文件中路径配置一般有三种方法:

(1)绝对路径法:直接配置为系统觉得路径: (2)相对路径法: log4j.appender.logfile.File=../logs/app.log,将日志记录到tomcat下的logs文件夹: log4j.appender.logfile.File=logs/app.log,将日志记录到tomcat的bin目录下的logs文件夹: (3)使用环境变量相对路径法:程序会优先找jvm环境变量,然后再找系统环境变量,来查找配置文件中的变量. log4j.appender.logfile.File=