当前位置: 首页 > java >正文

实验三 软件黑盒测试

实验三 软件黑盒测试使用测试界的一个古老例子---三角形问题来进行等价类划分。输入三个整数a、b和c分别作为三角形的三条边,通过程序判断由这三条边构成的三角形类型是等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。其中要求输入变量a、b、c均为整数值。1) 用编程语言实现上述功能def classify_triangle(a, b, c): # 检查输入是否为整数 if not (isinstance(a, int) and isinstance(b, int) and isinstance(c, int)): return "输入必须为整数" # 检查边长是否大于0 if a <= 0 or b <= 0 or c <= 0: return "边长必须大于0" # 检查是否能构成三角形 if (a + b <= c) or (a + c <= b) or (b + c <= a): return "非三角形" # 判断三角形类型 if a == b == c: return "等边三角形" elif a == b or a == c or b == c: return "等腰三角形" else: # 检查是否为直角三角形(可选) sides = sorted([a, b, c]) if sides[0]**2 + sides[1]**2 == sides[2]**2: return "直角三角形" return "一般三角形"# 测试示例print(classify_triangle(3, 3, 3)) # 等边三角形print(classify_triangle(3, 3, 5)) # 等腰三角形print(classify_triangle(3, 4, 5)) # 直角三角形print(classify_triangle(2, 3, 4)) # 一般三角形print(classify_triangle(1, 1, 3)) # 非三角形print(classify_triangle(-1, 2, 3)) # 边长必须大于0print(classify_triangle(1.5, 2, 3)) # 输入必须为整数2) 分析输入条件和输出结果确定等价类输入条件:三个整数a, b, c,代表三角形的三条边每个整数必须大于0必须满足三角形不等式:a + b > c, a + c > b, b + c > a输出结果:等边三角形:a = b = c等腰三角形:任意两边相等但不是等边一般三角形:三边都不等且满足三角形不等式非三角形:不满足三角形不等式无效输入:边长≤0或非整数3)建立等价类表,列出所有划分出的等价类输入条件有效等价类无效等价类输入类型整数(1,2,3,...)非整数(1.5,"a",True,...)边长范围>0≤0三角形构成满足a+b>c, a+c>b, b+c>a不满足任意一个不等式等边三角形a=b=c-等腰三角形任意两边相等但不满足a=b=c-一般三角形三边不等且满足三角形不等式-直角三角形满足勾股定理-4)根据列出的等价类表,设计等价类测试用例有效输入测试用例:等边三角形: (3, 3, 3) → 等边三角形等腰三角形: (3, 3, 5) → 等腰三角形一般三角形: (3, 4, 6) → 一般三角形直角三角形: (3, 4, 5) → 直角三角形其他有效组合: (5, 12, 13) → 直角三角形无效输入测试用例:非整数输入: (1.5, 2, 3) → 输入必须为整数零值输入: (0, 1, 2) → 边长必须大于0负值输入: (-1, 2, 3) → 边长必须大于0非三角形: (1, 1, 3) → 非三角形多个无效: (0, -1, "a") → 可以检测多个错误边界值测试用例:最小有效值: (1, 1, 1) → 等边三角形刚好不构成三角形: (1, 2, 3) → 非三角形接近边界的等腰: (2, 2, 3.999) → 等腰三角形极大值测试: (MAX_INT, MAX_INT, MAX_INT) → 等边三角形两边和等于第三边: (2, 3, 5) → 非三角形

http://www.xdnf.cn/news/3469.html

相关文章:

  • 【记录】台式机安装GTX1660驱动过程
  • 【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息
  • 学习与规划的融合Dyna-Q:python从零实现
  • BOFZ 緩衝區溢出shell脚本檢測工具
  • XGBoost算法详解:原理、实现与调优指南
  • py使用uniad原生sdk 3, 放弃Buildozer,使用BeeWare
  • 字符串转换整数(atoi)(8)
  • c++题目_P1027 [NOIP 2001 提高组] Car 的旅行路线
  • 征服大海的人
  • 算法题题型总结
  • Python学习笔记(第二部分)
  • ​​​​​​​2025年第二十二届五一数学建模竞赛题目A题 支路车流量推测问题
  • 用Python代码绘制跳动的梦幻爱心,感受编程的浪漫与奇妙
  • CHAPTER 12 Special Methods for Sequences
  • stm32数码管显示数字/循环
  • 2025五一杯数学建模C题:社交媒体平台用户分析问题,完整第一问模型与求解+代码
  • ‌AI与编程的范式革命:从工具到协作者的进化之路
  • 等保系列(一):网络安全等级保护介绍
  • OWASP TOP 10 2025
  • 第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题(选择题)
  • 408考研逐题详解:2009年第6题
  • PyTorch入门------训练图像分类器
  • 12.多边形的三角剖分 (Triangulation) : Fisk‘s proof
  • 车联网可视化:构建智能交通数字孪生
  • 全面理解 C++ 中的 `std::forward`
  • 【滑动窗口】找到字符串中所有字母异位词| 找出字符串中第一个匹配项的下标
  • 【Tool】vscode
  • C++11新特性_自动类型推导_auto
  • 使用QtCreator创建项目(3)
  • Matlab/Simulink - BLDC直流无刷电机仿真基础教程(五) - animateRotorPosition脚本讲解与使用