白盒测试的3中主要方法(cont.)
文章目录
- 白盒测试简介
- 逻辑覆盖测试法
- SC
- DC
- CC
- CDC
- MCC
- MCDC
- 基本路径测试法
- BPC测试的四个步骤
- 循环路径覆盖法
白盒测试简介
静态白盒测试也称为结构化分析。
动态白盒测试又称为结构化测试。
以下所说的应该均属于动态白盒测试。
逻辑覆盖测试法
SC
sentence coverage 语句覆盖
设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
DC
decision coverage 判定覆盖/分支覆盖
使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。
CC
condition coverage 条件覆盖
使每个判断中每个条件的可能取值至少满足一次。
CDC
condition-decision coverage 条件-判定覆盖(条件的粒度比判定小)
判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
MCC
multiple condition coverage 条件组合覆盖/多重条件覆盖
得判断中每个条件的所有可能组合至少出现一次,并且每个判断本身的判定结果也至少出现一次。
满足条件组合覆盖,一定满足判定覆盖、条件覆盖、条件判定组合覆盖
问题:
①效率不高,有些测试没必要
②条件/判定还不够强,有些路径仍未覆盖
MCDC
modified condition decision coverage
修正条件-判定覆盖
①每个判定的所有可能结果至少能取值一次;
②判定中的每个条件的所有可能结果至少取值一次;
③一个判定中的每个条件曾经独立地对判定的结果产生影响;
④每个入口和出口至少执行一次
主要改进之处在于加了这样一条约束:
一个判定中的每个条件曾经独立地对判定的结果产生影响
基本路径测试法
BPC测试的四个步骤
依据代码画出流程图/控制流图
确定控制流图的圈复杂度
圈复杂度V(G)是基本路径的上限,起参考作用。有三种计算方式
其中第二种慎用,因为简单判断不好确定。确定线性独立路径的基本集合(基本路径集)
独立路径: 至少引入一系列新的处理语句或条件的任何路径
基本集: 由独立路径构成的集合
设计测试用例覆盖每条基本路径
小结以上覆盖的关系
循环路径覆盖法
未完待续,敬请赐候
白盒测试的3中主要方法(cont.)相关推荐
- 论黑盒测试与白盒测试在软件测试中的不同作用
一.引言: 黑盒测试着眼于外部结构,不考虑内部结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明:而白盒测试着眼于内部结构,对软件的过程性细节做细致的检查.随着软件市场的成熟,人们对 ...
- 白盒测试-覆盖测试(六种覆盖方法)
白盒测试-覆盖测试(六种覆盖方法) 测试覆盖率 测试覆盖率:用于确定测试所执行到的覆盖项的百分比.其中的覆盖项是指作为测试基础的一个入口或属性,比如语句.分支.条件等.测试覆盖率可以表示出测试的充分性 ...
- 使用java中replaceAll方法替换字符串中的反斜杠
今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex. ...
- java中collection方法_Java 8中的Collector toCollection()方法
toCollection()Java中的Collector类的方法返回一个Collector,该Collector以遇到的顺序将输入元素累积到一个新的Collection中. 语法如下static & ...
- 【面向对象编程】(4) 类的继承,重构父类中的方法
各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...
- PHP中魔术方法的用法
PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...
- Java中父类方法重写有哪些需要注意的?
在继承关系中,子类会自动继承父类中公共的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写.需要注意的是,子类中重写的方法需要和父类被重写的方法具有相同的方法名.参数列表以及返回 ...
- Java 8 中的方法引用,轻松减少代码量,提升可读性!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1. 引言 Java8中最受广大开发中喜欢的变化之一是因为 ...
- Vue 中定义方法页面上使用
vue中定义方法的格式 为什么要这样定义 最近在学习前段,特别是HBuildX 我看里面很多方式都是这样使用,所以想强加练习 如何引用 当然我们的editArticle也可以直接放到js中,如下: 都 ...
最新文章
- python自动开发之(算法)第二十七天
- 人工智能思维导图一张,收藏!
- HibernateDaoSupport的使用
- 小程序 座位管理系统(一)(纯前端)
- [Leedcode][JAVA][第198题][打家劫舍][动态规划]
- 二层交换网络_网络中的第2层交换
- 各类科技活动获奖公示网站
- 轻量级的Canvas类库zrender使用笔记 :简单自定义图件开发
- 微软 HoloLens 2 的幕后故事
- 一系列JavaScript的基础工具
- 使用so动态链接库g++正确,gcc undefined reference错误
- 黑马程序员,黑马论坛---云2期,已就业45人,平均薪水6806【8月23日更新】
- js获取当前日期yyyymmdd
- ( cf1249 )Codeforces Round #595 (Div. 3)部分题解
- gini函数和entropy 函数 数据分类效果对比
- Python基础知识——函数的基本使用、函数的参数、名称空间与作用域、函数对象与闭包、 装饰器、迭代器、生成器与yield、函数递归、面向过程与函数式(map、reduce、filter)
- 2421:Exchange Rates——动态规划
- Element UI(一)
- 声网如何添加与配置项目
- 用NetTerm连接虚拟机的telnet服务,打造轻松自如的虚拟机实验环境