測試--測試分類 (白盒 黑盒 單元 集成)

一、按照測試目標分類(測試目的是什么)

主類別細分說明
1. 界面測試UI內容完整性、一致性、準確性、友好性,布局排版合理性,控件可用性等
2. 功能測試檢查軟件功能是否符合需求說明書,常用黑盒方法:邊界值、等價類、判定表等
3. 性能測試關注響應速度、系統負載、吞吐量等,需基于架構與性能需求設計測試
4. 可靠性測試評估系統穩定性、服務可用性(如99.99%、99.999%)
5. 安全性測試驗證系統對數據、身份、訪問權限的防護能力,防范SQL注入、XSS等攻擊
6. 易用性測試符合UI標準、直觀性、操作靈活性、美觀舒適度等

二、按照執行方式分類(是否運行程序)

主類別細分說明
1. 靜態測試不運行程序,僅分析代碼/文檔/結構,如代碼審查、靜態掃描
2. 動態測試運行程序并輸入測試數據,如功能測試、系統測試等

三、按照測試方法分類(看代碼與否)

主類別細分說明
1. 白盒測試分析程序結構和路徑(語句覆蓋、判定覆蓋、路徑覆蓋等)
2. 黑盒測試基于功能需求進行測試(等價類、邊界值、場景法等)
3. 灰盒測試結合黑盒和白盒,對輸入輸出及部分內部結構進行驗證

一、白盒測試

? 強調對程序內部邏輯結構進行測試,關注“怎么實現的”。

🔹 主要應用階段:

  • 多用于 單元測試

  • 開發人員或白盒測試工程師編寫

🔹 特點:

  • 需要閱讀和理解源代碼

  • 關注每條路徑是否被測試到

  • 能提高代碼質量,及時發現隱藏邏輯問題

🔹 常見方法(6種邏輯覆蓋):

覆蓋類型描述說明
1. 語句覆蓋要求程序中每條語句至少執行一次
2. 判定(分支)覆蓋要求每個分支(if/else)都執行到,判斷結果為 T 和 F 各一次
3. 條件覆蓋每個判斷條件的每個可能取值(T/F)都至少出現一次
4. 判定-條件覆蓋同時滿足判定覆蓋條件覆蓋的要求
5. 條件組合覆蓋所有條件變量的 T/F 組合都測試(復雜度高)
6. 路徑覆蓋要求程序中所有可能的執行路徑都至少測試一次(數量通常是指數級)


二、黑盒測試

? 不考慮程序內部實現,重點在于輸入與輸出是否符合需求說明書

🔹 主要應用階段:

  • 多用于 系統測試驗收測試

  • 測試工程師執行

🔹 特點:

  • 不需要讀代碼,只需理解需求

  • 能從用戶角度檢驗功能是否正常

  • 無法覆蓋具體邏輯路徑,可能遺漏內部缺陷

🔹 常用設計方法:

測試方法描述說明
1. 等價類劃分法將輸入劃分為有效/無效等價類,每類只取一個代表值進行測試
2. 邊界值分析法對輸入的邊界點和邊界附近的值進行測試,如 [0,100] 測試 -1, 0, 1, 99, 100, 101
3. 判定表法將輸入條件與預期動作列為表格,覆蓋所有輸入組合,適用于復雜業務規則
4. 正交法利用正交表從大量組合中選出有代表性的少數組合,提升測試效率
5. 場景法根據真實業務流程設計測試用例,模擬用戶操作路徑
6. 錯誤推測法基于經驗假設容易出錯的情況,如輸入為0、空字符串、最大長度等


三、灰盒測試

? 結合黑盒和白盒測試,既看外部行為,也關注部分內部實現

🔹 主要應用階段:

  • 多用于 集成測試

  • 可由 測試人員與開發共同參與

🔹 特點:

  • 不需要深入所有源代碼,但會參考接口文檔、中間模塊結構

  • 可以設計更有針對性的用例,如模擬接口調用、Mock 數據

  • 較全面,適用于復雜系統間數據流/狀態流的驗證


? 總結對比表:

類別是否看代碼代表測試者應用階段典型方法/技術
白盒測試? 是開發或白盒工程師單元測試語句/分支/路徑/條件覆蓋,靜態掃描等
黑盒測試? 否測試工程師系統、驗收測試等價類、邊界值、場景法、判定表、錯誤猜測
灰盒測試?? 部分聯合測試者集成測試接口驗證、中間狀態分析、部分代碼輔助設計用例

四、按照測試階段分類(在哪個階段進行)

