软件质量保护与测试(第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个

相关推荐
Song_RsHt40 分钟前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
~kiss~3 小时前
PRO-LONG: Programmatic Memory Enables Long-Horizon Reasoning 程序式记忆赋能长程推理
学习
程序猿编码3 小时前
不依赖 vLLM/llama.cpp:一套面向学习的 DeepSeek-R1 CUDA 推理实现
c++·学习·语言模型·llama·vllm·大模型推理
ms72wx4 小时前
Docker 命令学习笔记:从入门到进阶的实战指南
笔记·学习·docker
外收内放5 小时前
FastAPI猜字谜实战(4):让AI主持人开口
开发语言·python·学习·fastapi
叶子野格5 小时前
《JAVA学习:前置知识》
学习
小猪佩奇TONY6 小时前
Linux 内核学习(19) --- linux swap 机制
linux·学习·swap·kswapd
andrsted6 小时前
企业培训时间难统一?练题簿让在线免费刷题与培训考核更好安排
学习·微信小程序·小程序·学习方法·刷题
李航19836 小时前
虚拟盖房子,在游戏中学习房子的建造过程
人工智能·学习·游戏·计算机视觉·ai编程
霍霍的袁6 小时前
【C++11】左值右值引用与移动语义详细笔记(左值右值、右值引用、移动构造、移动赋值、引用折叠、万能转发)
c++·笔记·学习·visual studio