各種測試方法,黑盒測試、白盒測試,靜態測試,動態測試


1.測試方法
軟件測試方法的分類有很多種,以測試過程中程序執行狀態為依據可分為靜態測試 (Static
Testing,ST) 和動態測試 (Dynamic Testing,DT); 以具體實現算法細節和系統內部結構的相
關情況為根據可分黑盒測試、白盒測試和灰盒測試3類;從程序執行的方式來分類,可分為人
工測試 (Manual Testing,MT) 和自動化測試 (Automatic Testing,AT)。
(1)靜態測試。靜態測試是被測程序不運行,只依靠分析或檢查源程序的語句、結構、過
程等來檢查程序是否有錯誤。即通過對軟件的需求規格說明書、設計說明書以及源程序做結構
分析和流程圖分析,從而來找出錯誤。例如不匹配的參數,未定義的變量等。
(2)動態測試。動態測試與靜態測試相對應,是通過運行被測試程序,對得到的運行結果
與預期的結果進行比較分析,同時分析運行效率和健壯性能等。這種方法可簡單分為3個步驟:
構造測試實例、執行程序以及分析結果。
(3)黑盒測試。黑盒測試將被測程序看成是一個黑盒,工作人員在不考慮任何程序內部結
構和特性的條件下,根據需求規格說明書設計測試實例,并檢查程序的功能是否能夠按照規范
說明準確無誤的運行。其主要是對軟件界面和軟件功能進行測試。對于黑盒測試行為必須加以
量化才能夠有效的保證軟件的質量。
(4)白盒測試。白盒測試主要是借助程序內部的邏輯和相關信息,通過檢測內部動作是否
按照設計規格說明書的設定進行,檢查每一條通路能否正常工作。白盒測試是從程序結構方面
出發對測試用例進行設計。主要用于檢查各個邏輯結構是否合理,對應的模塊獨立路徑是否正
常以及內部結構是否有效。常用的白盒測試法有控制流分析、數據流分析、路徑分析、程序變
異等。根據測試用例的覆蓋程度,分為語句覆蓋、判定覆蓋、分支覆蓋和路徑覆蓋等。
(5)灰盒測試。灰盒測試介于黑盒與白盒測試之間。灰盒測試除了重視輸出相對于輸入的
正確性,也看重其內部的程序邏輯。但是,它不可能像白盒測試那樣詳細和完整。它只是簡單
地靠一些象征性的現象或標志來判斷其內部的運行情況,因此在內部結果出現錯誤,但輸出結
果正確的情況下可以采取灰盒測試方法。因為在此情況下灰盒比白盒高效,比黑盒適用性廣的
優勢就凸顯出來了。
(6)自動化測試。自動化測試就是軟件測試的自動化,即在預先設定的條件下自動運行被
測程序,并分析運行結果。總的來說,這種測試方法就是將以人驅動的測試行為轉化為機器執
行的一種過程。


