实验三 软件黑盒测试

实验三 软件黑盒测试使用测试界的一个古老例子---三角形问题来进行等价类划分。输入三个整数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.mzph.cn/news/903765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米首个推理大模型开源——Xiaomi MiMo,为推理而战!

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、MiMo的惊人表现&#xff1a;小参数量&#xff0c;大能力二、双轮驱动&#…

《2025全球机器学习技术大会:阿里云讲师张玉明深度剖析通义灵码AI程序员》

4 月 18 日 - 19 日&#xff0c;由 CSDN & Boolan 联合举办的 2025 全球机器学习技术大会&#xff08;ML-Summit&#xff09;于上海顺利举行。大会聚焦人工智能与机器学习前沿技术&#xff0c;汇聚了来自科技与人工智能领域的数位顶尖专家以及数千名开发者和研究者&#xf…

MySQL事务隔离级别详解

MySQL事务隔离级别详解 事务隔离级别概述 MySQL支持四种标准的事务隔离级别&#xff0c;它们定义了事务在并发环境下的可见性规则和可能出现的并发问题&#xff1a; READ UNCOMMITTED&#xff08;读未提交&#xff09; • 最低隔离级别 • 事务可以读取其他事务未提交的数据&…

计算机视觉(CV)技术的优势和挑战(本片为InsCode)

计算机视觉&#xff08;CV&#xff09;技术是一种利用计算机和算法来模拟人类视觉实现图像和视频处理的技术。它在各个领域都有着广泛的应用&#xff0c;具有许多优势和挑战。 优势&#xff1a; 自动化&#xff1a;CV 技术可以自动识别、分类、跟踪和分析图像和视频数据&…

Android JIT编译:adb shell cmd package compile选项

Android JIT编译&#xff1a;adb shell cmd package compile选项 例如&#xff1a; adb shell cmd package compile -m speed -f --full 包名 配置参数指令说明&#xff1a; compile [-r COMPILATION_REASON] [-m COMPILER_FILTER] [-p PRIORITY] [-f] [--primary-dex] …

Android Kotlin 项目集成 Firebase Cloud Messaging (FCM) 全攻略

Firebase Cloud Messaging (FCM) 是 Google 提供的跨平台消息推送解决方案。以下是在 Android Kotlin 项目中集成 FCM 的详细步骤。 一、前期准备 1. 创建 Firebase 项目 访问 Firebase 控制台点击"添加项目"&#xff0c;按照向导创建新项目项目创建完成后&#x…

搭建PCDN大节点,服务器该怎么配

搭建P2P大节点时&#xff0c;服务器要怎么配呢&#xff1f;需要综合考虑硬件性能、网络带宽、存储能力、系统架构以及安全性等多个方面&#xff0c;以确保节点能够高效、稳定地运行。 一、硬件配置 CPU&#xff1a;选择高性能的多核处理器&#xff0c;以满足高并发处理需求。核…

(done) 吴恩达版提示词工程 8. 聊天机器人 (聊天格式设计,上下文内容,点餐机器人)

视频&#xff1a;https://www.bilibili.com/video/BV1Z14y1Z7LJ/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 别人的笔记&#xff1a;https://zhuanlan.zhihu.com/p/626966526 8. 聊天机器人&#xff08;Chatbot&#xff09; …

AtCoder Beginner Contest 403(题解ABCDEF)

A - Odd Position Sum #1.奇数数位和 #include<iostream> #include<vector> #include<stdio.h> #include<map> #include<string> #include<algorithm> #include<queue> #include<cstring> #include<stack> #include&l…

【Game】Powerful——Abandoned Ruins(9)

文章目录 1、新增古玩2、机关机制3、探索法宝4、智斗强敌5、地图6、参考 2025 年 1 月迎来的新玩法——荒废遗迹 每周四个宝藏铲&#xff08;老玩法&#xff09;或者两个遗迹线索&#xff08;新玩法&#xff09;&#xff0c;3 个宝藏铲也可以换一个遗迹线索&#xff0c;之前没时…

构建网页版IPFS去中心化网盘

