軟考 系統架構設計師系列知識點 —— 黑盒測試與白盒測試(1)

本文內容參考:

黑盒測試和白盒測試詳解-CSDN博客

軟件測試中的各種覆蓋(Coverage)詳解-CSDN博客

特此致謝!

零、概述

黑盒測試又名為功能測試,主要目的是發現軟件設計的需求或者是軟件設計規格說明書中的錯誤缺陷。軟件的開發具有特定性,一般都是為了某種具體特定功能開發的,軟件功能的描述依賴于在軟件需求階段的需求規格說明書的分析,軟件在設計過程中被分成了一個或者是多個功能,保證這些功能能夠正常運行的就是軟件測試,從而進一步滿足用戶的需求與需要。黑盒測試與白盒測試相反,軟件設計程序被看做一個打不開的盒子,盒子里的程序代碼測試人員不能看到,只能看到軟件或者是某些模塊的簡單功能描述,這種測試方法主要是驗證軟件或者是功能的實現度。

一、黑盒測試

1. 基本介紹

黑盒測試也稱功能測試或數據驅動測試,它是已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試過程中,將程序看成不能打開的黑盒子,在不考慮程序內部結構和特性的基礎上通過程序接口進行測試,檢查程序功能是否按照設計需求以及說明書的規定能夠正常打開使用。

黑盒測試一般遵循以下原則:

  • 根據相應的、正確的需求設計測試用例。配置項測試依據需求規格說明,系統測試依據軟件研制任務書,驗收測試依據軟件研制任務書或合同/協議。
  • 正確地定義等價類。等價類方法是黑盒測試的主要方法,設計測試用例時應根據輸入的數據范圍,正確地劃分有效等價類和無效等價類。
  • 覆蓋所有的功能需求。 根據測試風險來確定測試重點和優先級,確保軟件的常用功能和重要功能得到充分的測試。
  • 加強接口測試。
  • 站在用戶角度進行測試。盡量模擬用戶的使用環境,那些對用戶有價值的功能要優先、充分地測試。

2. 優缺點

(1)優點

  • 對于較大的代碼單元來說,黑盒測試比白盒測試效率較高。
  • 測試人員不需要了解細節,包括特定的編程語言。
  • 測試人員和開發人員彼此獨立。
  • 從用戶的角度測試,很容易理解和接受。

(2)缺點

  • 測試的只有一小部分,不可能測試全部輸入。
  • 沒有簡明的需求規格說明書,測試用例很難設計。
  • 不能直接對程序段進行測試,該程序段可能隱藏更多錯誤。

3. 方法

(1)等價類劃分

所謂等價類,是指輸入域的某個互不相交的子集,所有等價類的并集便是整個輸入域。目的在于測試用例的無冗余性。

該方法是一種重要的、常用的黑盒測試用例設計方法。等價類是某個輸入域的子集,在該子集中每個輸入數據的作用是等效的。其主要分為:

  • 有效等價類

是有意義的、合理的輸入數據構成的集合。可檢查程序是否實現了規格說明中所規定的功能和性能。

  • 無效等價類

是無意義的、不合理的輸入數據構成的集合。檢查軟件功能和性能的實現是否有不符合規格說明要求的地方。

(2)邊界值分析法

邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。目的是針對各種邊界情況設計測試用例,可以查出更多的錯誤。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。

邊界值分析與等價類劃分的區別:

  • 邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
  • 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。

邊界值分析設計方法:

1)確定邊界情況(輸入或輸出等價類的邊界);

2)選取正好等于、剛剛大于或剛剛小于邊界值作為測試數據。

(3)判定表方法

判定表能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。利用判定表能夠設計出完整的測試用例集合。

在實際應用中,許多輸入是由多個因素構成,而不是單一因素,這時就需要多因素組合分析。對于多因素,有時可以直接對輸入條件進行組合設計,不需要進行因果分析,即直接采用判定表方法。一個判定表由“條件和活動”兩部分組成,也就是列出了一個測試活動執行所需的條件組合,所有可能的條件組合定義了一系列的選擇,而測試活動需要考慮每一個選擇。

判定表方法步驟:

1)列出所有的條件樁和動作樁;

2)填入條件項;

3)填入動作項,制定初始判定表;

4)簡化、合并相似規則或者相同動作。

(4)因果圖法

多種輸入條件的組合,產生多種結果設計測試用例。

因果圖法方法步驟:

1)分析軟件規格說明文檔描述的哪些是原因(輸入條件)、哪些是結果(輸出條件),給每個原因和結果賦予一個標識符;

