黑盒白盒测试

简介: 黑盒白盒测试

黑盒测试

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

存在的问题:举个例子

假设一个程序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年。所以还是有很大的问题。

逻辑覆盖

两个判断,四条路径。

语句覆盖

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

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

条件覆盖

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

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

条件组合覆盖

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

路径覆盖

相关文章
|
1月前
|
SQL 安全 网络协议
黑盒渗透测试:揭开未知的安全隐患
【8月更文挑战第31天】
54 0
|
测试技术 开发工具
我眼中的黑盒与白盒测试
记录一下黑盒与白盒的体会
340 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:一个简单的例子        在日常编码过程中,我们常常会进行自动化测试。
1221 0
|
Java PHP C++
黑盒白盒测试工具
http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis C/C++ 1、flawfinder http://www.
1564 0
|
21天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
98 7
Jmeter实现WebSocket协议的接口测试方法
|
21天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
97 3
快速上手|HTTP 接口功能自动化测试
|
21天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
下一篇
无影云桌面