条件覆盖

如何用一个例子彻底解释白盒测试中语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖?

孤街醉人 提交于 2020-01-11 14:28:53
白盒测试 白盒测试 把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。 判断覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。 条件覆盖:是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。 条件判定覆盖:就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。 条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。 补充: (1)语句覆盖在所有的测试方法中是一种最弱的覆盖。 (2)判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖。 (3)路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。 举例 希望对你有用有用 软件工程考试的的拿走 加油 来源: CSDN 作者: 黑哥,走一遭 链接: https://blog

黑盒测试用例设计方法

北慕城南 提交于 2019-12-26 17:52:04
1. 概述 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 2. 等价类划分法 2.1. 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 2.2. 等价类划分法的应用 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义恰巧相反。 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。 划分等价类的六大原则: 在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. 例:输入值是学生成绩,范围是0~100:

黑盒测试用例设计方法

我与影子孤独终老i 提交于 2019-12-26 16:53:35
常用测试用例设计方法 1、等价类划分 2、边界值分析方法 3、因果图方法 4、正交实验设计方法 5、功能图分析方法 6、错误推测法 7、需求文档转化法 8、随机测试 9、对象属性分析法 等价类划分: 1)输入条件中规定了输入数据的取值范围,可分为一个有效等价类和另两个无效等价类 2)输入条件中规定了输入数据的个数,可分为一个有效等价类和两个无效等价类 3)若规定了输入数据必须遵循的原则,则可分为一个有效等价类和若干个无效等价类 4)若输入条件中规定了输入数据的一组取值,且软件对不同的输入值对应有不同的处理,则每个允许值构成一个有效的等价类,其他值构成一个无效的等价类 5)若规定输入为整数,则正整数、负整数。零构成有效三个等价类,小数构成无效的等价类 等价类划分例子: 边界值分析方法: 意义:测试输入数据规则的边界是否有问题 较常用 1)若输入条件规定了取值范围,则选择恰好落在边界上和处在边界内、边界外的测试值 2)若规定了输入数据的个数,则选择最小个数,比最小个数多1、少1,比最大个数多1少1等几种测试情况作为测试时输入数据的个数 3)若输入数据为有序集合,则选择有序集合中的第一个、最后一个以及越界输入作为测试用例 边界值分析方法例子: 1)对16-bit位整数而言,32767和-32768是边界值 2)屏幕上光标在最左上和最右下位置 3)报表的第一行和最后一行 4

黑盒测试用例设计方法

馋奶兔 提交于 2019-12-26 16:47:03
本文根据 Vince整理的 《 测试用例设计白皮书》 整理 Word 版本下载地址 : /Files/Jackc/黑盒测试用例设计方法.doc 黑盒测试用例设计方法 February 12 , 200 9 1. 概述 黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等 。 2. 等价类划分法 2.1. 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 2.2. 等价类划分法的应用 1. 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试 . 因此 , 可以把全部输入数据合理划分为若干等价类 , 在每一个等价类中取一个数据作为测试的输入条件 , 就可以用少量代表性的测试数据 . 取得较好的测试结果 . 等价类划分可有两种不同的情况 : 有效等价类和无效等价类。 · 有效等价类 : 是指对于程序的规格说明来说是合理的 , 有意义的输入数据构成的集合 . 利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 · 无效等价类 : 与有效等价类的定义恰巧相 反。 设计测试用例时 , 要同时考虑这两种等价类 .

测试用例设计之白盒测试

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-18 02:04:37
白盒测试:(结构测试)是一种测试用例设计方法,在这里盒子指的是被测试的软件,把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 白盒测试技术一般可被分为静态分析和动态分析两类技术。 静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。 动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。 白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 覆盖标准 逻辑覆盖 语句覆盖 判定覆盖(分支覆盖) 条件覆盖 判定/条件覆盖 条件组合覆盖 控制结构覆盖 基本路径测试 循环测试 条件测试 数据流测试 语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。 判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次。判定覆盖只比语句覆盖稍强一些,但实际效果表明,只是判定覆盖,还不能保证一定能查出在判断的条件中存在的错误。因此,还需要更强的逻辑覆盖准则去检验判断内部条件。 条件覆盖:执行足够的测试用例

对结对编程的测试

