软件质量保证常用测试方法---边界值测试,等价类测试,路径测试
本文内容整理自西安交通大学软件学院杜小智老师的mooc附件ppt
mooc链接:软件质量保证_中国大学MOOC(慕课)
文章目录
- 测试方法
- 边界值分析技术
- 边界值选择的基本原则
- 边界值测试分类
- 边界值分类
- 分类
- 案例
- 普通边界值测试
- 健壮性测试
- 最坏情况测试
- 健壮最坏情况
- 等价类测试
- 等价类概念
- 分类
- 两个动机
- 等价类测试原则
- 等价类测试流程
- 确定等价关系
- 生成测试用例
- 示例
- 确定等价关系
- 生成测试用例
- 输出域等价类
- 综合测试用例
- 进一步思考
- 等价类测试扩展
- 示例
- 等价关系
- 弱一般等价类测试
- 强一般等价类
- 弱健壮等价类测试
- 强健壮性等价类测试
- 示例2
- 路径测试
- 程序图
- 定义
- 例子
- DD路径
- 定义
- DD路径图
- 定义
- 拓扑路径
- 可行路径
- 测试覆盖指标
- 覆盖率
- 分类
- 逻辑覆盖指标
测试方法
边界值分析技术
基本思想:大量的软件错误通常发生在输入或输出范围的边界或边界附近
边界值选择的基本原则
边界值测试分类
- 对于一个明确范围的输入或输出,选择“最小值、略小于最小值、正常值、略小于最大值和最大值”
- min,min+,norm.max−,maxmin,min^+,norm.max^-,maxmin,min+,norm.max−,max
- 考虑异常,增加两个值进行测试“略小于最小值和略大于最大值”
- min−,max+min^-,max^+min−,max+
边界值分类
考虑到两个问题
- 是否关心无效输入的问题
- 是否考虑错误是由多个输入同时取极值造成的
分类
- 普通边界值测试
- 单缺陷假设、只考虑有效值
- 需要的测试用例数量:4n+14n+14n+1
- 健壮性测试
- 单缺陷假设、考虑有效值和无效值
- 需要的测试用例数量:6n+16n+16n+1
- 最坏情况测试
- 多缺陷假设、只考虑有效值
- 需要的测试用例数量:5n5^n5n
- 健壮最坏情况测试
- 多缺陷假设、考虑有效值和无效值
- 需要的测试用例数量:7n7^n7n
案例
普通边界值测试
健壮性测试
最坏情况测试
健壮最坏情况
等价类测试
等价类概念
- 定义:等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,或者进行相同的处理
- 测试某等价类的一组数据就等价于对这一类其他值测试
分类
- 有效等价类
- 无效等价类
两个动机
- 期望进行某种意义上的完备性测试
- 期望尽可能多地避免冗余测试
核心:对输入域和输出与进行等价划分
等价类测试原则
如果输入条件规定了取值范围,可定义一个有效等价类和两个无效等价类
如果规定了输入数据的个数,则类似地可划分出一个有效等价类和两个无效等价类
如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)
如规定了输入数据必须遵守的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
如果确知已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类
等价类的划分通常不能一步到位,需要多次尝试才能得到效果较好的等价类
等价类测试流程
确定等价关系
- 首先确定程序的所有输入条件
- 然后针对每一个输入条件,基于等价类划分原则将输入域分成两大类等价类:有效等价类和无效等价类
确定等价关系是等价类测试中最有挑战性的工作
生成测试用例
- 给每个等价类设置一个不同的编号
- 编写一个新的测试用例,尽可能多地包含还没被覆盖到的有效等价类;当所有的有效等价类都被覆盖之后,进入下一个步骤
- 编写一个新的测试用例,一次只包含一个还未被覆盖的无效等价类老当所有的无效等价类都被覆盖后,结束
示例
确定等价关系
生成测试用例
输出域等价类
综合测试用例
进一步思考
等价类测试扩展
- 划分依据
- 是否考虑无效等价类
- 单缺陷假设还是多缺陷假设
- 分类
- 弱一般等价类测试
- 强一般等价类测试
- 弱健壮等价类测试
- 强健壮等价类测试
示例
等价关系
弱一般等价类测试
强一般等价类
弱健壮等价类测试
强健壮性等价类测试
示例2
路径测试
- 白盒测试又称为结构性测试、透明盒测试、逻辑驱动测试或基于代码的测试
- 在不同点、不同分支检查程序的状态,从而确定程序的实际状态是否与预期状态一致
- 主要用于单元测试
- 包括路径测试和数据流测试
程序图
定义
程序图p=(V,E)p=(V,E)p=(V,E),V是节点的集合、E是有向边的集合。其中,节点表示的是程序中的语句或语句片段,边表示程序语句或语句片段之间的控制流
例子
DD路径
- DD路径(Decision to Decision Paths)是决策到决策的路径,是指一个语句序列
- 决策语句是指一个节点的入度或出度大于等于2
- 在DD路径汇中,其语句序列内部没有分支
- DD-路径可通过程序图中的节点组成的路径来定义
定义
DD路径是程序中的一条链,分为以下5种况
- 由一个入度为0的节点组成,对应于源节点
- 由一个出度为0的节点组成,对应于汇节点
- 有一个入度大于等于2或出度大于等于2的节点组成,对应于判定语句或其结束语句
- 由一个入度为1且出度为1的节点组成,对应于短分支
- 由长度大于等于1的最大链组成,对应于串行语句序列
DD路径图
定义
DD路径图DP={V,G}DP= \{V,G\}DP={V,G}是一个有向图,V是节点的集合、E是有向边的集合。其中,节点表示的是程序中的DD路径,边表示连续DD路径之间的控制流。
拓扑路径
理论上的可行路径
可行路径
实际上的可行路径
测试覆盖指标
覆盖率
- 覆盖率是用于度量测试完整性的一种手段
- 覆盖率=被执行到的测试项数量/总项数×100%\times 100\%×100%
分类
- 节点覆盖
- 定义:节点覆盖GnodeG_{node}Gnode是指采用给定的测试用例集作用于被测软件时,程序图中的所有节点都被遍历到,则称这组测试用例集满足节点覆盖。
- 边覆盖
- 定义:边覆盖GedgeG_{edge}Gedge是指采用给定的测试用例集作用于被测软件时,程序图中的所有边都被遍历到,则称这组测试用例集满足边覆盖。
- 路径覆盖
- 定义:路径覆盖GpathG_{path}Gpath是指采用给定的测试用例集作用于被测软件时,程序图中所有从源节点到汇节点的路径都被遍历到,则称这组测试用例集满足路径覆盖。
- 如果一个程序中存在循环,则很难满足路径覆盖指标
逻辑覆盖指标
- 语句覆盖
- 语句覆盖是指设计若干个测试用例,当将它们作用于被测程序后,程序中的每条可执行语句至少被执行一次。
- 由于程序图来源于程序代码,语句覆盖与节点覆盖相同。
- 判定覆盖
- 判定覆盖也称分支覆盖,是指设计一组测试用例,当他们作用于被测软件时,程序中每个判定的取真分支和取假分支至少各执行一次
- 判定覆盖等同于边覆盖
- 条件覆盖
- 条件覆盖是指设计足够多的测试用例,当他们作用于被测软件后,程序中每个判定条件的各种可能取值至少被执行一次
- 条件覆盖关注的是更为细致的条件取值情况,而不仅仅是整个判定的取值
- 判定-条件覆盖
- 判定-条件覆盖是哦安定覆盖和条件覆盖的结合,要求设计一组测试用例,针对被测程序运行完这些测试用例后,不仅程序中每个判定的各种取值至少被执行一次,而且每个判定中每个条件的各种取值页至少被执行一次
- 条件组合覆盖
- 条件组合覆盖是指设计足够多的测试用例,运行被测软件后,程序中每个判定的所有条件的可能取值组合都至少被执行一次
- 如果一个判定中包含n个简单条件,为达到条件组合覆盖,需要执行2n2^n2n种情况
- 路径覆盖
- 路径覆盖是指设计一组测试用例,当他们作用于被测软件时,程序中的所有路径都至少被覆盖一次
软件质量保证常用测试方法---边界值测试,等价类测试,路径测试相关推荐
- 山东大学软件质量保证与测试技术复习纲要
考纲 目录:https://blog.csdn.net/dkbnull/article/details/87933295 软件质量保证与测试技术复习提纲 1.3 1.5 2.1 2.3 2.5 ...
- 软件质量保证与测试PTA作业
Test1 8-1 软件测试的价值 IBM公司研究发现: 如需求分析阶段引入一个缺陷,在测试执行阶段前修改成本为1,在编码阶段后修改成本则为10,在维护阶段,修改成本则为100. 在测试阶段前的每个阶 ...
- 慕课软件质量保证与测试(第五章.课后作业)
慕课金陵科技学院.软件质量保证与测试.第五章.软件测试过程.课后作业 0 目录 5 软件测试过程 5.7 课后作业 5.7.1 课堂重点 5.7.2 测试与作业 6 下一章 0 目录 5 软件测试过程 ...
- 软件测试 8(结构性测试) -- 路径测试
软件测试专栏 上一篇 主目录 下一篇 目录 1 简介 2 DD路径&DD路径图 3 覆盖测试指标及方法 4 基路径测试 5 McCabe算法 [前言] 1 简介 结构性测试方法 基于被测程序的 ...
- 什么是独立路径软件测试,软件测试重点之基本路径测试
设计足够多的测试用例,要求覆盖程序中所有可能的路径 基本路径测试方法 路径测试就是从一个程序的入口开始,执行所经历的各个语句的完整过程.从广义的角度讲,任何有关路径分析的测试都可以被称为路径测试. 完 ...
- 耳机主动降噪测试(ANC)-耳机被动降噪测试(PNC),蓝牙耳机测试-
在现在的生活中,蓝牙耳机的应用已经越来越广泛.人们已经不再习惯于经常将手机放在耳边接听电话,在工作时,开车时,运动时,只需要戴上一个蓝牙耳机,就能一键接听电话,为人们的生活提供了极大的便利.客户选择蓝 ...
- 黑盒测试技术(概念等价类划分法详细)——软件质量保证与测试
概念: 不深入代码细节的测试方法称为动态黑盒测试.软件测试员充当客户 来使用它.又称闭着眼睛测试软件.主要针对软件界面和软件功能进 行测试. 不用关心软件的内部结构 站在用户角度看现有的功能是否被正确 ...
- 软件质量保证与测试笔记——江湖救急版
软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...
- 软件质量保证与测试技术习题
软件质量保证与测试技术习题 第一章 引论 第二章 软件质量与软件缺陷 第三章 软件测试基础 第4章 软件测试的方法 第五章单元测试.第六章集成测试作业 第七章系统测试作业 第八章验收测试作业 第一章 ...
最新文章
- 01 多线程概念及其实现方式
- 在Linux系统中修改目录的权限如何恢复
- RHEL 5搭建Samba服务器详细过程
- Redmonk 发布 Java 框架流行度调研结果
- 删除文件夹里的图片,打印删除日志
- 是什么牌子_水晶项链什么牌子好
- tcp状态转换--三次握手/四次挥手
- Mysql 查询当月时间数据
- Eclipse下载安装配置
- 不用for循环快速合并txt文本文件
- 虚拟机安装教程win7_vm16虚拟机|vmware16安装教程
- phpcms v9 邓士鹏(石家庄职业技术学院)
- 计量模型 | 时间固定效应与时间趋势项
- Stanford Algorithms 斯坦福算法课
- 2007noip提高组初赛总结
- poj 1228 Grandpa's Estate
- Java Web 学习笔记01 HTML基本用法
- 大学计算机专业实训课,大学计算机实训报告(共3篇).doc
- SaaS-多租户SaaS平台的数据库方案(数据库设计与建模)
- 港美股互联网券商系统建设
热门文章
- 常见的Python编程工作岗位有哪些?
- 从零开始的C1认证:任务四:艰巨挑战
- 力扣每日一题21.08.02网络延迟时间
- OMP步骤及可运行的python代码(个人理解版)
- 科学计算机主板,一分钟带你了解家庭常见电脑故障问题(主板篇)
- lego-LOAM跑自己的数据包无法显示全局点云地图解决(速腾聚创RS-LiDAR-16 雷达 )---SLAM不学无术小问题
- Cocos2dx物理引擎碰撞检测总结
- 苹果将进一步降低iPhone的定价,趁势狙击安卓手机
- oracle消耗资源,oracle中资源消耗查看
- python爬虫 requests模拟百度翻译