主類別細分說明
1. 單元測試對最小功能單元(函數/類)測試,主要用白盒方法
2. 集成測試測試模塊之間的接口與數據傳遞,結合白盒和黑盒方法
3. 系統測試測試整個系統功能、性能、界面、安全性等,主要用黑盒測試
4. 驗收測試由用戶或第三方進行確認測試,確認軟件是否符合需求和交付標準
附加補充

冒煙測試:驗證核心功能是否正常;回歸測試:確保修改不引入新Bug

(冒煙測活著沒,回歸測改壞沒)

五、按照是否手動執行分類

主類別細分說明
1. 手工測試人工執行測試用例,對靈活性和異常情況測試有優勢
2. 自動化測試使用腳本與工具自動運行測試,提高效率,常用于回歸、性能、安全性測試等

六、按照實施組織劃分

主類別細分說明
1. Alpha測試開發方內部模擬用戶環境的測試(內測)
2. Beta測試實際用戶使用中進行的公開測試(公測)
3. 第三方測試由獨立測試機構進行,保障客觀性與專業性

七、按照地域范圍劃分

主類別細分說明
1. 國際化測試驗證多語言、時區、貨幣等本地化因素是否正常
2. 本地測試針對單一地區、本地配置和用戶習慣進行的測試

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

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

相關文章

整理了 2009 - 2025 年的【199 管綜真題 + 解析】PDF,全套共 34 份文件

每年真題原卷 ? 每年詳細解析 ? 📂【管綜真題 2009-2025】 📂【管綜解析 2009-2025】 目錄樹: ├── 2009-2025管綜真題 PDF │ ├── 2009年199管綜真題.pdf │ ├── 2010年199管綜真題.pdf │ ├── 2011年199管綜真題.pd…

用golang實現二叉搜索樹(BST)

目錄 一、概念、性質二、二叉搜索樹的實現1. 結構2. 查找3. 插入4. 刪除5. 中序遍歷 中序前驅/后繼結點 一、概念、性質 二叉搜索樹(Binary Search Tree),簡寫BST,又稱為二叉查找樹 它滿足: 空樹是一顆二叉搜索樹對…

自動化:批量文件重命名

自動化:批量文件重命名 1、前言 2、效果圖 3、源碼 一、前言 今天來分享一款好玩的自動化腳:批量文件重命名 有時候呢,你的文件被下載下來文件名都是亂七八糟毫無規律,但是當時你下載的時候沒辦法重名或者你又不想另存為重新重…

VueUse/Core:提升Vue開發效率的實用工具庫

文章目錄 引言什么是VueUse/Core?為什么選擇VueUse/Core?核心功能詳解1. 狀態管理2. 元素操作3. 實用工具函數4. 瀏覽器API封裝5. 傳感器相關 實戰示例:構建一個拖拽上傳組件性能優化技巧與原生實現對比常見問題解答總結 引言 在現代前端開發…

stm32 ADC單通道轉換

stm32c8t6僅有12位分辨率 1、單次轉換 非掃描 1、初始化 void Ad_Init() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//配置ADCCLK時鐘分頻,ADC的輸入時鐘不得超過14MHzRCC_ADCCLKConfig(RCC_PCLK2_Div6);G…

2KW壓縮機驅動參考設計【SCH篇】

實物展示: ACDC: VAC和VAC-為交流電壓檢測: 1.C33 C34作為Y電容走線寬度要求: Y電容一般用于L/N到地之間(L-PE 或 N-PE),主要作用是抑制共模干擾。其走線的電流非常小,推薦使用 ≥ 1mm 寬的走…

python05——循環結構

1、while循環 n0 #初始條件 while n<5: #判斷print(hello python) #要重復執行的代碼print(n) #注意同級代碼縮進相同n1 #計數器結果&#xff1a; hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求階乘和 sum0 n1 whil…

LINUX編譯、運行、測試lowcoder_CN

參考 二者沒有太大差異。 LINUX編譯、運行、測試lowcoder-CSDN博客 下載 git clone https://github.com/mousheng/lowcoder_CN 或 git clone https://gitcode.com/gh_mirrors/lo/lowcoder_CNcd lowcoder_CN三個模塊 node-service api-service client 每個模塊都有自己的…

Python 基礎之函數命名

幾個問題 使用描述性蛇形命名法&#xff08;snake_case&#xff09;Python函數名應使用什么大小寫格式&#xff1f;為什么函數名要具有描述性&#xff1f;方法的命名規范是什么&#xff1f;函數、變量和類的命名有何區別&#xff1f; Python函數的命名有一些不可違背的硬性規…

redis 命令大全整理

