項目測試基礎:白盒測試相關知識筆記

? ? ? ?? ? ? ?

?

1、白盒測試概念

白盒測試又稱為結構測試,主要是根據程序的內部結構和邏輯來設計測試用例,然后對程序的路徑和過程進行測試,檢查是否滿足設計的需要。

2、白盒測試常用的技術介紹

白盒測試常用的技術有邏輯覆蓋、循環覆蓋、基本路徑測試。

2.1 邏輯覆蓋

邏輯覆蓋考察用測試數據運行被檢測程序時,對程序邏輯的覆蓋程度。常用的邏輯覆蓋標準語句:判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。

  • 語句覆蓋:主要是指選擇足夠的測試數據,使得被測試程序中每條語句至少執行一次。一般情況下語句覆蓋對程序執行邏輯覆蓋率很低,屬于弱邏輯覆蓋。

  • 判定覆蓋:主要是指設計足夠的測試用例,,使得程序中每個判定表達式至少獲得一次true或false。判斷覆蓋也成為分支覆蓋。

  • 條件覆蓋:條件覆蓋是指構造一組測試用例,使得每一個判定語句中每個邏輯條件的各種可能的值,至少滿足一次。

  • 判定/條件覆蓋:主要是指設定足夠的測試用例,使得判定語句中每個條件的所有可能取值,至少出現一次,,并且每個判定本身的判斷結果至少也出現一次。

  • 條件組合覆蓋:主要是指設計足夠的用例,使得每個判定條件的各種可能的組合都至少出現一次。滿足條件組合覆蓋的一定滿足判定覆蓋、條件覆蓋、判定/條件覆蓋。

  • 路徑覆蓋:主要是指覆蓋被測試程序中所有可能的路徑。

2.2 循環覆蓋

循環覆蓋就是指執行足夠的測試用例,使得循環中的每個條件都得到驗證。

2.3 基本路徑測試

基本路徑測試是在程序控制流圖的基礎上,通過分析控制流圖的環路復雜性,導出基本可執行路徑集合,從而設計相應的測試用例。設計出的測試用例要保證在測試中程序的每一條獨立路徑都執行過。

3、白盒測試的原則

  • 程序模塊中所有獨立路徑至少執行一次

  • 在所有邏輯判斷中,取trueh和false的兩種情況至少都執行一次。

  • 每個循環都應在邊界條件和一般條件下各執行一次。

  • 測試程序內部數據結構的有效性

4、白盒測試和黑盒測試優缺點

?

測試類型

優點

缺點

白盒測試

可以幫助軟件測試人員增大代碼的覆蓋率。?提升代碼的質量,發現代碼中隱藏的問題

1、程序運行會有很多不同的路徑,不可能測試所有的運行路徑

2、測試基于代碼,只能測試開發人員做的對不對,而不能知道設計是否正確,可能會漏掉一些功能需求

3、系統龐大時,測試開銷會非常大。

黑盒測試

1、比較簡單,不需要了解程序的內部的代碼及實現

2、與軟件的內部實現無關

3、從用戶的角度出發,能很容易的知道用戶會用到哪些功能,會遇到哪些問題

4、基于軟件開發文檔,所以也能知道軟件實現了文檔中的哪些功能

5、在做軟件自動化測試時較為方便

?

1、不可能覆蓋所有的代碼, 覆蓋率較低,一般只能達到總代碼量的30%

2、自動化測試的復用性較低。

?

?

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

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

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

相關文章

java全局變量和局部變量

分類: 變量按作用范圍劃分分為全局變量(成員變量)和局部變量 成員變量按調用方式劃分分為實例屬性與類屬性 局部變量按定義位置劃分分為形參,方法局部變量,代碼塊局部變量 成員變量: 直接在類中聲明的…

電腦系統知識:Windows原版系統與Ghost系統的區別,你知道嗎?

經常看到有電腦小白的朋友問原版操作系統跟Ghost的區別是什么,該怎么選擇安裝哪種系統?今天在這里就說說它們之間的聯系與區別。Windows原版系統:原版系統就是微軟推送給用戶的原始“干凈”的系統。系統不含第三方的軟件,軟件補丁…

sql server update觸發器_SQL Server 觸發器

T-SQL 觸發器觸發器分為BEFORE觸發器*(SQL Server不支持,Oracle支持)在事件發生時觸發。AFTER觸發器是 SQLServer生成的最初用于自動相應數據修改的機制。在 SQLServer200以前的版本中 AFTER觸發器是唯一的觸發器,因此不用指明 AFTER,也可以用…

iOS 公司開發者賬號申請

對于獨立開發者很有用,收藏起來,以備不時之需! 蘋果開發者賬號分三種。 個人賬號:個人申請用于開發蘋果app所使用的賬號,僅限于個人使用,申請比較容易,$99。 公司賬號:以公司的名義申請的開發者賬號,用于公…

