IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 软件测试-白盒测试:程序结构分析 -> 正文阅读

[Python知识库]软件测试-白盒测试:程序结构分析

程序结构分析

参考文献:
软件测试第4章白盒测试一

  • 控制流分析:
    控制流图:由节点和线组成
    控制流图和矩阵:
    控制流图
    控制流图矩阵
    需要注意的是:在控制流图中,节点包括菱形表示的出口的多条流线相交的汇合点。
    程序结构的基本要求:
    a. 转向并不存在的标号;
    b. 没有用的语句标号;
    c. 从程序入口进入后无法达到的语句;
    d. 不能达到停机语句的语句。
    检查可达性:
    检查可达性
  • 数据流分析
    如果程序中某一语句执行时能改变某程序变量V的值,则称V是被该语句定义的。如果一语句的执行引用了内存中变量V的值,则说该语句引用变量V。
    可达性定义:
    a. 语句i对变量V的定义,表示为 V i V_i Vi?
    b. 如果在控制流图中一条路径并未对变量V定义,那么该路径就是变量V的明确定义
    c. 如果从节点i到节点j的入口(或出口),变量V有一条明确定义路径,定义 V i V_i Vi?便说是达到了结点j的入口(或出口)。
    相关定义:
    s i s_i si?: 表示达到i的入口的变量定义的集合。(达到其前趋出口的定义的集合,也就是前趋节点的出口的并集)
    t i t_i ti?: 表示达到i的出口的变量定义的集合。(去掉未定义的,加入新定义的)
    p i p_i pi?: 是节点i保存的所有定义的集合
    c i c_i ci?: 是节点i中生成的定义的集合
    t i = ( s i ∩ p i ) ∪ c i t_i=(s_i∩p_i)∪c_i ti?=(si?pi?)ci?
    s i = ? j ∈ x i t j s_i=\bigcup\limits_{j∈x_i}t_j si?=jxi???tj?
    s i = ? j ∈ x i ( s j ∩ p j ) ∪ d i s_i=\bigcup\limits_{j∈x_i}(s_j∩p_j)∪d_i si?=jxi???(sj?pj?)di?
    d i = ? j ∈ x i c j d_i=\bigcup\limits_{j∈x_i}c_j di?=jxi???cj?
    检查可达性
    引用未定义变量:对每一结点i,我们依次考虑语句i引用的每一变量,如果对任何这样的变量V,并没有V的定义达到i,那么程序含有一个错误。
    未曾使用的定义:对于每一变量定义 V i V_i Vi?,我们依次考虑由 V i V_i Vi?达到的每个程序结点j,如果没有引用变量V的相应语句,则程序中含有一个异常。
  • 信息流分析
    求M、N的商,Q为商,R为余数
    信息流分析
    信息流分析
    图a给出每一语句执行时所用到其输入值的变量。其中,为什么语句4执行时用到了M和N,我的想法是,因为循环的判断语句(3)用到了M和N。
    图b给出了其执行可能直接或间接影响输出变量终值的一些语句。其中,因为对Q的定义,并未影响到R的变化,所以R不受语句1、2的影响,但是Q的值受到R值影响。
    图c表明了哪个输入值可能直接或间接影响输出变量。(有赋值语句存在都算吧)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:14:01  更:2022-04-06 16:16:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:45:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码