亚洲天堂av网_久久精品欧美一区二区三区不卡_亚洲欧美一级_欧美成人合集magnet

知名百科 >> 白盒測試 >> 歷史版本
編輯時間歷史版本內容長度圖片數目錄數修改原因
2024-04-23 13:57 最新歷史版本 11649 1 7
  返回詞條

白盒測試

白盒測試又稱結構測試、邏輯驅動測試或基于程序的測試,是軟件測試的一種重要方法。根據軟件產品的內部工作過程,它在計算機上進行測試,以確認每個內部操作是否符合設計規范,以及是否所有內部組件都已檢查完畢。其目的是發現程序編碼過程中的錯誤。

白盒測試從測試重點可以分為控制流分析技術和數據流分析技術。從是否執行程序的角度來看,可以分為靜態測試方法和動態測試方法。靜態測試方法主要是程序結構分析,可分為代碼走查、代碼審查、控制流分析、數據流分析、信息流分析等。動態測試方法主要分為邏輯覆蓋法和路徑測試法,其中路徑測試法應用最為廣泛。

白盒測試的靜態測試工具主要包括Logiscope、PRQA軟件,動態測試工具主要包括DevPartner軟件和Pure series,可以幫助軟件測試人員增加代碼覆蓋率、提高代碼質量并發現代碼中隱藏的問題。

目錄

基本概念

白盒測試基于對產品內部工作的了解,測試用于檢查產品的內部動作是否按照規范的規定進行。無論系統的功能如何,它都根據程序的內部結構對程序進行測試,以檢查每個程序是否能按照預定的要求正常工作。它通常用于分析程序的內部結構。程序的結構和處理像白盒一樣透明,允許測試人員使用程序的內部邏輯結構和相關信息來設計或選擇測試用例并測試程序的所有邏輯路徑。白盒測試主要用于單元測試和集成測試,但通常不適用于系統測試。但在涉及動態描述的系統描述部分,仍可借鑒一些白盒測試方法。因此,白盒測試不限于單元測試和集成測試。

宗旨原則

白盒測試的主要目的是檢查程序模塊,在檢查過程中應遵循以下原則:

確保程序模塊的所有獨立執行路徑至少測試一次;

在取“真”和“假”的兩種情況下,所有邏輯判斷都可以至少測試一次;

在上下限和操作范圍內運行所有循環;

檢查程序的內部數據結構以確保其結構的有效性。

測試方法

動態測試是在程序運行狀態下進行的測試,即通過輸入預先設計的數據,根據程序運行計算的結果將其與實際輸出結果進行比較,然后發現程序中的錯誤。在程序運行過程中,通過動態測試,測試人員可以判斷基本模塊、執行過程、子系統以及整個系統的運行結果是否存在缺陷。動態測試方法分為三個步驟。首先設置待測配置,然后對相關源程序進行插樁、編譯和鏈接生成可執行文件,最后插樁程序系統自動記錄執行路徑并獲得覆蓋率。動態測試方法分為邏輯覆蓋法和路徑測試法,其中路徑測試法應用最為廣泛。

邏輯覆蓋方法

邏輯覆蓋是一系列測試的通用術語。這種方法要求測試人員對程序的邏輯結構有清晰的理解。根據覆蓋對象的不同和源程序句子的詳細覆蓋情況,常見的邏輯覆蓋可分為六種類型:句子覆蓋、決策覆蓋、條件覆蓋、決策-條件覆蓋、條件組合覆蓋和路徑覆蓋。

報表覆蓋范圍

語句覆蓋是設計幾個測試用例,然后運行被測程序,使每個可執行語句至少執行一次。這種覆蓋使程序中的每個可執行語句都能被執行,但它是最弱的邏輯覆蓋標準,效果有限,必須與其他方法交互使用。

決策覆蓋范圍

判斷覆蓋是指設計幾個測試用例,然后運行被測試的程序,使程序中每個被判斷的真分支和假分支至少經歷一次。判斷覆蓋率略好于句子覆蓋率,但不能保證能找出判斷條件中的錯誤。因此,需要更強的邏輯覆蓋標準來測試和判斷內部條件。

條件覆蓋:條件覆蓋是設計幾個測試用例,然后運行被測程序,使程序中判斷的每個條件的可能值至少執行一次。

路徑覆蓋:路徑覆蓋就是設計足夠多的測試用例,執行程序所有可能的路徑,這是一種覆蓋率最高的覆蓋技術。