php渲染視圖,Laravel 視圖渲染:Blade 模板引擎

Laravel 視圖渲染:Blade 模板引擎由 學院君 創建于3年前, 最后更新于 2年前版本號 #153378 views27 likes0 collectsBlade 簡介Blade 是由 Laravel 提供的非常簡單但功能強大的模板引擎,不同于其他流行的 PHP 模板引擎,Blade 在視圖中并不約束…

項目管理基礎:系統切換相關知識筆記

1、系統試運行主要任務對新系統進行初始化、補錄各種原始數據記錄記錄系統運行過程中的數據和狀況核對新舊系統輸出結果是否正確對實際系統的輸入方式進行考察主要包括是否方便、效率、可靠性、誤操作保護等方面。對系統實際運行、響應速度進行實際測試,確定是否滿足…

sql 分組統計_leetcode-sql面試題十七篇精講合集

這可能是全網最干貨的sql講解系列文章。全系列共十七講。做了大量的知識點的拓展,涵蓋了sql的方方面面。歡迎關注點贊收藏,正在整理三年數據分析的點點滴滴。包括Excel、python、sql、power BI、各種分析模型框架。保證輸出最干的干貨。涉及知識點包括&a…

實時數據處理插件開發flume+kafka+storm:flume

有時間了再寫。。。。轉載于:https://www.cnblogs.com/wchb/p/5786582.html

項目管理基礎:系統維護相關知識筆記

1、系統的可維護性系統的可維護性就是項目維護人員理解、改正、改動和改進該軟件的難易程度。提高系統的可維護性是開發軟件吸引所有步驟的關鍵目的,系統能否被很好地維護,可用系統的可維護性這一指標來衡量。1.1 系統可維護性的評價指標可理解性&#x…

java ibm 2035,C# java 連接 IBM MQ時出現 2035 或 2013認證錯誤的解決方法

當C# 或 java 連接 IBM MQ 是出現 2035 或 2013的錯誤時java的錯誤提示:com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 為隊列管理器“QM1”提供的安全性認證無效,連接方式為“Client”,主機名為“9.186.105.212(1414)”…

python給兩個列表排序方法_Python連接兩個字符串列表并對其元素排序的最佳方法...

假設我有兩個字符串列表:x[a,b] and b[c,d]我需要的最終結果是:^{pr2}$重要的一點是,我希望對列表元素的字母進行排序。在這里,他們是建設,但在我的實際問題,這不是這樣。所以如果我有“ba”,在…

mac搭建本地svn

1.終端,創建SVN資源文件庫 svnadmin create /Volumes/DATA/SVNTest 2配置權限 上面的語句執行完之后在相應路徑下可以找到該文件夾,打開之后 這里主要是修改conf里面的是三個文件:authz,passwd,scnserve.conf a.authz …

一個棧楨對應著一個方法

一個棧楨對應著一個方法

php提交之前驗證數據ajax提示,在通過Ajax請求提交之前使用jQuery進行表單驗證

在嘗試使用Ajax請求將表單提交到我的php腳本之前,我試圖讓我的表單進行驗證.我查看了stackoverflow并沒有找到有用的東西.我有3個輸入和一個提交按鈕:$(document).ready(function() {function validator(){return $(form).validate();}$(form).on(submit, function(…

程序員幽默:39個奇葩代碼注釋,每一個都能笑抽

1. 只有上帝知道//我寫這一行的時候,只有上帝和我知道我在寫什么//現在,只有上帝知道了2. 相隔時空的diss//somedev1 - 6/7/02 添加對登錄屏幕的暫時追蹤功能//somedev2 - 5/22/07 暫時個屁(仿佛看到兩個程序員相隔時空的diss)3…

網絡安全用python嗎_使用Python進行網絡安全滲透——密碼攻擊測試器

相關文章:本篇將會涉及:HTTP 基本認證對HTTP Basic認證進行密碼暴力攻擊測試什么是HTTP 基本認證HTTP基本認證(HTTP Basic Authentication)是HTTP協議中實現Web資源訪問控制的最簡單的認證手段。其通過添加header頭域的方式或者在URL中附帶參數的方式提供…

EJB3 學習筆記六

開發表音映射的實體 Java持久化規范(JPA),即是實體bean通遠元數據在javaBean和數據庫之間建立映射關系,常見的hibernate toplink openjpa 在src目錄下添加META-INF/persistence.xml文件,示例代碼如下: <?xmlversion"1.0"encoding"UTF-8"?> <…

棧出現的異常和設置棧的大小-Xss

異常 java.lang.StackOverflowError 看下面的例子&#xff0c;默認的棧內存 設置棧內存 使用參數-Xss大小來設置棧的大小