给你一囗甜甜゛ 提交于 2019-12-17 02:04:36
本周感冒。身体不舒服。写完这个,去更新组博客。可能之后还会有更新。 黑盒测试的用例上周已经说过。 下面说说白盒测试。 首先,谈谈覆盖这个事。 语句覆盖 是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误; 判定覆盖<又叫分支覆盖率> 是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误; 条件覆盖 是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支; 判定 / 条件覆盖 是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次; 修正条件判定覆盖 满足条件与判定覆盖,并且需要确定每个条件能够影响到包含的判定的结果。 条件组合覆盖 是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次; 路径覆盖 是每条可能执行到的路径至少执行一次; 其中语句覆盖是一种最弱的覆盖,判定覆盖和条件覆盖比语句覆盖强,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖,条件组合覆盖是除路径覆盖外最强的, 路径覆盖也是一种比较强的覆盖

今天来讲下白盒测试和黑盒测试的区别

让人想犯罪 __ 提交于 2019-12-16 17:52:25
一. 软件测试方法 软件测试方法:白盒测试、黑盒测试、灰盒测试、静态测试、动态测试 白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。 白盒测试技术一般可被分为静态分析和动态分析两类技术。 静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。 动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。 白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。 在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。 灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法

白盒测试中的六种覆盖方法及案例分析

别来无恙 提交于 2019-12-08 11:05:13
语句覆盖 是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误; 判定覆盖<又叫分支覆盖率> 是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误; 条件覆盖 是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支; 判定 / 条件覆盖 是使判定中每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次; 修正条件判定覆盖 满足条件与判定覆盖,并且需要确定每个条件能够影响到包含的判定的结果。 条件组合覆盖 是使每个判定中条件结果的所有可能组合至少出现一次,因此判定本身的所有可能解说也至少出现一次,同时也是每个条件的所有可能结果至少出现一次; 路径覆盖 是每条可能执行到的路径至少执行一次; 其中 语句覆盖是一种最弱的覆盖 ,判定覆盖和条件覆盖比语句覆盖强, 满足判定 / 条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖和语句覆盖 ,条件组合覆盖是除路径覆盖外最强的, 路径覆盖也是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖 。 不论那种覆盖方法,都不能保证程序的正确性 。 白盒测试中的六种覆盖方法

Explain详解与索引最佳实践

喜欢而已 提交于 2019-12-07 20:33:28
使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的。分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中) 使用的表 DROP TABLE IF EXISTS `actor`; CREATE TABLE `actor` ( `id` int(11) NOT NULL, `name` varchar(45) DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `actor` (`id`, `name`, `update_time`) VALUES (1,'a','2017-12-22 15:27:18'), (2,'b','2017-12-22 15:27:18'), (3,'c','2017-12-22 15:27:18'); DROP TABLE IF EXISTS `film`; CREATE TABLE

测试覆盖率

陌路散爱 提交于 2019-12-05 20:07:10
什么是测试覆盖率 首先,该如何评审自己写的测试用例是否满足测试要求?是否存在漏洞与缺陷? 这就要引入一个测试覆盖率的概念了。 测试覆盖率 覆盖率是用来度量测试完整性的手段,是测试效果衡量的标准,是测试技术有效性的度量: 覆盖率 = (至少被执行一次的项目(item)数) / (项目的总数) 项目是指:语句、判定、分支、函数等等。 覆盖率按照测试方法一般可分为三大类: 白盒覆盖率:语句、判定、条件、路径等等; 灰盒覆盖率:接口相关; 黑盒覆盖率:功能、性能测试; 另外还包括面向对象覆盖率等。 注意,测试用例设计不能一味的追求覆盖率,因为测试成本随覆盖率的增加而增加,要在覆盖率和成本之间有所取舍。 白盒覆盖率 白盒覆盖率中使用的最常见的就是逻辑覆盖率(Logical Coverage),也称为代码覆盖率(Code Coverage)、或者称为结构化覆盖率(Structural Coverage)。 逻辑覆盖率包括: 语句覆盖; 判定覆盖; 条件覆盖; 判定条件覆盖; 条件组合覆盖; 路径覆盖; 语句覆盖 语句覆盖(Statement Coverage)的含义是,在测试时运行被测程序后,程序中被执行到的可执行语句的比率: 语句覆盖率 = (至少被执行一次的语句数量) / (可执行的语句总数) 现在我们祭出在测试覆盖率篇中都会使用的一张图。 这个一个函数的流程图,需要传入三个参数