2)找出原因與結果、原因與原因之間的對應關系,劃出因果圖;

3)在因果圖上標上哪些不可能發生的因果關系,表明約束或限制條件;

4)根據因果圖創建判定表,將復雜的邏輯關系和多種條件組合很具體明確的表示出來;

5)把判定表的每一列作為依據設計測試用例。

(5)場景法

用例場景用來描述流經用例的路徑,從用例開始到結束遍歷這條路徑上所有基本流和備選流。

根據不同的場景設計測試用例,例如:用戶操作ATM機,就有查詢、取款等操作。

(6)正交實驗法

正交測試法使用已經構造好了的正交表格來安排試驗并進行數據分析。

正交表的兩大優越性,即“均勻分散,整齊可比”。

(7)功能圖法

功能圖法就是為了解決動態說明問題的一種測試用例的設計方法。

每個程序的功能通常由靜態說明和動態說明組成:

  • 靜態說明描述了輸入條件和輸出條件之間的對應關系;
  • 動態說明描述了輸入數據的次序或者轉移的次序。

(8)錯誤推測法

測試者根據經驗、知識和直覺來發現軟件的錯誤,來推測程序中可能存在的各種錯誤,從而有針對性地進行測試。

此種方法沒有依據,單純依靠測試者自身實力。優點:快速切入體會到程序易用與否;缺點:難以準確知道測試覆蓋率。

關于白盒測試的詳細介紹請看下回。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79757.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79757.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79757.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

yolov11 epoch100輪 訓練筆記5 kaggle comet

Football Players Detection using YOLOV11 | Kaggle !pip install comet_ml import comet_mlcomet_ml.login(project_name"c") Comet - Build Better Models Faster yolov11訓練 100輪一眨眼訓練完了 然而comet接不到yolo的sdk 優秀 訓練17輪map就0.99了 v5訓練100…

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在

Ubuntu K8S(1.28.2) 節點/etc/kubernetes/manifests 不存在 在查看日志(journalctl -xefu kubelet)時發現各節點/etc/kubernetes/manifests 不存在,但主節點沒有異常 21080 file.go:104] "Unable to read config path" err"…

neo4j基礎操作:命令行增刪改查

目錄 一,Neo4j的增 1.1.新增節點 1.2.新增關系 1.2.1創建節點時,創建關系 1.2.2在已有的節點上,創建關系 二,Neo4j的刪除 2.1刪除節點 2.1.1無關系的節點刪除 2.1.2 有關系的節點刪除 三,節點修改 3.1 給節點…

rollout 是什么:機器學習(強化學習)領域

rollout 是什么:機器學習(強化學習)領域 指從特定初始狀態開始,按照某個策略或模型進行一系列動作和狀態轉移,直到達到終止狀態或預定時間步數 。比如: 迷宮任務:強化學習代理在迷宮中,從起始點出發,按某策略(如隨機選方向走)進行移動,直到找到出口或達到最大移動…

stm32之TIM定時中斷詳解

