软件测试Day5|软件测试理论03

news2024/11/15 19:37:17

白盒测试方法

针对程序的代码进行测试,代码覆盖率高;缺点:覆盖所有代码路径大、业务功能可能覆盖不全、测试开销大

  • 静态方法:1)桌面检查(一个人检查);2)代码审查(开会议检查,卡法人员说明功能;主要是代码规范);3)代码走查(开会,与会人员提前准备测试数据,人工计算逻辑走向;主要是功能实现);4)代码扫描工具
  • 动态方法:
    • 逻辑覆盖法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    • 基本路径测试法

逻辑覆盖法

  • 是通过对程序逻辑结构的遍历实现程序的覆盖
  • 覆盖率 = 至少被执行一次的item数 / item总数
    在这里插入图片描述

1.语句覆盖法

  • 语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数
  • 以下语句覆盖率 = 4/4 = 100%
数据语句
x=3,y=1,magic=21,4
x=-3,y=-1,magic=-22,3,4
  • 局限:语句覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】

2.判定覆盖法

  • 判定覆盖也称为分支覆盖;使得程序中的每个判断执行的”真“”假“都至少被执行一次
  • 判定覆盖率 = 每个判定的真假值至少出现一次 / 判定结果的总数
  • 以下判定覆盖率 = 4/4 = 100%
数据P1P2
x=3,y=1,magic=2TF
x=-1,y=0,magic=-2FT
  • 判定覆盖能满足语句覆盖
  • 局限:判定覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】

3.条件覆盖法

  • 设计测试用例,使得每个判定中的每个条件至少有一次取真值,有一次取假值
  • 条件覆盖率 = 每个条件的真假值至少出现一次 / 条件结果的总数
  • 以下条件覆盖率 = 6/(2*3) = 100%
数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-1,y=3,magic=2FTFFFa-c-e-f
  • 局限:100%条件覆盖并不能完全覆盖判定覆盖;

4.判定条件覆盖法

  • 设计测试用例,使得每个判定以及每个判定中的每个条件至少有一次取真值,有一次取假值;即同时满足判定覆盖和条件覆盖

  • 判定条件覆盖率 = 每个判定和每个条件的真假值至少出现一次 / (判定结果总数+条件结果总数)

  • 以下数据判定条件覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-d-f
  • 判定条件覆盖能满足判定覆盖语句覆盖条件覆盖
  • 局限:判定条件覆盖可能不能准确的判断运算中的逻辑关系错误(or);【如果语句a中的 && 变成 || ,以上两个用例仍正确通过;】

5.条件组合覆盖法

  • 设计测试用例,使得每个判定中的每个条件所有可能组合至少进行一次

  • 判定条件覆盖率 = 条件组合至少出现一定的数量 / (条件组合总数)

  • 案例中判定2个-》条件2+1个-》条件组合2*2+2=4+2=6

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-3,y=15,magic=2FTFFFa-c-e-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-e-f
  • 条件组合覆盖能满足判定条件覆盖判定覆盖语句覆盖条件覆盖
  • 局限:不能保证所有路径都覆盖【以上差a-b-d-f】

5.路径覆盖法

  • 设计测试用例,覆盖程序

  • 路径覆盖率 = 至少被执行一次的路径数 / 总路径数

  • 案例中两个分支 2*2 = 4条路经

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=-2TTTTTa-c-d-f
x=-3,y=3,magic=-2FTTFTa-c-d-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=15,magic=-2FTFFFa-c-e-f
  • 路径覆盖不能满足条件覆盖也就不能满足条件组合覆盖以及判定条件覆盖【C2为假没有】
  • 局限:逻辑循环覆盖工作量巨大

基本路径覆盖法

  • 在程序控制流图的基础上,通过分析程序的环路复杂性,导出可执行路径集合,从而设计测试用例。
  • 案例:数字代表代码行数
    在这里插入图片描述在这里插入图片描述
    流图G的圈复杂度为V(G)=路径总数,E为边的数量,N为节点的数量,P为判定节点的数量
    1)V(G) = E-N+2 = 10-8+2 = 4;
    2)V(G) = P+1 = 3+1 = 4
数据结果路径
iRecodNum=0,x=04-14
iRecodNum=1,iTtype=0x=24-6-7-14
iRecodNum=1,iTtype=1x=104-6-9-10-13-4-14
iRecodNum=1,iTtype=2x=204-6-9-12-13-4-14

总结

  • 主要用于单元测试
  • 先静态,后动态
  • 设计用例一般使用基本路径测试,重点模块使用多种逻辑覆盖率标准

逻辑覆盖方法间的覆盖关系 and 发现错误能力排序

语句覆盖判定覆盖判定条件覆盖条件组合覆盖
语句覆盖条件覆盖判定条件覆盖条件组合覆盖
语句覆盖判定覆盖路径覆盖

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音频——硬件拓扑

文章目录 硬件拓扑I2S 数据通路五线模式四线模式两线 TX两线 RX 典型应用硬件连接数据流 硬件拓扑 控制路径:UART/I2C/SPI数据路径:I2S 简略图如下 I2S 数据通路 五线模式 四线模式 两线 TX 两线 RX 典型应用 硬件连接 控制信号:SPI 用…

网络通讯接收组播异常问题技术分析报告

1、问题概述 2023年8月24日,深夜约22:10分,内部网络E5刀片上运行的组播接收软件未收到目的地址是230.1.6.4的航迹组播报文,利用交换机Web页面查看交换机组播表项,发现E5刀片连接的交换机29端口没有任何组播表项。重新运行组播接收…

每日一题 2511. 最多可以摧毁的敌人城堡数目

