当前位置:网站首页>软件测试与质量学习笔记3--白盒测试
软件测试与质量学习笔记3--白盒测试
2022-07-06 09:13:00 【萍果馅是年糕】
1.白盒测试的两种常用技术:
覆盖测试:在测试过程中,以覆盖某些程序元素为测试目标的测试。
路径测试:从流程图上讲,程序的一次执行对应于从入口到出口的一条路径,针对路径的测试即为路径测试。从广义的角度讲,任何有关路径分析的测试都可以被称为路径测试。
2.白盒测试--基本路径法
在不能做到所有路径覆盖的前提下,如果某一程序的每一个独立路径都被测试过,那么可以认为程序中的每个语句都已经检验过了,即达到了语句覆盖。这种测试方法就是通常所说的基本路径测试方法。
3.控制流图
可简称流图,是对程序流程图进行简化后得到的,它可以更加突出的表示程序控制流的结构。
控制流图中包括两种图形符号:节点和控制流线。
节点由带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判定框。
控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。
注意:每个圆圈代表控制流图的节点,可以表示一个或多个语句。圆圈中的数字对应程序中某一行的编号(即可以写多个数字)。箭头代表边的方向,即控制流方向
具体见图片
其中,包含条件的节点被称为判定节点(也叫谓词节点),由判定节点发出的边必须终止于某一个节点,由边和节点所限定的范围被称为区域。
4.图矩阵
图矩阵是控制流图的矩阵表示形式。
图矩阵是一个方形矩阵,其维数等于控制流图的节点数。矩阵中的每列和每行都对应于标识的节点,矩阵元素对应于节点间的边。
通常,控制流图中的结点用数字标识,边则用字母标识。如果在控制流图中从第i个结点到第j个结点有一个标识为x的边相连接,则在对应图矩阵的第i行第j列有一个非空的元素x。
5.环形复杂度及其计算方法
环形复杂度又称为圈复杂度,以图论为基础,为我们提供了非常有用的软件度量。可用如下二种方法之一来计算环形复杂度:
方法1:给定控制流图G的环形复杂度一v(G),定义为
v(G)=E-N+2 环形复杂度=边的数量-节点数量+2
其中,E是控制流图中边的数量,N是控制流图中的节点数量。
方法2:给定控制流图G的环形复杂度一v(G),也可定义为
v(G)= P+1 环形复杂度=判定节点的数量+1
其中,P是控制流图G中判定节点的数量。
6.独立路径
是指程序中至少引入了一个新的处理语句集合或一个新条件的程序通路。
采用流图的术语,即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。
注意:“..."表示后面剩下的路径是可以选择的,原因在于存在循环结构。
7.基本路径测试法测试步骤
·基本路径测试步骤:
1.画出程序的控制流图
2.计算流图G的环路复杂性V(G)
3.确定只包含独立路径的基本路径集
4.根据上面的独立路径,设计测试用例,使程序分别沿上面
的独立路径执行。
边栏推荐
- QT creator shape
- MySQL的一些随笔记录
- [recommended by bloggers] C MVC list realizes the function of adding, deleting, modifying, checking, importing and exporting curves (with source code)
- 引入了junit为什么还是用不了@Test注解
- neo4j安装教程
- API learning of OpenGL (2004) gl_ TEXTURE_ MIN_ FILTER GL_ TEXTURE_ MAG_ FILTER
- Ubuntu 20.04 安装 MySQL
- 解决扫描不到xml、yml、properties文件配置
- [reading notes] rewards efficient and privacy preserving federated deep learning
- Ansible practical series I_ introduction
猜你喜欢
CSDN问答标签技能树(五) —— 云原生技能树
Data dictionary in C #
Postman Interface Association
Use dapr to shorten software development cycle and improve production efficiency
A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
【博主推荐】SSM框架的后台管理系统(附源码)
MySQL 20 MySQL data directory
PyCharm中无法调用numpy,报错ModuleNotFoundError: No module named ‘numpy‘
[ahoi2009]chess Chinese chess - combination number optimization shape pressure DP
随机推荐
Solve the problem that XML, YML and properties file configurations cannot be scanned
Introduction to the easy copy module
Windows下安装MongDB教程、Redis教程
Invalid default value for 'create appears when importing SQL_ Time 'error reporting solution
@controller,@service,@repository,@component区别
La table d'exportation Navicat génère un fichier PDM
Django运行报错:Error loading MySQLdb module解决方法
neo4j安装教程
Mysql 其他主机无法连接本地数据库
February 13, 2022 - Maximum subarray and
SSM integrated notes easy to understand version
CSDN question and answer module Title Recommendation task (I) -- Construction of basic framework
虚拟机Ping通主机,主机Ping不通虚拟机
Solution: log4j:warn please initialize the log4j system properly
Swagger、Yapi接口管理服务_SE
Yum prompt another app is currently holding the yum lock; waiting for it to exit...
[download app for free]ineukernel OCR image data recognition and acquisition principle and product application
[BMZCTF-pwn] 11-pwn111111
机器学习--人口普查数据分析
CSDN-NLP:基于技能树和弱监督学习的博文难度等级分类 (一)