目錄 1.引入1.1 簡介1.2 類型1.2.1 基本定時器1.2.2 通用定時器1. 觸發控制單元 (Trigger Control Unit)2. 輸入捕獲單元 (Input Capture Unit)3. 輸出比較單元 (Output Compare Unit)4. CNT 計數器5. 自動重裝載寄存器 (ARR)6. 預分頻器 (PSC)7. 中斷與 DMA 事件8. 剎車功能 (…

centos8源碼安裝openssl

前言: 在使用python3.11部署運行FastAPI時,由于其uvicorn需要使用openssl模塊,導致沒有安裝openssl的服務器項目運行不起來. 【第一步】 我的網盤下載openssl-1.1.1n.tar.gz 提取碼: vay9 【第二步】 上傳到服務器解壓 tar -zxvf opens…

vue3 動態修改系統title

vue3 動態修改系統title 修改前 修改后 1、封裝 useTitle 工具函數 創建組合式 API,通過 watchEffect 監聽標題變化: // composables/useTitle.js import { ref, watchEffect } from vue;export function useTitle(initialTitle) {const title r…

比較兩種判斷相同二叉樹的方法:遞歸與遍歷序列對比

在二叉樹操作中,判斷兩棵樹是否相同是一個常見的問題。本文將對比兩種不同的解決方案:遞歸法和遍歷序列對比法,分析它們的優缺點,并探討為何遞歸法是更優的選擇。 問題描述 給定兩棵二叉樹的根節點 p 和 q,判斷它們是…

從0開始學習大模型--Day01--大模型是什么

初識大模型 在平時遇到問題時,我們總是習慣性地去運用各種搜索引擎如百度、知乎、CSDN等平臺去搜索答案,但由于搜索到的內容質量參差不齊,檢索到的內容只是單純地根據關鍵字給出內容,往往看了幾個網頁都找不到答案;而…

【AI大模型】SpringBoot整合Spring AI 核心組件使用詳解

目錄 一、前言 二、Spring AI介紹 2.1 Spring AI介紹 2.2 Spring AI主要特點 2.3 Spring AI核心組件 2.4 Spring AI應用場景 2.5 Spring AI優勢 2.5.1 與 Spring 生態無縫集成 2.5.2 模塊化設計 2.5.3 簡化 AI 集成 2.5.4 支持云原生和分布式計算 2.5.5 安全性保障…

洛谷 P9007 [入門賽 #9] 最澄澈的空與海 (Hard Version)

這道題可不入門。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 給定 n n n,求有多少組 ( x , y , z ) (x,y,z) (x,y,z) 滿足: x ? y z n ! x-\dfrac{y}{z}n! x?zy?n! x ? y z n ! n \dfrac{x-y…

PostgreSQL 的 pg_stat_file 函數

PostgreSQL 的 pg_stat_file 函數 pg_stat_file 是 PostgreSQL 提供的一個系統管理函數,用于獲取文件系統上文件的元數據信息。這個函數對于數據庫管理員進行文件級別的監控和診斷非常有用。 一 函數基本語法 pg_stat_file(filename text [, missing_ok boolean …

關于麒麟服務器實現docker-compose服務開機自啟

我本地服務器環境是麒麟V10版本: 首先確定docker-compose服務絕對路徑命令: which docker-compose我這里輸出是:/usr/bin/docker-compose 編輯服務文件: sudo vim /etc/systemd/system/docker-compose-webup.service[Unit] Desc…

基于 jQuery 實現復選框全選與選中項查詢功能

在 Web 開發中,復選框是常見的交互元素,尤其是在涉及批量操作、數據篩選等場景時,全選功能和選中項查詢功能顯得尤為重要。本文將介紹如何使用 HTML、CSS 和 jQuery 實現一個具備全選、反選以及選中項查詢功能的復選框組,幫助開發…

AfuseKt2.4.2 | 支持阿里云盤、Alist等平臺視頻播放,具備自動海報墻刮削功能的強大播放器

AfuseKt是一款功能強大的安卓端在線視頻播放器,支持播放阿里云盤、Alist、WebDAV等平臺的視頻內容。它具備自動海報墻刮削功能,能自動生成影片信息和海報墻,提供良好的視覺體驗。此外,它還支持倍速播放、字幕、音軌切換等多種實用…

Netlink在SONiC中的應用

Netlink在SONiC中的應用 Netlink介紹 Netlink 是 Linux 內核態程序與用戶空間程序之間進行通信的機制之一,原本是用于傳遞網絡協議棧中的各種控制消息。它采用和套接字(socket)編程接口相同的形式,常用于配置內核網絡子系統&…

語音合成之十一 提升TTS語音合成效果:低質量數據清洗、增強與數據擴增

低質量數據清洗、增強與數據擴增 1. 引言:TTS的基石——數據質量2. 基礎:TTS數據準備工作流2.1 規劃:定義藍圖2.2 執行:從原始數據到訓練就緒格式2.3 最佳實踐與可復現性 3. 攻克缺陷:低質量語音數據的清洗與增強3.2 手…

Java IO流分類與記憶方法

Java IO流分類與記憶方法 在Java IO流體系中,理解節點流和包裝流的區別是掌握IO編程的關鍵。 一、核心分類標準 1. 節點流(Node Stream) 直接對接數據源:直接連接物理IO設備(文件、網絡、內存等)基礎功能:提供最基礎的讀寫能力命名特征:通常包含數據源類型名稱(如Fi…

架構師如何構建個人IP:職業規劃與業務戰略的雙重提升

在數字化時代,軟件架構師的角色已從單純的技術專家轉變為兼具技術領導力和業務影響力的復合型人才。如何構建個人IP,提升行業影響力,成為架構師職業發展的關鍵課題。本文從個人認知、業務戰略、架構決策、產品思維四個維度,探討架…

vscode運行python的快捷鍵

以下是一些在 VS Code 中運行 Python 代碼的常用快捷鍵: 運行 Python 文件 Windows/Linux :Ctrl F5。此快捷鍵會直接運行當前打開的 Python 文件,不會自動進入調試模式。若之前有配置過終端,一般會使用配置好的終端來運行&…