2.測試階段
從階段上劃分,軟件測試可以分為單元測試、集成測試和系統測試,系統測試中又包含了
多種不同的測試種類,例如功能測試、性能測試、驗收測試、壓力測試等。
1.單元測試
主要是對該軟件的模塊進行測試,通過測試以發現該模塊的功能不符合/不滿足期望的情
況和編碼錯誤。
由于模塊的規模不大,功能單一,結構較簡單,且測試人員可通過閱讀源程序清楚知道其
邏輯結構,首先應通過靜態測試方法,比如靜態分析、代碼審查等,對該模塊的源程序進行分
析,按照模塊的程序設計的控制流程圖,以滿足軟件覆蓋率要求的邏輯測試要求。另外,也可
采用黑盒測試方法提出一組基本的測試用例,再用白盒測試方法進行驗證。若用黑盒測試方法
所產生的測試用例滿足不了軟件的覆蓋要求,可采用白盒法增補出新的測試用例,以滿足所需
的覆蓋標準。其所需的覆蓋標準應視模塊的實際具體情況而定。對一些質量要求和可靠性要求
較高的模塊,一般要滿足所需條件的組合覆蓋或者路徑覆蓋標準。
2.集成測試
集成測試通常要對已經嚴格按照程序設計要求和標準組裝起來的模塊同時進行測試,明確
該程序結構組裝的正確性,發現和接口有關的問題。在這一階段,一般采用白盒測試和黑盒測
試結合的方法進行測試,驗證這一階段設計的合理性以及需求功能的實現性。
3.系統測試
一般情況下,系統測試采用黑盒測試,以此來檢查該系統是否符合軟件需求。本階段的主
要測試內容包括功能測試、性能測試、健壯性測試、安裝或反安裝測試、用戶界面測試、壓力
測試、可靠性及安全性測試等。為了有效保證這一階段測試的客觀性,必須由獨立的測試小組
來進行相關的系統測試。另外,系統測試過程較為復雜,由于在系統測試階段不斷變更需求造
成功能的刪除或增加,從而使程序不斷出現相應的更改,而程序在更改后可能會出現新的問題,
或者原本沒有問題的功能由于更改導致出現問題。所以,測試人員必須進行多輪回歸測試。系
統測試的結束標志是測試工作已滿足測試目標所規定的需求覆蓋率,并且測試所發現的缺陷都
第5章 軟件工程基礎知識 207
已全部歸零。
4.性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項
性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,
確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化
情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大
服務級別的測試。
5.驗收測試
驗收測試是最后一個階段的測試,是軟件產品投入正式交付前的測試工作。和系統測試相
比,驗收測試是要滿足用戶需求或者與用戶簽訂的合同(包括技術協議、技術協調單以及各個
階段用戶參與的評審意見等)的各項要求,此外系統測試是軟件開發過程中一項工作,而驗收
測試是由用戶對要交付軟件開展的一種測試工作。驗收測試的主要目標是為用戶展示所開發出
來的軟件符合預定的要求和有關標準,并驗證軟件實際工作的有效性和可靠性,確保用戶能用
該軟件順利完成既定的任務和功能。
通過了驗收測試,該產品就可進行發布。但是,在實際交付給用戶之后,開發人員是無法
預測該軟件用戶在實際運用過程中是如何使用該程序的,所以從用戶的角度出發,測試人員還
應進行Alpha測試或Beta測試。 Alpha 測試是在軟件開發環境下由用戶進行的測試,或者模擬
實際操作環境進而進行的測試。 Alpha 測試主要是對軟件產品的功能、局域化、界面、可使用性
以及性能等等方面進行評價。而Beta測試是在實際環境中由多個用戶對其進行測試,并將在測
試過程中發現的錯誤有效反饋給軟件開發者。
6.其他測試
除了上述各種常規的測試種類之外,近年來由于Web應用和 App 應用的大規模興起,也出
現了一些新型的測試種類,例如 A B 測試、 Web測試中的鏈接測試、表單測試等。
(1)AB測試是為Web或 App界面或流程制作兩個 (A/B) 或多個 (A/B/n) 版本,在同一
時間維度,分別讓組成成分相同(相似)的訪客群組(目標人群)隨機的訪問這些版本,收集
各群組的用戶體驗數據和業務數據,最后分析、評估出最好版本,正式采用。
(2)Web測試是軟件測試的一部分,是針對Web 應用的一類測試。由于 Web應用與用戶直
接相關,又通常需要承受長時間的大量操作,因此Web 項目的功能和性能都必須經過可靠的驗
證。通過測試可以盡可能地多發現瀏覽器端和服務器端程序中的錯誤并及時加以修正,以保證
應用的質量。由于Web具有分布、異構、并發和平臺無關的特性,因而它的測試要比普通程序
復雜得多,包含的測試種類也非常多。
(3)鏈接測試。鏈接是Web應用系統的一個主要特征,它是在頁面之間切換和指導用戶去
一些未知地址頁面的主要手段。鏈接測試可分為3個方面。首先,測試所有鏈接是否按指示的
那樣確實鏈接到了該鏈接的頁面;其次,測試所鏈接的頁面是否存在;最后,保證 Web應用系
統上沒有孤立的頁面。
(4)表單測試。當用戶通過表單提交信息的時候,都希望表單能正常工作。如果使用表單
來進行在線注冊,要確保提交按鈕能正常工作,當注冊完成后應返回注冊成功的消息。如果使
用表單收集配送信息,應確保程序能夠正確處理這些數據,最后能讓用戶收到信息。要測試這
些程序,需要驗證服務器是否能正確保存這些數據,而且后臺運行的程序能否正確解釋和使用
這些信息。當用戶使用表單進行用戶注冊、登錄、信息提交等操作時,必須測試提交操作的完
整性,從而校驗提交給服務器的信息的正確性。如果使用默認值,還要檢驗默認值的正確性。
如果表單只能接受指定的某些值,則也要進行測試。


