软件测试与管理-白盒测试-基本路径测试法

知识点:

1.原理

  • 是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径的集合,然后根据可执行路径进行测试用例设计的方法。
  • 此方法设计出的测试用例需保证被测程序的每个可执行语句至少执行一次。

2.步骤

(画程序流程图)

(1)画程序控制流图

  • 圆—— 为流图的结点,表示一个或多个无分支语/源程序语句。
  • 箭头——为边或连接,代表控制流。
  • 注意:

        a.代码行号——》结点序号

        b.选择或分支结构的分支汇聚处又一个汇聚结点

        c.边和结点圈定的范围叫做区域。在计算区域数时,图形外的区域也应记为一个区域。

        d.若判断结构的表达式包含1/n个逻辑运算符(OR、AND、NAND、NOR)连接的复合

        e.条件表达式,则需要修改为一系列只有单条件的嵌套判断。


(2)计算程序环形复杂度

   a.定义:

        从程序的环形复杂度可导出程序基本路径集中的独立路径条数。

        确保程序中每个可执行语句至少执行一次的测试用例数目的上界。

    b.计算方法:
  • 区域数=环形复杂度

  • 环形复杂度V(G)=E-N+2 (E为控制流图中的边数,N为控制流图中的结点数)

  • 环形复杂度V(G)=P+1 (P为数据流图中的判定结点数)


(3)导出测试用例:

根据环形复杂度和程序结构来设计测试用例数据输入和预期结果。


(4)准备测试用例:

确保基本路径集中的每一条路径的执行。

3.补充知识点--测试用例

(1)定义:

是为发现软件中存在的问题而编写的一组包含测试输入、执行条件以及预期结果的文档,用来判断软件程序是否工作正确,软件产品是否满足需求。它是有效发现软件缺陷的最小测试执行单元。

(2)8个基本项内容:

测试用例编号、测试项目、用例标题、重要级别、预置条件、输入数据、操作步骤和预期输出。不同公司的测试用例所包含的内容不尽相同。

例题1:

//被测程序  
double  sumNumber(int m, int n)
1 {  
2   int i=0;
3   double sum=1;
4   for(i=1;i<=n;i++)
5   {
6	   if(i>100 ||  sum>200)
7	   {  break; }
8      else
9   {  
10      if(m>200)
11  	  {  m=m+1; }
12       else
13       { sum=sum*i+m; }
14     }
15   }    
16   return sum;}

1、绘制程序控制流图:

2、计算环路复杂度(用三种方法计算)

(1)环路复杂度=区域数目

        如图所示,5个区域

(2)环路复杂度=E-N+2

        11个结点,14条边,V(G)=14-11+2=5

(3)环路复杂度=p+1

        四个判定结点,V(G)=4+1=5

3、导出基本(独立)路径集合

        路径1:  1->4->6.1->6.2->10->11->14->4->6.1->7->15->16

        路径2:  1->4->6.1->6.2->10->13->14->4->6.1->7->15->16

        路径3:  1->4->6.1->6.2->7->15->16

        路径4:  1->4->6.1->7->15->16

        路径5:  1->4->15->16

4、设计测试用例

用例编号

条件

输入

预期输出

实际输出

Case_1

**

******

Case_2

**

******

Case_3

**

******

Case_4

**

******
     Case_5********

例题2:

 实验代码如下:

1.  画程序控制流图

2.将程序的流程图转换为控制流图

3.计算程序环形复杂度

环形复杂度有 3 种计算方法

(1)控制流图中的区域数等于环形复杂度

        如上图所示,结点4、7、结束形成一个区域;

        结点9、10、12、结束形成一个区域;

        结点8、9、12、14、结束形成一个区域;

        最后一个大区域由结点4、7、14、结束形成。

        共有4个区域。

(2)环形复杂度  V(G)=E-N+2, E为控制流图中的边数,N为控制流图中的结点数.

        九个结点,十一条边

        V(G)=11-9+2=4