z路徑覆蓋范圍:路徑覆蓋由于路徑太多而不便于使用,因此人們放棄了路徑覆蓋的一些次要因素并簡化了循環機制,這大大減少了路徑的數量,使覆蓋這些有限的路徑成為可能。這種覆蓋方法稱為Z路徑覆蓋。循環簡化是指限制循環次數,只考慮循環執行一次和零次。用Z-路徑覆蓋法簡化程序中的循環后,程序中只剩下兩種結構:序列結構和分支結構。

路徑測試方法:白盒測試有兩種常用技術,一種是覆蓋測試,另一種是路徑測試。從流程圖來看,程序的一次執行對應于從入口到出口的一條路徑,對這條路徑的測試就是路徑測試。從廣義上講,任何與路徑分析相關的測試都可以稱為路徑測試。路徑測試基于程序控制流圖,通過分析控制結構的循環復雜度,導出基本可執行路徑集,進而設計測試用例。

程序路徑表達式:在分析路徑時,首先要解決的是確定每條路徑和路徑的數量。為了更直觀形象地表達每條路徑,我們可以使用弧序列或節點序列并引入兩種運算:加法和乘法。弧A和弧B的相加表示為a+b,表示兩條弧為“或”,為平行路徑;弧A和弧B的乘積表示為ab,表示路徑首先經過弧A,然后經過弧B,弧A和弧B依次相連。

基本路徑測試:如果覆蓋的路徑數量被壓縮到一定限度,它就變成了基本路徑測試。基本路徑測試是在程序控制流程圖的基礎上,通過分析控制結構的循環復雜性并導出基本可執行路徑集來設計測試用例的方法。設計的測試用例應該確保程序的每個可執行路徑在測試期間至少執行一次。基本路徑測試方法包括以下五個方面:

1.根據詳細設計或程序源代碼,繪制程序的程序流程圖;

2.根據程序流程圖,繪制程序的控制流程圖;

3.計算程序的循環復雜度。循環復雜度是一種軟件度量標準,用于對程序邏輯的復雜度進行定量測試,該度量標準用于計算程序的基本獨立路徑的數量。

4.找到一條獨立的道路。通過程序的程序流程圖導出設置的基本路徑,并列出程序的獨立路徑;

5.設計測試用例。根據程序結構和程序循環復雜性,設計用例的輸入數據和預期結果,以確保基本路徑集中每條路徑的執行。

每個測試用例執行后,都會與預期結果進行比較。如果所有的測試用例都被執行了,你可以確定程序中所有的可執行語句都至少被執行了一次。但是一些獨立路徑通常不是完全隔離的,有時它們是程序正常控制流的一部分,因此對這些路徑的測試可以是對另一條路徑的測試的一部分。

循環試驗

循環測試專門用于測試程序中的循環,可以進一步提高測試覆蓋率。本質上,循環測試的目的是檢查循環結構的有效性。通常,循環可分為簡單循環、嵌套循環、鏈式循環和非結構化循環。

靜態測試方法:靜態測試方法主要是程序結構分析,可分為代碼審查、代碼遍歷、控制流分析、數據流分析、信息流分析等。

代碼審查

代碼審查是由若干程序員和測試人員組成的審查小組通過閱讀、討論和爭論對程序進行靜態分析的過程。代碼評審分為兩步:第一步,組長提前將設計說明書、控制流程圖、程序文本、相關需求和規范分發給組員,作為評審的依據。團隊成員在充分閱讀這些材料后進行審查的第二步是召開程序審查會議。在會議上,程序員首先解釋程序的邏輯,程序員和其他團隊成員可以提出問題,討論并檢查是否有錯誤。例如,在對一個局部小問題的修改方法的討論中,可能會發現牽連其中的其他問題,甚至是設計模塊的功能描述、模塊之間的接口和系統整體結構中的重大問題,從而導致需求的重新定義、重新設計和重新驗證,從而大大提高軟件質量。

代碼走查

代碼演練與代碼審查基本相同,其過程分為兩步。第一步是先把材料發給檢查組的每個成員,仔細研究后再開會。會議評審的過程不同于代碼評審。參與者不是簡單地閱讀程序并對照錯誤清單進行檢查,而是被允許充當計算機,也就是說,首先,測試團隊的成員為被測試的程序準備許多有代表性的測試用例,并將其提交給走查團隊。演練團隊開會并集體充當計算機,這樣測試用例就可以根據程序邏輯運行,并且可以隨時記錄程序的痕跡以供分析和討論。

控制流分析

