白盒测试方法之逻辑覆盖
单元测试基本
是指对软件中的最小可测试单元进行检查和验证。单元测试是软件测试中最基础的测试,集成测试、功能测试和系统测试都建立在单元测试之上。单元测试的对象是构成软件产品或系统的最小的独立单元,如封装的类或对象、独立的函数、进程、子过程、组件或模块等。
单元测试的用例设计要求
对于单元测试用例的设计和程序的实现过程,主要集中在白盒测试方法之上,并力求达到下列测试要求1.对程序模块所有独立的执行路径至少要测试一次。2.对所有逻辑判定,其结果为真、假两种情况至少要测试一次。3.对程序进行边界检查(常见的如数据越界检验)。4.检验内部数据结构的有效性。
逻辑覆盖法
逻辑覆盖法是白盒测试中最主要的测试方法逻辑覆盖分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖,其基本思想不同,产生的测试用例不同,覆盖范围也有所不同以代码为例介绍一下以下几种逻辑覆盖方法:Dim a,b As IntegerDim c As DoubleIf (a > 0 AND b > 0) ThenIf (a>1OR c>1) Then
我将代码逻辑转换为流程图如下:
语句覆盖
首先我们来说语句覆盖:
基本思想:设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
每个可执行语句:每个语句,那么下图中执行为:1->2->3->4
语句覆盖的不足:
1.在使用语句覆盖法进行测试用例设计时,能够使得所有的执行语句都被测试,但是不能准确判断运算中的逻辑关系错误。
例如:在这个例子中,如果程序将M的条件“(a>0 AND b >0)”写成"(a>0 0R b>0)”,这时的测试用例仍然可以覆盖所有可执行语句,但不能发现其中的逻辑错误。
判断覆盖
基本思想:是使每个判断的取真值和取假值都至少经历一次(T代表正确,F代表错误)
如下图:
编写判断测试用例:
要求:
执行用例1,判定(A > 1 and B == 0)为真,执行X= X/A,X =1/3;
判定(A== 2 or x > 1)为假,不执行X =× +1;程序结束。执行用例2,判定(A > 1 and B == 0)为假,不执行X=X/A;
判定(A== 2 or x > 1)为真,执行X = X + 1 ,X = 4 ; 程序结束。
使用Python Unittest 实现上述用例
判定-条件覆盖
基本思想:基本思想:确保设计足够或精巧的测试用例,可使得判断条件中所有条件的可能取值至少被执行一次,同时,所有判断的可能结果也至少被执行一次。
判定/条件覆盖,既要考虑到单个判定中每个条件的可能情况(A>1或A≤1,B=0或B≠0,A=2或A≠2,X>1或X≤1),也要考虑到每个判定的可能情况(路径ace和abd,或路径acd和abe)。用例及其遍历的路径如下所示:
A=2,B=0,X=4 aceA=1,B=1,X=1 abd
条件组合覆盖
基本思想:设计足够的测试用例,使判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。与判定一条件覆盖的差别是,条件组合覆盖不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所有可能组合都至少出现一次
满足多重条件覆盖准则的测试用例,必须覆盖以下8种组合:
满足多重条件覆盖准则的测试用例,必须覆盖以下8种组合:
A=2,B=0,X=4 ace 覆盖组合1,5
A=2,B=1,X=1 abe 覆盖组合2,6
A=1,B=0,X=2 abe 覆盖组合3,7
A=1,B=1,X=1 abd 覆盖组合4,8
白盒测试经典案例
白盒测试方法之逻辑覆盖相关推荐
- 白盒测试中的逻辑覆盖法
链接:在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖.分支覆__牛客网 来源:牛客网 1.语句覆盖: 设计若干测试用例,运行被测程序,使程序中每个可执行语句至少执行一次.只需设计一个测试用例:a ...
- 白盒测试简介与逻辑覆盖
概述 白盒测试是一种按照程序内部逻辑结构和编码结构设计测试数据或测试用例并完成测试的测试方法,又称为结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被 ...
- [5]白盒测试方法2—图覆盖准则
学习图覆盖准则需要了解一些其他基本概念. 可达:从某一个结点开始存在一条路径可达子图. 可达包括两个方面:语法可达和语义可达. 语法可达:通过语法构建某种子图结构当中,存在一条路径可达到这个子图. 语 ...
- 详解软件测试中白盒测试基本概念及四种白盒测试方法以及六种逻辑覆盖法(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖)
在这篇文章中,我们将讲解白盒测试的基本概念,以及四大常用的白盒测试方法. 一.白盒测试基本概念 1.白盒测试的定义 白盒测试又称为结构测试或逻辑驱动测试,它是把测试对象看成一个透明的盒子,它允许测试人 ...
- 白盒测试的条件覆盖标准强于判定覆盖为什么不对?什么是逻辑覆盖?覆盖强弱关系?判定覆盖与条件覆盖有什么不同?【知足且坚定,温柔且上进---两牛博客】
白盒测试的条件覆盖标准强于判定覆盖为什么不对?什么是逻辑覆盖?覆盖强弱关系?判定覆盖与条件覆盖有什么不同? 1.分析 2.什么是逻辑覆盖法 3.覆盖强弱关系(一般情况) 4.手动滑稽 5.什么是条件覆 ...
- 『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
软件测试--详解白盒测试基本概念,四种白盒测试方法 一.白盒测试基本概念 1.白盒测试的定义 2.白盒测试的测试对象 3.白盒测试的原则 4.白盒测试的分类 二.静态白盒测试 1.代码检查法 (1)代 ...
- 白盒测试方法的简单理解(通俗易懂)
白盒测试主要使用逻辑覆盖测试方法,包括语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖.路径覆盖等. 假设逻辑判断流程图如下图所示,我们简单来说说每种白盒测试方法是如何来进行的. 一.语句覆 ...
- 白盒测试方法|白盒测试的六种方法比较分析
白盒测试的六种方法比较分析 一.摘要 白盒测试是测试人员常用的一种测试方法,越来越受到测试工程师的重视.白盒测试并不是简单的按照代码测试用例而走,需要根据不同的测试需求,结合不同的测试对象,使用适合的 ...
- 「软件测试4」一文详解四大典型的白盒测试方法
软件测试--详解白盒测试基本概念,四种白盒测试方法 这是我参与更文挑战的第3天,活动详情查看:更文挑战 在上一篇文章中,我们讲到了黑盒测试.黑盒测试相较于白盒测试来说比较简单,不需要了解程序内部的代码 ...
最新文章
- PHP代码保护——Zend Guard
- 率土之滨鸿蒙之初,率土之滨:最记仇联盟?投诚玩家结算前被乱世,称是主盟要求...
- 动态代理,动态代理设计模式 ,JDK动态代理,cglib动态代理
- c#queue_带有C#示例的Queue.CopyTo()方法
- MATLAB基础教程(6)——使用matlab求解线性方程组
- CSS 实现DIV浮动定位不闪
- mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题
- 【git】git如何添加本地不是git的项目到Git库中
- eval()函数和zip()函数用法、enumerate()
- 剑指offer、把二叉树打印成多行(python)
- 学习笔记(3)-重叠社区发现Copra算法
- 常用网络拓扑在网络规划设计中
- spacy 名词性短语_使用spacy nlp进行词法化,词法化,停用词和短语匹配的快速指南...
- Magick.NET图片处理:解决Tga格式图片转Jpg后上下镜像问题
- ORACLE百例试炼五
- datatable分页增加首页和尾页
- ChatGPT专业应用:撰写节日营销活动方案
- DOS命令格式化制作U盘
- 微信公众号客服系统怎么生成能追踪效果的二维码?
- 计算机应用基础(专)【10】
热门文章
- 达内培训python 好不好
- Redis命令之HGetAll性能问题解决方案
- 最全阿里面试题:已拿offer,阿里P8岗位完整阿里技术面试题目,这些面试题你能答出多少
- java中ofd文件转pdf_OFD版式文档Java开发组件(iOFD)
- 如何通过OPENROWSET函数向SQL Server导入带工作组(mdw)保护的Access数据库数据(转)...
- 实现Gmail邮箱翻转效果之开篇
- 计算机考试怎么另存为,Word2007另存为.doc的更快捷方法
- 爬虫之机器图像识别(ORC库)
- “全球发布——主流声音 · 最强路径”在深落幕 引领主流生态融合新模式
- SQL Server最受欢迎技巧:解读DBA