软件质量保护与测试(第2版)学习总结第十章 黑盒测试

简介: 本文是《软件质量保护与测试》(第2版)第十章的学习总结,介绍了黑盒测试的基本概念和方法,包括等价类划分、边界值分析和因果图法,并通过具体例子展示了如何设计测试用例来验证软件的功能性需求。

设计测试用例的唯一规则:覆盖所有特征,但并不创建太多的测试用例。 ---Tsuneo Yamaura

1、黑盒测试是对程序接口的测试

2、黑盒测试注重于测试软件的功能性需求

3、黑盒测试不需要了解程序源代码

10.1 等价类划分

#include<iostream>
using namespace std;
int main()
{
   int a;
   int b;
   int c;
   cout<<"请输入两个1~100的整数:"<<endl;
   cin>>a>>b;
   if((a>=1&&a<=100)&&(b>=1&&b<=100))
   {
       c=a*b;
       cout<<"两个数乘积为"<<c<<endl;
   }
   return 0;
}
  1. 两个整数都在1~100之间;(有效等价类)
  2. 两个整数中至少有一个小于1或大于100;(无效等价类)
  3. 输入的不是整数。(无效等价类)

而书上的解法则是:

划分等价类:

  1、两个整数都在1~100之间;(有效等价类)

  2、两个整数中至少有一个小于1(无效等价类)

  3、两个整数中至少大于100;(无效等价类)

所以书上的测试用例,则会是:

用例编号 所属等价类 a b 乘积
1 1 2 3 6
2 2 1 -10 提示请输入1~100的整数
3 3 2 200 提示请输入1~100的整数

在看一道题

比如说设三角形的3边为A、B、C 满足条件A>0 B>0 C>0 , A+B>C , B+C>A , A+C>B

如果是等腰的,还要判断A=B,或者 B=C 或者A=C

如果是等边的,则需要判断是否A=B,且B=C,且A=C

等价类划分

测试用例

10.2 边界值分析

假设有一个需要输入年龄的程序,年龄的取值范围是 1<age<120之间。那么我们可以使用边界值分析法来设计测试用例,以保证程序的正确性。

根据边界值分析法,我们需要选取以下测试用例:

  1. 输入年龄为1岁,这是年龄的最小值,是一个边界值。
  2. 输入年龄为120岁,这是年龄的最大值,也是一个边界值。
  3. 输入年龄为2岁,这是一个等价类内的值,但是在1岁和3岁的边界上,也需要进行测试。
  4. 输入年龄为119岁,同样是一个等价类内的值,但是在118岁和120岁的边界上,也需要进行测试。

10.3 因果图

可以知道中间状态有两种。

即已投币,已按钮

原因:c1:投入1元5角硬币 ,c2:投入两元硬币 ,c3:按“可乐”按钮 ,c4:按"雪碧"按钮 c5: 按“红茶”按钮。

结果:a1:退还5角硬币 , a2:送出“可乐”饮料 , a3:送出"雪碧"饮料 , a4: 送出"红茶"饮料

决策表

我来解释一波,这个投1元5角的,可以依次按“可乐”,“雪碧”,“红茶”,还有什么都不按的

所以有四个在这个上面为1的。

同理二元的也是一样,有四个。

还有三个是没有投币,就按“可乐”,“雪碧”,“红茶”按钮的,所以一共4+4+3=11个

目录
相关文章
|
26天前
|
SQL 安全 测试技术
软件测试的艺术:从错误中学习,提升产品质量
本文将探讨软件测试的重要性和如何通过测试来提高产品质量。我们将从软件测试的基本概念入手,逐步深入到不同的测试方法、工具和技术。同时,我们还将讨论如何建立有效的测试策略以及如何处理测试过程中发现的问题。
|
1天前
|
人工智能 人机交互 数据库
软件质量保护与测试(第2版)学习总结第一章
本文是《软件质量保护与测试》(第2版)第一章的学习总结,概述了软件的特征、分类、软件工程的层次化技术、现代软件开发的变化,以及软件质量的概念和评价体系,包括黑盒、白盒和灰盒测试方法。
6 1
软件质量保护与测试(第2版)学习总结第一章
|
1天前
|
测试技术
软件质量保护与测试(第2版)学习总结第十一章 白盒测试
本文是《软件质量保护与测试》(第2版)第十一章的学习总结,详细讲解了白盒测试中的控制流测试技术,包括语句覆盖、判断覆盖、条件覆盖、判定-条件覆盖和路径覆盖等方法,并通过具体代码示例展示了如何设计测试用例来验证程序中的不同执行路径。
7 2
|
16天前
|
测试技术 数据安全/隐私保护 UED
软件测试的艺术:从错误中学习,提升用户体验
在数字化时代,软件已成为我们生活不可或缺的一部分。然而,软件的错误或缺陷往往会导致用户体验的下降,甚至引发严重的后果。因此,软件测试的重要性不言而喻。本文将探讨软件测试的核心价值,如何通过有效的测试策略和工具,从错误中学习,持续优化产品质量,提升用户体验。
30 2
|
1月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
4月前
|
安全 测试技术
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
72 1
|
4月前
|
JSON 前端开发 测试技术
从零开始:学习使用 Postman 进行接口测试
在当前,API(应用程序接口)的使用变得越来越普遍。其中,HTTP/HTTPS API 是最常见的一种。无论是开发前端还是后端,测试 API 都是一个关键环节。Postman 是一种流行且强大的 API 测试工具,能够帮助开发人员轻松地进行接口测试和调试。
|
4月前
|
测试技术
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
软件测试项目式学习三(软件测试原则与基本流程与实际测试用例)
60 0
|
4月前
|
测试技术 程序员 开发者
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
软件测试项目式学习一(认识软件生命周期与开发模型及软件质量)
53 0
|
28天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
128 7
Jmeter实现WebSocket协议的接口测试方法