难度:简单 翻译:寻找距离最远的 1 和 -1 的组合,要求它们之间只有0 class Solution:def captureForts(self, forts: List[int]) -> int:res, t 0, -1for i, fort in enumerate(forts):if fort -1 or fort 1:if t > 0 and fort ! f…

687. 最长同值路径

687. 最长同值路径 C代码:DFS int res; // int res 0; 这种初始化有问题int dfs(struct TreeNode* root, int val) {if (root NULL) {return 0;}int left dfs(root->left, root->val);int right dfs(root->right, root->val);res fmax(res, lef…

【STM32】学习笔记(TIM定时器)

TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且…

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装

nvidia-smi nvcc -V 及 CUDA、cuDNN 安装 1. 问题缘由2. 分析3. CUDA Driver API 安装3.1 Software & Updates3.2 官网下载 4. CUDA Runtime API 安装5. 安装 cuDNN5.1 cuDNN下载 6. 一点点小注意事项 1. 问题缘由 之前查找 CUDA 版本时都是直接使用的 nvidia-smi 指令&am…

软考A计划-网络工程师-复习背熟-数据通信基础和局域网技术

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Power View

界面 切换可视化效果 对于已经上传到透视表的数据,选择power view,形成表格后。

Windows开发调试纯Linux代码(WSL+Qt+MobaXterm)环境搭建(超详细教程)

为何要调试Linux代码 1 学习Linux环境开发 想必很多同学都想学习Linux环境下的开发,一个是很多纯服务端程序不需要Windows这样的窗口界面。另一个纯服务端开发Linux的命令行以及脚本优势也比较明显。相反,Windows在纯服务端编程方面并没有Linux有优势。…

拓扑排序算法 -- dfs、bfs

210. 课程表 II 该题用到「拓扑排序」的算法思想,关于拓扑排序,直观地说就是,让你把⼀幅图「拉平」,⽽且这个「拉平」的图⾥⾯,所有箭头⽅向都是⼀致的,⽐如上图所有箭头都是朝右的。 很显然,如…

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE的复现

CVE-2023-32315:Openfire管理控制台身份验证绕过到RCE复现 前言 本次测试仅供学习使用,如若非法他用,与本文作者无关,需自行负责!!! 一.Openfire简介 Openfire是根据开源Apache许可证授权的…

C语言——指针基本语法

概述 内存地址 在计算机内存中,每个存储单元都有一个唯一的地址(内存编号)。 通俗理解,内存就是房间,地址就是门牌号 指针和指针变量 指针(Pointer)是一种特殊的变量类型,它用于存储内存地址。 指针的实…

46、SpringBoot输入校验--JSR 303

★ Spring Boot的输入校验 springboot支持两种校验方式:1. Spring原生提供的 Validation,这种验证方式需要开发者手写验证代码,比较繁琐。就是普通的if判断2. 使用JSR 303的校验,这种验证方式只需使用注解、即可以声明式的方式进…

封装(个人学习笔记黑马学习)

1、格式 #include <iostream> using namespace std;const double PI 3.14;//设计一个圆类&#xff0c;求圆的周长 class Circle {//访问权限//公共权限 public://属性//半径int m_r;//行为//获取圆的周长double calculateZC() {return 2 * PI * m_r;} };int main() {//通…

MBA/MEM联考已经过了“蛮干”的时间段了……

如果MBA/MEM备考存在有效的方式&#xff0c;倾注时间一定是最靠谱的&#xff01;如果要靠谱的一点的方式&#xff0c;那就是大量的倾注时间&#xff01;可问题目前已经没有“大量”的时间可以用了&#xff0c;因为对于在职考生而言&#xff0c;最难得得也恰恰就是时间&#xff…

软件总体部署:Total Software Deployment Crack

TNI 6.1&#xff1a;数据传输模式的新界面和功能 根据您向支持团队提供的反馈&#xff0c;我们对“数据传输”窗口的机制和界面进行了重大重新设计。 概述 远程和自动化软件部署 全面软件部署&#xff1a;企业网络的托管软件部署。 远程和自动化软件部署 Total Software Deplo…

碳中和数据合集(含上市公司碳排放、碳减排、排污费、环境税等数据)1990-2022年

数据简介&#xff1a;“推动企业形成绿色生产方式和生活方式”“支持有条件的地方和重点行业、重点企业率先达到碳排放峰值”。可见&#xff0c;企业已成为应对气候变化、推动低碳转型、助力“双碳”目标实现的主力军&#xff0c;推动其绿色、低碳化转型已成为未来经济发展的必…

OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字

目录 1.绘制直线line() 2.绘制圆形circle() 3.绘制椭圆形ellipse() 4.绘制矩形rectangle() 5.绘制多边形 fillPoly() 6.绘制文字putText() 7.例子 1.绘制直线line() CV_EXPORTS_W void line(InputOutputArray img,Point pt1, Point pt2,const Scalar& color,int t…

“宽带中国”城市试点与专利匹配数据,做一个多期DID(2010-2021)

数据简介&#xff1a;人类正在经历以互联网为基础的第三次技术革命&#xff0c;作为以“互联网”为底层基础的数字经济&#xff0c;以5G、人工智能和大数据中心为代表的数字基础设施建设和普惠宽带网络基础设施建设成为数字经济可持续发展的动力。工业和信息化部、国家发展和改…

uniapp小程序单页面改变手机电量,头部通知的颜色效果demo(整理)

onShow(){ // 改变电池的颜色 wx.setNavigationBarColor({ frontColor: ‘#ffffff’, //只支持两种颜色 backgroundColor: ‘#ffffff’, animation: { duration: 1 } }) }