http://doc.redisfans.com/ 原網址 Redis 命令分類 Key(鍵) Key(鍵)命令 exists/del/keys/type/scanobject/move/dump/migratettl/pttl/persist/expireat/pexpireat/expire/pexpirerename/renamenxsort/randomkey/restoreexists 語法:exists key [key ...] 檢查一個或多…

React中useDeferredValue與useTransition終極對比。

文章目錄 前言一、核心差異對比二、代碼示例對比1. useDeferredValue&#xff1a;延遲搜索結果更新2. useTransition&#xff1a;延遲路由切換 三、應用場景總結四、注意事項五、原理剖析1. 核心機制對比2. 關鍵差異3. 代碼實現原理 總結 前言 在React的并發模式下&#xff0c…

高并發內存池|定長內存池的設計

二、定長內存池的設計 設計一個定長的內存池&#xff0c;這個內存池的定長在于&#xff0c;當剩余空間使用完畢后&#xff0c;總是開辟相同長度的新空間來使用。我們會使用到一個指針來切割劃分大空間為小空間。大空間是內存池向系統申請的內存大小&#xff0c;而小空間是程序…

微信小程序 自定義圖片分享-繪制數據圖片以及信息文字

一 、需求 從數據庫中讀取頭像&#xff0c;姓名電話等信息&#xff0c;當分享給女朋友時&#xff0c;每個信息不一樣 二、實現方案 1、先將數據庫中需要的頭像姓名信息讀取出來加載到data 數據項中 data:{firstName:, // 姓名img:, // 頭像shareImage:,// 存儲臨時圖片 } 2…

從零開始理解Jetty:輕量級Java服務器的入門指南

目錄 一、Jetty是什么&#xff1f;先看一個生活比喻 二、5分鐘快速入門&#xff1a;搭建你的第一個Jetty服務 步驟1&#xff1a;Maven依賴配置 步驟2&#xff1a;編寫簡易Servlet&#xff08;廚房廚師&#xff09; 步驟3&#xff1a;組裝服務器&#xff08;餐廳開業準備&am…

深入淺出IIC協議 - 從總線原理到FPGA實戰開發 -- 第一篇:I2C總線協議深度解剖

第一篇&#xff1a;I2C總線協議深度解剖 副標題 : 兩根線如何征服千億設備&#xff1f;詳解硬件工程師必須掌握的通信奧義 1. 為什么I2C仍是嵌入式經典&#xff1f; 1.1 總線拓撲的哲學 拓撲對比圖 SPI需4線N片選 vs I2C僅2線級聯 UART點對點 vs I2C多主從架構 成本控制實…

MySQL 索引優化以及慢查詢優化

在數據庫性能優化中&#xff0c;索引優化和慢查詢優化是兩個關鍵環節。合理使用索引可以顯著提高查詢效率&#xff0c;而識別和優化慢查詢則能提升整體數據庫性能。本文將詳細介紹MySQL索引優化和慢查詢優化的方法和最佳實踐。 一、MySQL 索引優化 1.1 索引的基本概念 索引是…

vue使用Pinia實現不同頁面共享token

文章目錄 一、概述二、使用步驟安裝pinia在vue應用實例中使用pinia在src/stores/token.js中定義store在組件中使用store登錄成功后&#xff0c;將token保存pinia中向后端API發起請求時&#xff0c;攜帶從pinia中獲取的token 三、參考資料 一、概述 Pinia是Vue的專屬狀態管理庫…

通俗版解釋CPU、核心、進程、線程、協程的定義及關系

通俗版解釋&#xff08;比喻法&#xff09; 1. CPU 和核心 CPU 一個工廠&#xff08;負責干活的總部&#xff09;。核心 工廠里的車間&#xff08;比如工廠有4個車間&#xff0c;就能同時處理4個任務&#xff09;。 2. 進程 進程 一家獨立運營的公司&#xff08;比如一家…

用 VS Code / PyCharm 編寫你的第一個 Python 程序

用ChatGPT做軟件測試 編寫你的第一個 Python 程序——不只是“Hello, World”&#xff0c;而是構建認知、習慣與未來的起點 “第一行代碼&#xff0c;是一個開發者認知世界的方式。” 編程的入門&#xff0c;不只是運行一個字符串輸出&#xff0c;更是開始用計算機思維來理解、…

amd架構主機構建arm架構kkfileview

修改本機使用鏡像倉庫地址 vim /etc/docker/daemon.json {“experimental”: true, “registry-mirrors”: [ “https://docker.m.daocloud.io”, “https://docker.1panel.live”, “http://mirrors.ustc.edu.cn/”, “http://mirror.azure.cn/”, “https://docker.hpcloud.c…