前言&#xff1a;我把它命名为无限网盘 Unlimited network disks&#xff08;ULND&#xff09;&#xff0c;可以实现简单的去中心化存储&#xff0c;其实实现起来并不难&#xff0c;还是依靠强大的IPFS&#xff0c;跟着我一步一步做就可以了。 第一步&#xff1a;准备开发环境…

国标GB28181视频平台EasyGBS在物业视频安防管理服务中的应用方案​

一、方案背景​ 在现代物业服务中&#xff0c;高效的安全管理与便捷的服务运营至关重要。随着科技的不断发展&#xff0c;物业行业对智能化、集成化管理系统的需求日益增长。EasyGBS作为一款基于国标GB28181协议的视频监控平台&#xff0c;具备强大的视频管理与集成能力&#…

[Unity]设置自动打包脚本

背景 我们经常会使用自动打包功能 文件名称: AutoBuild.csusing System.IO; using System.Linq; using UnityEditor; using UnityEngine;public class AutoBuilder {[MenuItem("Build/GetCurrentBuildTarget")]public static void GetCurrentBuildTarget(){Debug.L…

正点原子STM32H743单片机实现ADC多通道检测

目标 使用STM32CubeMX工具&#xff0c;配置ADC相关参数&#xff0c;实现在STM32H743单片机上获取ADC多通道电压值。共14个ADC引脚&#xff0c;ADC2有5个&#xff0c;ADC3有9个&#xff0c;全部设置单通道 ADC引脚 PF3PF4PF5PF10PC0PC2PC3PH2PH3PA3PB0PB1PA4PA5PA6 STM32cube…

深度学习基础(四)——计算量(FLOPs)、参数量(Params)、计算速度(FLOPS/TOPS))

一、计算量FLOPs FLOPs&#xff0c;全称为Floating Point Operations, (s为复数缩写&#xff09;&#xff0c;浮点运算数&#xff0c;指模型完成一次前向传播所需的浮点运算次数&#xff0c;可以理解为计算量&#xff08;模型的时间复杂度&#xff09;&#xff0c;用来衡量算法…

电子秤检测管理系统开发实战:从数据采集到可视化大屏

简介 电子秤作为现代工业生产和商业流通中的核心计量设备,其准确性直接关系到产品质量和交易公平。针对仙贝生产企业的电子秤管理需求,我们开发了一套集电子秤检测信息录入、产品信息管理、实时称重数据采集和后台可视化大屏于一体的综合管理系统。该系统基于Django框架构建…

Cesium添加WMS,WMTS,地形图图,3D Tiles数据

在 Cesium 中&#xff0c;你可以添加 WMS、WMTS、地形图 和 3D Tiles 数据源。以下是详细的实现方法&#xff1a; 1. 添加 WMS 服务 WMS&#xff08;Web Map Service&#xff09;是一种动态地图服务&#xff0c;适用于加载栅格地图图层。 代码示例 const viewer new Cesium…

数据库基本概念:数据库的定义、特点、分类、组成、作用

一&#xff1a;数据库相关概念 1.1 定义 &#xff08;1&#xff09;数据库&#xff1a;存储数据的仓库 &#xff08;2&#xff09;数据库管理系统&#xff1a;模拟和管理数据库的大型软件 &#xff08;3&#xff09;SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;定义…

【项目篇之消息序列化】仿照RabbitMQ模拟实现消息队列

实现消息序列化 为什么不使用JSON来序列化直接使用二进制序列化实现序列化方法toBytes()1&#xff1a; 创建内存缓冲区​​2 &#xff1a;创建对象序列化通道​3&#xff1a;执行序列化操作​4&#xff1a;提取二进制数据&#xff0c;转换成byte[]序列化图示流程&#xff1a;序…

单片机-89C51部分:13、看门狗

飞书文档https://x509p6c8to.feishu.cn/wiki/LefkwDPU7iUUWBkfKE9cGLvonSh 一、作用 程序发生死循环的时候&#xff08;跑飞&#xff09;&#xff0c;能够自动复位。 启动看门狗计数器->计数器计数->指定时间内不对计数器赋值&#xff08;主程序跑飞&#xff0c;无法喂…