實驗三 軟件黑盒測試

實驗三 軟件黑盒測試使用測試界的一個古老例子---三角形問題來進行等價類劃分。輸入三個整數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.pswp.cn/news/903765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903765.shtml
英文地址,請注明出處:http://en.pswp.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;無法喂…