黑盒白盒测试

简介: 黑盒白盒测试

黑盒测试

黑盒测试:把测试的对象看作是一个黑盒子,检查程序的功能是否符合说明。(数据驱动)

存在的问题:举个例子

假设一个程序P有输入量X和Y及输出量Z,在字长为32位的计算机上运行,若X和Y取整数,按黑盒方法进行穷举测试

我们来分析分析这道题,当我们按黑盒方法进行穷举测试,可能采用的测试数据组2^64.

如果测试一组数据需要一毫秒,我们完成测试需要5亿年。

黑盒测试用例设计

等价类划分

把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分选取少数有代表性的数据作为测试用例。

有效等价类

无效等价类

划分等价类的原则:

1、如果输入条件规定了取值范围,或者是值的个数,可以确定一个有效得等价类和两个无效得等价类。

2、如果输入条件规定了输入值的集合,或者规定了“必须如何”得条件,这时可以确定一个有效等价类和一个无效等价类。

3、如果输入条件是一个布尔量,可以确定一个有效等价类和一个无效等价类。

4、如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理,可以确定一个有效等价类和一个无效等价类。

5、如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同的角度违反规则)

边界值分析方法

三角形三条边ABC,应该满足ABC都大于0,两边之和大于第三边,

这里的任何一个范围都不能有差错,比如三条边都不能是大于等于0,这里不能有等于。这就是边界值的问题。

边界值分析设计测试用例应该遵循的原则:

1、如果规定了取值范围,则对应该范围的边界内附近,恰好在边界个边界外附件(无效等价类中)设计测试用例。

这里举个例子:规定1—5千克邮件收费两元,我们应该选取0.9,1,1.1,4.9,5,5.1千克设计测试用例。

2、如果规定了数据的个数,则应对最小个数,最大个数,比最小个数少1,比最大个数大1进行测试。

3、针对规格说明中的每个输出条件使用前面的准则。

4、如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件,线性表),等选有序集的第一个和最后一个元素作为测试用例。

等价类和边界值方法的区别

1、编辑遏制不是从等价类中随便选取一个数据作为代表,而是选一个或者特定的值,使这个等价类每个边界都作为测试的目标。

2、边界值分析不能只考虑输入条件,还要考虑输出条件。

一般联合等价类划分和边界值分析两种方法。

错误推测法

直觉

因果图

适用范围:测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这样就需要用因果图。

步骤:

1、找出原因,结果

2、找出原因和原因之间有什么关系,原因和结果之间有什么关系。

3、特殊情况,用记号标明约束限制条件

4、转换成判定表

5、把判定表每一列拿出来做位依据,设计测试用例。

基本符号

约束条件的符号

其实最后这我也没有看懂奥,先留着吧,总有一天会豁然开朗的。

白盒测试

白盒测试:看作一个透明的盒子,对程序所有逻辑路径进行测试。(逻辑驱动)

这个图包括了执行20次的循环,路径覆盖的话,包含了5^20条路径,每条路径需要1毫秒,我们需要3170年。所以还是有很大的问题。

逻辑覆盖

两个判断,四条路径。

语句覆盖

:设计若干个测试用例,运行被测程序,使得每一个可执行语句至少被执行一次.

判定覆盖:判定点全部为真或者全部为假,分别至少经历一次。

条件覆盖

:设计若干个测试用例,运行被测程序,使得程序中每个判断每个条件的可能值至少执行一次。

判定条件覆盖:设计足够的测试用例, 使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一次。

条件组合覆盖

:设计足够的测试用例,运行被测程序,使得每个判断所有可能的条件取值组合至少被执行一次。

路径覆盖

相关文章
|
2月前
|
测试技术
黑盒功能测试工具UFT的使用
黑盒功能测试工具UFT的使用
41 0
黑盒功能测试工具UFT的使用
|
3月前
|
SQL 安全 网络协议
黑盒渗透测试:揭开未知的安全隐患
【8月更文挑战第31天】
123 0
|
测试技术 开发工具
我眼中的黑盒与白盒测试
记录一下黑盒与白盒的体会
354 0
|
测试技术 关系型数据库 Oracle
|
测试技术 API C#
C#借助API实现黑盒自动化测试工具的编写
C#借助API实现黑盒自动化测试工具的编写 本文代码下载(VS2010开发):http://download.csdn.net/source/2796362 本文摘要: 1:一个简单的例子        1.1:EnumChildWindows介绍    1.2:主要源码 2:难点:如何获取指定的控件句柄    2.1:使用SPY++    2.2:获取控件位置    2.3:获取控件ID 1:一个简单的例子        在日常编码过程中,我们常常会进行自动化测试。
1233 0
|
Java PHP C++
黑盒白盒测试工具
http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis C/C++ 1、flawfinder http://www.
1572 0
|
4天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
31 11
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
60 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
77 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
下一篇
DataWorks