(3)环形复杂度  V(G)=P+1, P为数据流图中的判定结点数

        判断结点为“出现条件判断”(出现分支)的结点,分别为结点4、8、9。

        共有三个判定结点。

        V(G)=3+1

4.  导出测试用例

根据环形复杂度的计算可得出基本路径法的 例子的 4 条独立路径
路径11→4→7→结束语句  
路径21→4→8→9→11→结束语句  
路径31→4→8→9→10→结束语句  
路径41→4→8→13→结束语句


5.  准备测试用例

根据基本路径法的例子中的判断结点给出的条件,选择合适的数据来确保上述 4 条路径均得到执行。

测试用例输入数据预期结果
用例1a=2\b=5\c=3输出“不能构成三角形!”
用例2a=6\b=6\c=3输出“等腰三角形”
用例3a=6\b=6\c=6输出“等边三角形”
用例4a=3\b=4\c=5输出“普通三角形”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/597727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

连通“数据”,让制造变“聪明”

说起数据智能&#xff0c;你第一时间想到的是什么呢&#xff1f;是科技感十足的智慧城市&#xff1f;还是炫酷的人工智能景象&#xff1f; 数据作为企业的战略资产越来越受到重视&#xff0c;从最初的数据协助业务协同&#xff0c;转化为数据驱动业务&#xff0c;数据驱动运营…

组播应用:SW1、SW2、RT1、RT2、AC1运行PIM-SM

SW1、SW2、RT1、RT2、AC1运行PIM-SM,SW1 Vlan10为C-BSR和C-RP;SW1产品网络(PC1)启用组播,用VLC工具串流播放视频文件“1.mp4”,模拟组播源,设置此视频循环播放,组地址232.1.1.1,端口1234,实现总公司和分公司收看视频,用PC2测试。 一、SW1、SW2、RT1、RT2、AC1配置如…

CV每日论文--2024.5.7

1、Vibe-Eval: A hard evaluation suite for measuring progress of multimodal language models 中文标题&#xff1a;Vibe-Eval: 一个测量多模态语言模型进度的严格评估套件 简介&#xff1a;本文介绍了一种新的开放评估基准 Vibe-Eval,用于评估多模态对话模型的性能。 Vibe…

C++学习笔记——对仿函数的理解

文章目录 思维导图仿函数出现的逻辑仿函数使用上的巧妙 仿函数的本质仿函数的优势仿函数语法的巧妙 思维导图 仿函数出现的逻辑 我们在学习stack时会遇到一些新的问题&#xff0c;这些问题需要我们使用非类型模板参数去解决&#xff0c;即我们需要在设计类时需要有一个途径去快…

Mujoco210和Mujoco-py在 Ubuntu22.04 下的安装

mujoco和mujoco-py的关系&#xff1a;mujoco是一个物理引擎&#xff0c;主要应用于强化学习和最优化控制领域。mujoco-py是mujoco编程的 Python 接口&#xff0c;由OpenAI Gym开发&#xff0c;可以使用mujoco_py方便地调用mujoco的API。 mujoco官网&#xff1a; https://mujoco…

Elementui的el-footer标签使用报错

Elementui的el-footer标签使用报错 其余标签的使用没有报错信息 el-footer的报错信息 原因: ​ 警告信息表示 Vue 不识别 <el-footer> 解决方式: 在组件中进行引入和暴露

编程入门(六)【Linux系统基础操作二】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 &#x1f525;前言&#x1f680;文件与目录的操作命令cd change directory的缩…

代码随想录算法训练营Day12 | 二叉树理论基础、递归遍历、迭代遍历、统一迭代

今日收获&#xff1a; 二叉树的递归遍历二叉树的迭代遍历&#xff0c;中序的迭代法和前、后序不一样二叉树的统一迭代法主要是用了标记法来实现&#xff08;要处理的节点放入栈之后&#xff0c;紧接着放入一个空指针作为标记&#xff09; 二叉树理论基础篇 题目分类 题目分…