教程也沒說動態測試與白盒測試的關系.
(AI)
動態測試和白盒測試是軟件測試中常用的兩種測試方法,它們之間有一定的關系,但又有著各自獨特的特點。

動態測試是指運行軟件程序并觀察其在不同輸入下的行為,以驗證其正確性和健壯性的測試方法。它主要關注軟件程序的功能是否符合預期,以及是否存在各種錯誤和缺陷。動態測試通常通過黑盒測試和灰盒測試來進行,即只關注軟件的接口和功能,而不考慮軟件的內部實現。

白盒測試是指基于軟件程序的內部結構和代碼來設計測試用例并進行測試的方法。它主要關注軟件程序的內部邏輯是否正確,以及代碼是否符合規范和設計要求。白盒測試通常通過代碼覆蓋率和路徑覆蓋率等指標來評估測試的完整性和質量。

動態測試和白盒測試之間的關系是相互補充的。動態測試主要驗證軟件程序的功能是否正確,而白盒測試主要驗證軟件程序的內部邏輯是否正確。通過結合動態測試和白盒測試,可以全面地檢查軟件程序的功能和代碼質量,提高軟件的質量和可靠性。

總的來說,動態測試和白盒測試是軟件測試中不可或缺的兩種測試方法,它們可以相互結合,提高軟件測試的效果和效率

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

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

相關文章

Python編程之調試魔法與列表逆轉之謎

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、調試魔法:揭開Python編程的神秘面紗 代碼調試實例 二、列表逆轉之謎&#…

實驗一:通過路由器實現內外網互聯

通過路由器實現內外網互聯 一、實驗拓撲 相關配置詳見下圖,內網區域為AR2以內設備,外網區域以AR1和PC1代替進行實驗測試。 二、實驗要求 通過路由器實現內外網互聯: 1.各內網PC可自動獲取ip地址; 2.各內網PC可ping通外網PC&…

SCSS 基本使用詳解

一、引言 SCSS 是 Sass(Syntactically Awesome Stylesheets)的其中一種語法,是一種預處理器腳本語言,能夠擴展 CSS 的功能,使其更加強大和高效。SCSS 保留了 CSS 的原有語法,同時增加了變量、嵌套規則、混…

藍海卓越計費管理系統 agent_setstate.php SQL注入漏洞復現

0x01 產品簡介 藍海卓越計費管理系統是一套以實現網絡運營為基礎,增強全局安全為中心,提高管理效率為目的的網絡安全運營管理系統,提供“高安全、可運營、易管理”的運營管理體驗,基于標準的RADIUS協議開發,它不僅支持PPPOE和WEB認證計費,還支持802.1X接入控制技術,與其…

WordPress外貿網站建設的成功要素與技術點

WordPress作為一款強大的建站平臺,為外貿企業提供了豐富的功能和靈活的定制選項。在這篇文章中,我們將揭示一些成功建站的秘笈,涵蓋了WordPress外貿網站建設中的關鍵要素和技術點,幫助您打造一個引領行業的成功網站。 1. 選擇合適…

【java深入學習第3章】利用 Spring Boot 和 Screw 快速生成數據庫設計文檔

免費多模型AI網站,支持豆包、GPT-4o、谷歌Gemini等AI模型,無限制使用,快去白嫖👉海鯨AI🔥🔥🔥 在開發過程中,數據庫設計文檔是非常重要的,它可以幫助開發者理解數據庫結構&#xff0…

Kubernetes部署dashboard

Kubernetes部署dashboard Kubernetes集群安裝 鯤鵬arm64架構下安裝KubeSphere linux安裝部署k8s(kubernetes)和解決遇到的坑 dashboard部署 $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashbo…

STM32學習和實踐筆記(30):窗口看門狗(WWDG)實驗

1.WWDG介紹 1.1 WWDG簡介 上一章我們已經介紹了IWDG,知道它的工作原理就是一個12位遞減計數器不斷遞減計數,當減到0之前還未進行喂狗的話,產生一個MCU復位。 窗口看門狗WWDG其實和獨立看門狗類似,它是一個7位遞減計數器不斷的往…

Vue3在Element UI 表格中自定義時間格式化顯示