控制流分析是指檢查程序的控制結構,以驗證在編程過程中是否遵循了程序結構的某些規則,并在此基礎上獲得相關結構組件的語法樹并揭示控制結構的缺陷。控制流關系圖稱為控制流圖。圖上的每個節點對應一個程序元素,兩個節點之間有一條直接的弧線,這表明對應的兩個元素在控制流關系中形成了一個序列對。控制流程圖中的路徑對應于潛在可執行程序元素的序列。執行路徑意味著執行相應的程序元素序列。如果輸入導致路徑的執行,那么路徑是可達的,否則是不可達的。通常,有許多具有周期的無線路徑。即使沒有循環,程序也可能有許多路徑要分析。它有五種基本程序結構:線性結構、基本條件判斷、多分支條件判斷、while-do循環和do-while循環。控制流分析主要從三個方面分析程序結構:條件決策節點本身的復雜性;條件決策節點和循環節點對執行路徑的影響;周期本身的復雜性。

數據流分析

數據流分析最早出現在生成有效目標代碼的編譯系統中,這種方法主要用于優化代碼。數據流測試是一種基于程序控制流的結構化測試方法,從已建立的數據目標狀態序列中發現異常。它的基本思想是變量的定義,通過重復引用和定義可以影響另一個變量的值或路徑的選擇。在測試數據流時,根據變量在被測程序中的定義和引用位置來選擇測試路徑。

信息流分析

信息流分析主要用于驗證程序變量之間的信息傳輸是否遵循保密性要求,并通過分析輸入數據、輸出數據和語句之間的關系來檢查程序錯誤。信息流分析主要用于分析是否存在無用語句。信息流分析可以列出對輸入變量的所有可能的引用,檢查程序的執行是否在任何指定點影響輸出變量值的語句,并提供對輸入-輸出關系的檢查,以查看每個輸出值是否來自相應的輸入值。

檢測方法

程序儀表

程序插裝使被測程序在保持原有邏輯完整性的基礎上向程序中插入一些探針,并通過探針的執行拋出程序的運行特征數據。基于對這些特征數據的分析,可以得到程序的控制流和數據流信息,進而得到邏輯覆蓋等動態信息。在程序中何處設置探針,如何設計探針以及如何對探針函數捕獲的數據進行編碼和解碼。

程序插裝在實踐中應用廣泛,可用于捕獲程序執行過程中變量值的變化,也可用于檢測程序的分支覆蓋和語句覆蓋。程序插裝的關鍵技術包括檢測什么信息、在程序中何處設置探針、如何設計探針以及探針函數捕獲的數據的編碼和解碼。

領域測試

領域測試的“領域”是指程序的輸入空間。領域測試方法基于對輸入空間的分析,其理想結果是檢查輸入空間中的每個輸入元素是否產生正確的結果。輸入空間可以分成不同的子空間,每個子空間對應不同的計算。在調查了被測程序的結構后發現,子空間的劃分是由程序中分支語句的謂詞決定的,輸入空間的一個元素以程序中某些特定語句的執行結束。領域測試基于對輸入領域的分析,并選擇適當的測試點進行測試。

符號測試

符號測試遵循傳統的程序測試方法,通過運行被測程序來驗證其可靠性。此外,由于符號測試的結果代表了一大類普通測試的運行結果,因此它實際上是為了證明程序是否接受這樣的輸入以及輸出結果是否正確。從符號測試的使用情況來看,問題的關鍵是開發一個比傳統編譯器更強大的編譯器。能夠處理符號操作的編譯器和解釋器。

程序變異

程序變異測試是一種錯誤驅動的測試,針對的是特定的程序錯誤。由于人們無法找出程序中的所有錯誤,因此更現實的方法是盡可能縮小錯誤的范圍,從而有助于測試某一類型的錯誤是否存在。這樣可以很容易地關注對軟件最有害的可能錯誤,實現更高的測試效率并降低測試成本。

覆蓋標準

測試覆蓋標準包括K.A.Foster的ESTCA覆蓋標準和Woodward的分級LCSAJ覆蓋標準。福斯特的經驗覆蓋率標準受到早期硬件測試方法的啟發。通過大量實驗,確定了程序中最容易出錯的謂詞部分,并得到了一組錯誤敏感測試用例分析(ESTCA)規則。Woodward等人提出了一種分層的LCSAJ覆蓋準則。LCSAJ(線性碼序列和跳轉)的意思是線性碼序列和跳轉。LC SAJ是一組順序執行的代碼,以控制流跳轉作為其終點。它表明覆蓋率標準越高,就越難滿足。

ESTCA覆蓋標準:ESTCA coverage criterion也稱為錯誤敏感測試用例分析規則,是基于程序中最容易出錯的謂詞部分的規則,屬于大數據的范疇。ESTCA覆蓋率準則針對的是程序員容易犯的錯誤,或者是圍繞錯誤發生頻繁的區域,從而提高發現錯誤的概率。它有三個規則。