ICode国际青少年编程竞赛- Python-1级训练场-多变量应用

ICode国际青少年编程竞赛- Python-1级训练场-多变量应用 1、 a 1 b 2 for i in range(4):Spaceship.step(a)Dev.step(b)Dev.step(-b)a a 1b b 12、 a 2 b 5 for i in range(3):Spaceship.turnLeft()Spaceship.step(a)Spaceship.turnRight()Spaceship.step(b)a a …

在线民宿预约系统:景区住宿预订新体验

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

简述 BIO 、NIO 模型

BIO : 同步阻塞I/O&#xff08;Block IO&#xff09; 服务器实现模式为每一个连接一个线程&#xff0c;即客户端有连接请求时服务器就需要启动一个线程进行处理&#xff0c;如果这个连接不做任何事情会造成不必要的线程开销&#xff0c;此处可以通过线程池机制进行优化。 impo…

分享5款PDF编辑软件

PDF编辑不易&#xff0c;有需要的朋友可以试试这5款专业软件&#xff0c;每一个都能直接在PDF文件上编辑&#xff0c;不同的软件对PDF可编辑的范围不同&#xff0c;大家可以按需求选用。 1.edge浏览器 Edge浏览器不仅是浏览网页的得力助手&#xff0c;还悄然成为了轻量级PDF管…

【Stream 流】通过一个例子看遍所有Stream API使用场景

前言 上篇文章记录了方法引用&#xff0c;Lambda表达式等基础的知识点&#xff0c;这篇文章主要结合课设项目详细介绍Stream 流的API以及它的主要场景。 Stream API作用 在Java 8及其以后的版本中&#xff0c;Stream API为处理集合数据提供了强大而灵活的功能。有了Stream AP…

Petalinux的使用——定制Linux系统

文章目录 配置petalinux运行环境petalinux设计流程 配置petalinux运行环境 Petalinux的安装在文章Ubuntu镜像源的更改及其Petalinux的安装中已经介绍&#xff0c;下面介绍petalinux运行环境的配置过程。 进入到petalinux的安装路径下&#xff0c;使用下面的命令对petalinux的运…

类和对象-Python-第一部分

初识对象 使用对象组织数据 class Student:nameNonegenderNonenationalityNonenative_placeNoneageNonestu_1Student()stu_1.name"林军杰" stu_1.gender"男" stu_1.nationality"中国" stu_1.native_place"山东" stu_1.age31print(stu…

《视觉十四讲》例程运行记录(2)——运行ch4的例程评估轨迹误差

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、运行ch4的example1. 编译例程2. 运行报错(1) 报错一(2) 报错二 一、运行ch4的example 1. 编译例程 (1) 在slambook2/ch4/example目录下&#xff0c;创建build…

五月节放假作业讲解

目录 作业1&#xff1a; 问题&#xff1a; 结果如下 作业2&#xff1a; 结果: 作业1&#xff1a; 初始化数组 问题&#xff1a; 如果让数组初始化非0数会有问题 有同学就问了&#xff0c;我明明已经初始化定义过了&#xff0c;为啥还有0呀 其实这种初始化只会改变第一个…

【嵌入式笔试题】网络编程笔试题

非常经典的笔试题。 2.网络编程(29道) 2.1列举一下OSI协议的各种分层。说说你最熟悉的一层协议的功能。 ( 1 )七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理 层。 ( 2 )五层划分为:应用层、传输层、网络层、数据链路层、物理层。 ( 3 )…

视频改字祝福/豪车装X系统源码/小程序uniapp前端源码

uniapp视频改字祝福小程序源码&#xff0c;全开源。创意无限&#xff01;AI视频改字祝福&#xff0c;豪车装X系统源码开源&#xff0c;打造个性化祝福视频不再难&#xff01; 想要为你的朋友或家人送上一份特别的祝福&#xff0c;让他们感受到你的真诚与关怀吗&#xff1f;现在…

VALSE 2024年度进展评述内容分享-视觉基础大模型的进展

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…
最新文章