Vue3在Element UI 表格中自定義時間格式化顯示 一、前言1、準備工作2、實現步驟1. 引入 Element UI 組件2. 自定義時間格式化函數3. 格式化日期邏輯 3、完整示例4、結論 一、前言 在開發 Web 應用程序時,常常需要在表格中展示時間數據。Element UI 是一個流行的 Vu…

【Python】 如何在Python中創建GUID UUID

基本原理 GUID(全局唯一標識符)和UUID(通用唯一標識符)都是用來在分布式系統中唯一標識信息的。在Python中,我們可以使用內置的uuid模塊來生成這些唯一標識符。 UUID有幾種不同的版本,每種版本都有其特定…

軟考-必須要背的內容

一、設計模式 1、創建型 抽象工廠:提供一個接口,創建一系列的相關相互依賴的對象,無需指定具體的類; eg:系統軟件,支持多種數據庫 生成器:將一個復雜類的表示與構造相分離,使得相…

Scrapy順序執行多個爬蟲

Scrapy順序執行多個爬蟲 有兩種方式: 第一種:bat方式運行 新建bat文件 cd C:\python_web\spiders\tiktokSelenium & C: & scrapy crawl spider1 & scrapy crawl spider2 & scrapy crawl spider3 & scrapy crawl spider4 第二種&a…

IOS開發者證書快捷申請

App Uploader 在進行iOS應用開發中,可以借助appuploader輔助工具進行證書制作、上傳和安裝測試等操作。首先,您需要訪問官方網站獲取最新版本的appuploader。最新版本已經優化了與Apple賬號的登錄流程,無需支付688元,并提供了Windows版和Mac版供用戶選擇。下載完成后,解壓…

USART串口通信(stm32)

一、串口通信 通信的目的:將一個設備的數據傳送到另一個設備,擴展硬件系統 通信協議:制定通信的規則,通信雙方按照協議規則進行數據收發 STM32F103C8T6 USART資源: USART1、 USART2、 USART3 自帶波特率發生器&…

方正暢享全媒體新聞采編系統 binary.do SQL注入漏洞復現

0x01 產品簡介 方正暢享全媒體新聞生產系統是以內容資產為核心的智能化融合媒體業務平臺,融合了報、網、端、微、自媒體分發平臺等全渠道內容。該平臺由協調指揮調度、數據資源聚合、融合生產、全渠道發布、智能傳播分析、融合考核等多個平臺組成,貫穿新聞生產策、采、編、發…

【華三包過】2024年/華三H3C/云計算GB0-713

H3CNE-cloud-云計算-713 想轉行 想繼續深入 題庫覆蓋百分百,題庫有新版106道新版113道舊版88道 H3C認證云計算工程師(H3C Certified Network Engineer for Cloud,簡稱H3CNE-Cloud) 認證定位于全面掌握虛擬化技術原理及相關產品/…

半導體行業AI機器視覺的應用探討(3)-效益如何評估

作為半導體廠的IT經理,評估AI機器視覺帶來的經濟收益和管理收益是一個多維度的過程,需要綜合考慮成本節約、效率提升、質量改進等多個方面。以下是一個具體的評估方案: 1. 成本效益分析(CBA) **步驟**: - **初始投資成本**:列出所有與AI機器視覺系統相關的初始投資,包…

c++二進制輸出

輸入一個數&#xff0c;輸出n個數&#xff0c;數可以是0或1&#xff1b;輸入&#xff1a;4輸出&#xff1a;0010&#xff1b;提示&#xff1a;本題要用到rand(),srand(time(0));代碼如下&#xff1a;#include<bits/stdc.h> #include<windows.h> using namespace s…

MySQL的數據庫和表

查看數據庫 命令行的方式&#xff1a; cd /mysql/bin mysql.exe -uroot -p IP&#xff08;不是連接自己&#xff09; 端口&#xff08;不是3306&#xff09; show databases; 直接使用圖形化界面點擊&#xff1a; 查看庫里的表 使用命令行查看&#xff1a; 進入mysql數據庫 u…

JavaFX學習教程二

一、JavaFX 體系結構 JavaFX 場景圖(Scene Graph)是構建 JavaFX 應用程序的起點&#xff0c;一種樹狀數據結構&#xff0c;用于排列&#xff08;和分組&#xff09;圖形對象&#xff0c;以便于邏輯表示。 stage:舞臺&#xff0c;操作系統窗口的 JavaFX 表示&#xff0c;是所有…