白盒測試和黑盒測試_第1頁
白盒測試和黑盒測試_第2頁
白盒測試和黑盒測試_第3頁
白盒測試和黑盒測試_第4頁
白盒測試和黑盒測試_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

4/9白盒測試白盒測試,又稱結構測試、透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。采用什么方法對軟件進行測試呢?常用的軟件測試方法有兩大類:靜態測試方法和動態測試方法。其中軟件的靜態測試不要求在計算機上實際執行所測程序,主要以一些人工的模擬技術對軟件進行分析和測試;而軟件的動態測試是通過輸入一組預先按照一定的測試準則構造的實例數據來動態運行程序,而達到發現程序錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬于動態分析方法。中文名:白盒測試外文名:white-boxtesting別

稱:結構測試、透明盒測試白盒測試測試方法白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。白盒測試法的覆蓋標準有邏輯覆蓋、循環覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標準發現錯誤的能力呈由弱到強的變化:1.語句覆蓋每條語句至少執行一次。2.判定覆蓋每個判定的每個分支至少執行一次。3.條件覆蓋每個判定的每個條件應取到各種可能的值。4.判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。5.條件組合覆蓋每個判定中各條件的每一種組合至少出現一次。6.路徑覆蓋使程序中每一條可能的路徑至少執行一次。白盒測試要求1.保證一個模塊中的所有獨立路徑至少被使用一次。2.對所有邏輯值均需測試true和false。3.在上下邊界及可操作范圍內運行所有循環。4.檢查內部數據結構以確保其有效性。白盒測試目的通過檢查軟件內部的邏輯結構,對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設立檢查點,檢查程序的狀態,以確定實際運行狀態與預期狀態是否一致。白盒測試特點依據軟件設計說明書進行測試、對程序內部細節的嚴密檢驗、針對特定條件設計測試用例、對軟件的邏輯路徑進行覆蓋測試。白盒測試實施步驟1.測試計劃階段:根據需求說明書,制定測試進度。2.測試設計階段:依據程序設計說明書,按照一定規范化的方法進行軟件結構劃分和設計測試用例。3.測試執行階段:輸入測試用例,得到測試結果。4.測試總結階段:對比測試的結果和代碼的預期結果,分析錯誤原因,找到并解決錯誤。白盒測試優缺點白盒測試優點1.迫使測試人員去仔細思考軟件的實現2.可以檢測代碼中的每條分支和路徑3.揭示隱藏在代碼中的錯誤4.對代碼的測試比較徹底5.最優化白盒測試缺點1.昂貴2.無法檢測代碼中遺漏的路徑和數據敏感性錯誤3.不驗證規格的正確性在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例。包括以下4個步驟和一個工具方法:1.程序的控制流圖:描述程序控制流的一種圖示方法。2.程序圈復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。3.導出測試用例:根據圈復雜度和程序結構設計用例數據輸入和預期結果。4.準備測試用例:確保基本路徑集中的每一條路徑的執行。白盒測試工具方法1.圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現自動地確定一個基本路徑集。2.程序的控制流圖:描述程序控制流的一種圖示方法。3.圓圈稱為控制流圖的一個結點,表示一個或多個無分支的語句或源程序語句。流圖只有二種圖形符號:1.圖中的每一個圓稱為流圖的結點,代表一條或多條語句。2.流圖中的箭頭稱為邊或連接,代表控制流,任何過程設計都要被翻譯成控制流圖。在將程序流程圖簡化成控制流圖時,應注意:1.在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。2.邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。白盒測試步驟基本路徑測試法的步驟:第一步:畫出控制流圖流程圖用來描述程序控制結構。可將流程圖映射到一個相應的流圖(假設流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結點,即使該結點并不代表任何語句(例如:if-else-then結構)。由邊和結點限定的范圍稱為區域。計算區域時應包括圖外部的范圍。第二步:計算圈復雜度圈復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計算圈復雜度:流圖中區域的數量對應于環型的復雜性;給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量;給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。第三步:導出測試用例根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的獨立路徑的條數。)路徑1:4-14路徑2:4-6-7-14路徑3:4-6-8-10-13-4-14路徑4:4-6-8-11-13-4-14根據上面的獨立路徑,去設計輸入數據,使程序分別執行到上面四條路徑。白盒測試相關區別編輯白盒測試黑盒測試概述黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。“黑盒”法著眼于程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟件驗證。“白盒”法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。“白盒”法是窮舉路徑測試。軟件人員使用白盒測試方法,主要想對程序模塊進行如下的檢查:1.對程序模塊的所有獨立的執行路徑至少測試一次;2.對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;3.在循環的邊界和運行界限內執行循環體;4.測試內部數據結構的有效性,等。具體包含的邏輯覆蓋有:–語句覆蓋–判定覆蓋–條件覆蓋–判定-條件覆蓋–條件組合覆蓋–路徑覆蓋。白盒測試區別白盒測試技術(WhiteBoxTesting):深入到代碼一級的測試,使用這種技術發現問題最早,效果也是最好的。該技術主要的特征是測試對象進入了代碼內部,根據開發人員對代碼和對程序的熟悉程度,對有需要的部分進行在軟件編碼階段,開發人員根據自己對代碼的理解和接觸所進行的軟件測試叫做白盒測試。這一階段測試以軟件開發人員為主,在JAVA平臺使用Xunit系列工具進行測試,Xunit測試工具是類一級的測試工具對每一個類和該類的方法進行測試。黑盒測試技術(BlackBoxTesting):黑盒測試的內容主要有以下幾個方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結合兼容,性能測試等方面進行,根據軟件需求,設計文檔,模擬客戶場景隨系統進行實際的測試,這種測試技術是使用最多的測試技術涵蓋了測試的方方面面,可以考慮以下方面:1.正確性(Correctness):計算結果,命名等方面。2.可用性(Usability):是否可以滿足軟件的需求說明。3.邊界條件(BoundaryCondition):輸入部分的邊界值,就是使用一般書中說的等價類劃分,試試最大最小和非法數據等等。4.性能(Performance):正常使用的時間內系統完成一個任務需要的時間,多人同時使用的時候響應時間在可以接受范圍內。J2EE技術實現的系統在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5秒以上就影響易用性了。如果在測試過程中發現性能問題,修復起來是非常艱難的,因為這常常意味著程序的算法不好,結構不好,或者設計有問題。因此在產品開發的開始階段,就要考慮到軟件的性能問題5.壓力測試(Stress):多用戶情況可以考慮使用壓力測試工具,建議將壓力和性能測試結合起來進行。如果有負載平衡的話還要在服務器端打開監測工具,查看服務器CPU使用率,內存占用情況,如果有必要可以模擬大量數據輸入,對硬盤的影響等等信息。如果有必要的話必須進行性能優化(軟硬件都可以)。這里的壓力測試針對的是某幾項功能。6.錯誤恢復(ErrorRecovery):錯誤處理,頁面數據驗證,包括突然間斷電,輸入臟數據等。7.安全性測試(Security):這個領域正在研究中,防火墻、補丁包、殺毒軟件等的就不必說了,不過可以考慮。破壞性測試時任意看了一些資料后得知,這里面涉及到的知識、內容可以寫本書了,不是一兩句可以說清的,特別是一些商務網站,或者跟錢有關,或者和公司秘密有關的web更是需要這方面的測試,在外國有一種專門干這一行的人叫安全顧問,可以審核代碼,提出安全建議,出現緊急事件時的處理辦法等,在國內沒有聽說哪里有專門搞安全技術測試的內容。8.兼容性(Compatibility):不同瀏覽器,不同應用程序版本在實現功能時的表現不同的上網方式,如果你測試的是一個公共網站的話。白盒測試三步法1.根據代碼的功能,人工設計測試用例進行基本功能測試;2.統計白盒覆蓋率,為未覆蓋的白盒單位設計測試用例,實現完整的白盒覆蓋,比較理想的覆蓋率是實現100%語句、條件、分支、路徑覆蓋;3.自動生成大量的測試用例,捕捉"程序員未處理某些特殊輸入"形成的錯誤。第1步的測試用例通常是現成的,因為詳細設計文檔會規定程序的基本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論