黑盒测试的几种手法

边界值分析

很简单,不作解释。

划分等价类

等价类是指某个输入域的子集合,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果。

等价类划分可有两种不同的情况:有效等价类和无效等价类。

判定表

判定表是一个表格,分为四个部分,其左部是条件或数组元素的名称,右上部是所有条件的组合,左下部是处理中活动的名称,右下部标明条件组合和相应的活动的对应关系。

判定表通常有以下四个部分组成:

  1. 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要
  2. 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束
  3. 条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值
  4. 动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作

因果图法

产生背景:

等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了

因果图法设计测试用例步骤:

  1. 从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变)
  2. 作因果图
  3. 把因果图转换为判定表
  4. 为判定表中的每一列设计一个测试用例

通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现

         

恒等:若c1是1(0),则e1也为1(0)

非:若c1是1(0),则e1为0(1)

或:c1 c2 c3中只要有一个成立,则e1成立

与:c1和c2同时成立,e1才成立


下面举个例子来说明因果图转判定表的步骤:

例题:

有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币

分析

原因:① 投入1元5角硬币; ② 投入2元硬币;③ 按“可乐”按钮; ④ 按“雪碧”按钮; ⑤ 按“红茶”按钮。  

中间状态:① 已投币; ② 已按钮。  

结果:① 退还5角硬币; ② 送出“可乐”饮料;③ 送出“雪碧”饮料; ④ 送出“红茶”饮料。

作因果图

将因果图转化为判定表





### 黑盒测试的分类 黑盒测试是一种基于功能需求规格说明书的技术,主要关注于系统的外部行为而不涉及内部实现细节。以下是常见的黑盒测试类型及其特点: #### 1. 功能测试 功能测试是最基本也是最常见的黑盒测试类型之一。它旨在验证软件的功能是否按照预期的方式运作。通过设计一系列测试用例来覆盖所有的功能点并确认它们的行为符合需求文档中的描述。 #### 2. 非功能性测试 非功能性测试涵盖了多个方面,包括但不限于性能、安全性以及可用性等方面的内容。这类测试确保除了核心业务逻辑之外其他重要属性也得到了满足[^2]。 #### 3. 性能测试 性能测试用于评估应用程序在特定负载下表现如何, 它可以进一步细分为压力测试 (Stress Testing), 负载测试 (Load Testing) 和 峰值处理能力测试(Peak Usage Testing)[^2]. 这些子类别共同构成了全面衡量应用效能的重要组成部分. #### 4. 边界值分析(Boundary Value Analysis,BVA) 边界值分析是对输入或输出边界的特殊情况进行专门考察的方法论形式; 不仅限于单纯选取某个区间内的任意样本作为代表对象来进行实验操作, 更强调针对每一个界限处的数据组合实施深入探究活动 [^1]. #### 5. 错误猜测法(Error Guessing Technique) 这种方法依赖于经验丰富的工程师们凭借过往项目积累下来的知识储备去预测可能出现错误的地方,并据此制定相应的检测策略方案加以防范未然之需。 #### 6. 探索性测试(Exploratory Testing) 探索式测试允许测试人员自由发挥创造力,在没有预先编写好的脚本指导的情况下即时执行测试动作同时记录观察到的结果反馈给开发团队以便改进产品质量水平。 ```python def black_box_test(test_type): """ A function to demonstrate different types of black box testing. Args: test_type (str): The type of black-box test being performed Returns: str: Description about the selected black-box test method """ if test_type == 'functional': return "Functional tests verify that each feature works as expected." elif test_type == 'non-functional': return "Non-functional tests ensure non-feature aspects like performance and security are met." elif test_type == 'performance': return "Performance tests measure how well a system performs under certain conditions." elif test_type == 'boundary_value_analysis': return "Boundary value analysis focuses on edge cases within input/output ranges." elif test_type == 'error_guessing': return "Error guessing relies on testers' intuition to find potential issues." elif test_type == 'exploratory_testing': return "Exploratory testing involves simultaneous learning, test design, and execution." else: return f"{test_type} is not recognized as a standard black-box testing technique." print(black_box_test('boundary_value_analysis')) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值