規則1:對于A rel B(rel可以是)的分支謂詞,應該適當選擇A和B的值,以便當測試執行到分支語句時,A《B、A=B和A》B的情況分別出現一次。

白盒測試白盒測試

規則2:對于類型為rel1 C的分支謂詞(rel1可以》或

規則3:為外部輸入變量賦值,使它們在每個測試用例中具有不同的值和符號,這些值和符號與同一組測試用例中其他變量的值和符號不一致。

LCSAJ覆蓋標準:LCSAJ覆蓋準則也稱為線性碼序列和跳轉。LCSAJ是一組按順序執行的代碼,以控制流的跳轉作為其終點。LCSAJ的起點是程序第一行的入口點或控制流可以到達的點。幾個LCSAJ字符串首尾相連,最后一個LCSAJ端點就是程序的終點,構成了程序的一條路徑。LCSAJ覆蓋準則是一種分層覆蓋準則;

第一層是語句;

第二層是分支覆蓋;

第三層是一段LCSAJ覆蓋,即程序的每個LCSAJ至少測試一次;

第四層是兩個LCSAJ蓋的任意連接,即程序中每兩個首尾相連的LCSAJ將被測試一次;

第五層為任意連接的三層LCSAJ蓋;

n+2層是每n個端到端LCSAJ組合測試一次,以此類推。

方法選擇

白盒測試中測試方法的選擇策略如下:

1.在測試中,首先分析了靜態結構。

2.采用靜態和動態相結合的方法。在靜態結構分析、代碼檢查和靜態質量度量之后,進行覆蓋測試。

3.利用靜態分析的結果,通過代碼檢查和動態測試進一步確認結果,使測試工作更加有效。

4.覆蓋測試是白盒測試的重點,基本路徑測試用于達到語句覆蓋標準。對于關鍵模塊,應該使用多個覆蓋標準來衡量代碼覆蓋率。

5.不同的測試階段有不同的側重點。

應用領域

白盒測試適用于單元測試、集成測試和回歸測試。單元測試是指檢查和驗證軟件中最小的可測試單元。單元是一個軟件組件,不能再細分為其他組件。軟件工程師編寫白盒測試用例來檢查單元編碼是否正確。

集成測試測試軟件組件、硬件組件或兩者來評估它們的交互。測試人員可以編寫白盒測試用例以及黑盒測試用例來清楚地檢查各個單元之間的接口。

回歸測試,即系統或組件的選擇性重新測試,以驗證修改不會導致意外影響,并且系統或組件仍符合其指定要求。回歸測試可以通過黑盒測試用例、白盒測試用例或兩者的結合來完成。白盒測試用例以及集成測試用例可以被保存并允許作為回歸測試的一部分。

標簽

亚洲天堂av网_久久精品欧美一区二区三区不卡_亚洲欧美一级_欧美成人合集magnet
99视频在线精品国自产拍免费观看| 久久激情视频免费观看| 国产日韩成人精品| 国产精品久久久久一区二区三区| 欧美日韩国产一区二区三区| 男人天堂欧美日韩| 欧美xart系列高清| 欧美国产日韩一区二区| 欧美大片一区| 欧美高清在线一区| 欧美激情综合色| 欧美理论在线| 欧美午夜电影一区| 国产精品丝袜白浆摸在线| 国产美女高潮久久白浆| 国产欧美日韩不卡| 国内精品久久久久影院 日本资源| 国产一区二区三区久久悠悠色av| 夜夜嗨av一区二区三区网页| 亚洲区第一页| 99精品欧美一区二区三区| 99精品国产在热久久下载| 一区二区三区精品国产| 亚洲欧美日韩国产精品| 久久精品国产一区二区电影| 久久综合亚洲社区| 欧美精品18+| 国产精品视频福利| 黑人巨大精品欧美黑白配亚洲| 在线观看一区| 日韩一级精品视频在线观看| 亚洲在线视频一区| 久久九九热免费视频| 欧美成人中文| 欧美日韩一级黄| 国产日本欧美一区二区三区| 有坂深雪在线一区| 99爱精品视频| 午夜精品成人在线| 开心色5月久久精品| 欧美日韩精品国产| 国产日韩欧美亚洲| 亚洲国产黄色片| 亚洲午夜电影| 久久久91精品国产一区二区精品| 免费在线国产精品| 国产精品夫妻自拍| 黄色亚洲精品| 中文有码久久| 久久手机精品视频| 欧美亚男人的天堂| 狠狠色噜噜狠狠色综合久| 亚洲免费激情| 久久久精品性| 国产精品成人aaaaa网站| 伊人成人在线| 亚洲一级二级| 另类图片国产| 国产精品美女久久久久久2018| 在线免费观看视频一区| 亚洲影院在线| 欧美激情国产精品| 国产亚洲精品7777| 一区二区三区 在线观看视| 久久国产乱子精品免费女 | 性刺激综合网| 欧美韩国日本综合| 国产综合色精品一区二区三区| 日韩午夜电影av| 久久久久中文| 国产精品视频内| 亚洲美女网站| 另类av一区二区| 国产三级欧美三级| 中日韩视频在线观看| 欧美成年人视频网站欧美| 国产欧美日韩一区二区三区在线| 亚洲精品影院| 美女尤物久久精品| 国产性色一区二区| 亚洲一区二区不卡免费| 欧美精品久久久久久久| 影音先锋欧美精品| 久久精品国产清自在天天线| 欧美性做爰毛片| 亚洲免费高清| 欧美成人一区二区| 伊人婷婷欧美激情| 久久激情婷婷| 国产一区二区欧美日韩| 亚洲欧美日韩国产一区二区三区| 欧美精品乱码久久久久久按摩| 一区国产精品| 久久精品国产精品亚洲精品| 国产精品日韩一区| 一本色道精品久久一区二区三区| 麻豆精品视频| 樱桃国产成人精品视频| 久久精品一二三区| 国产一区二区三区久久| 欧美在线视频一区二区三区| 国产精品女主播一区二区三区| 一区二区三区.www| 欧美三区在线视频| 一区二区三区www| 欧美日韩日本视频| 99视频+国产日韩欧美| 欧美成人在线影院| 亚洲激情一区二区| 欧美高清视频| 日韩亚洲欧美成人一区| 欧美久久久久久久久久| 日韩视频免费观看高清完整版| 欧美激情a∨在线视频播放| 亚洲激情一区| 欧美日韩第一页| 在线综合视频| 国产精品色网| 欧美主播一区二区三区美女 久久精品人 | 欧美片在线观看| 亚洲日韩欧美视频| 欧美久久电影| 在线亚洲免费视频| 国产精品免费看久久久香蕉| 午夜亚洲一区| 国内激情久久| 女女同性精品视频| 亚洲黄网站黄| 欧美日韩国产一区二区三区地区| 日韩午夜三级在线| 国产精品久久久久三级| 亚洲在线网站| 国精品一区二区三区| 美女图片一区二区| 亚洲免费观看视频| 国产精品普通话对白| 先锋影音国产精品| 狠狠色狠色综合曰曰| 欧美大香线蕉线伊人久久国产精品| 亚洲精品视频一区二区三区| 欧美三区免费完整视频在线观看| 午夜精品久久| 亚洲大胆人体在线| 欧美日韩综合久久| 欧美在线视频全部完| 亚洲大黄网站| 欧美亚一区二区| 欧美伊人久久大香线蕉综合69| 黄色小说综合网站| 欧美精品久久99| 香蕉视频成人在线观看 | 国产一区二区三区最好精华液| 久久精品国产免费观看| 亚洲国产精品高清久久久| 欧美日韩在线大尺度| 久久gogo国模裸体人体| 亚洲精品国产精品乱码不99按摩 | 国内外成人在线| 欧美jizzhd精品欧美巨大免费| 99在线热播精品免费| 国产一区二区久久精品| 欧美精品福利视频| 欧美伊人久久大香线蕉综合69| 亚洲日韩中文字幕在线播放| 国产伦精品免费视频| 欧美成人免费大片| 欧美一级电影久久| 日韩午夜激情av| 国产综合色产| 国产精品h在线观看| 麻豆乱码国产一区二区三区| 亚洲淫性视频| 亚洲清纯自拍| 极品少妇一区二区| 国产精品青草综合久久久久99| 欧美mv日韩mv国产网站app| 亚洲欧美一区在线| 亚洲精品国产无天堂网2021| 国产偷自视频区视频一区二区| 欧美区在线播放| 久久精品最新地址| 亚洲一区二区高清| 亚洲精品女av网站| 精品动漫一区二区| 国产噜噜噜噜噜久久久久久久久 | 日韩一本二本av| 国产亚洲欧美激情| 欧美视频在线视频| 免费人成精品欧美精品| 亚洲欧美日韩天堂| 99精品99| 91久久夜色精品国产网站| 国产一区二区三区网站| 国产精品第十页| 欧美精品三级日韩久久| 老司机免费视频久久| 欧美在线网址| 亚洲欧美一区二区在线观看| 亚洲免费观看| 亚洲电影观看|