版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、叮叮小文庫白盒測試白盒測試,又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計方法, 盒子指的是被測試的軟件,白盒指的是盒子 是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運作的。白盒法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。白盒法是窮舉路徑測試。在使用 這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu), 從檢查程序的邏輯著手,得出測 試數(shù)據(jù)。貫穿程序的獨立路徑數(shù)是天文數(shù)字。采用什么方法對軟件進(jìn)行測試呢?常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。其中軟件的靜態(tài)測試不要求在計算機(jī)上實際執(zhí)行所測程 序,主要以一些人工的模擬技術(shù)對軟件進(jìn)行分析和測試;而軟
2、件的動態(tài)測試是通過輸入一組預(yù)先按照一定的測試準(zhǔn)則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達(dá)到發(fā)現(xiàn)程序錯誤的過程。在動態(tài)分析技術(shù)中,最重要的技術(shù)是路徑和分支測試。下面 要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。中文名:白盒測試夕卜文名: white-box testing別 稱:結(jié)構(gòu)測試、透明盒測試白盒測試測試方法白盒測試的測試方法有代碼檢查法、 靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏 輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆 蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定 /條件覆蓋、條件組合覆蓋和路徑 覆蓋。六種覆蓋標(biāo)準(zhǔn)
3、發(fā)現(xiàn)錯誤的能力呈由弱到強(qiáng)的變化:1. 語句覆蓋每條語句至少執(zhí)行一次。2. 判定覆蓋每個判定的每個分支至少執(zhí)行一次。3. 條件覆蓋每個判定的每個條件應(yīng)取到各種可能的值。4. 判定/條件覆蓋同時滿足判定覆蓋條件覆蓋。5. 條件組合覆蓋每個判定中各條件的每一種組合至少出現(xiàn)一次。6. 路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。白盒測試要求1保證一個模塊中的所有獨立路徑至少被使用一次。2. 對所有邏輯值均需測試true和false。3. 在上下邊界及可操作范圍內(nèi)運行所有循環(huán)。4. 檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。白盒測試目的通過檢查軟件內(nèi)部的邏輯結(jié)構(gòu),對軟件中的邏輯路徑進(jìn)行覆蓋測試;在程序不同地方設(shè)
4、立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預(yù)期狀態(tài)是否一 致。白盒測試特點依據(jù)軟件設(shè)計說明書進(jìn)行測試、對程序內(nèi)部細(xì)節(jié)的嚴(yán)密檢驗、針對特定條件 設(shè)計測試用例、對軟件的邏輯路徑進(jìn)行覆蓋測試。白盒測試實施步驟1. 測試計劃階段:根據(jù)需求說明書,制定測試進(jìn)度。2. 測試設(shè)計階段:依據(jù)程序設(shè)計說明書,按照一定規(guī)范化的方法進(jìn)行軟件結(jié) 構(gòu)劃分和設(shè)計測試用例。3. 測試執(zhí)行階段:輸入測試用例,得到測試結(jié)果。4. 測試總結(jié)階段:對比測試的結(jié)果和代碼的預(yù)期結(jié)果,分析錯誤原因,找到 并解決錯誤。白盒測試優(yōu)缺點白盒測試優(yōu)點1. 迫使測試人員去仔細(xì)思考軟件的實現(xiàn)2. 可以檢測代碼中的每條分支和路徑3. 揭示隱藏在代
5、碼中的錯誤4. 對代碼的測試比較徹底5. 最優(yōu)化白盒測試缺點1. 昂貴2. 無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤3. 不驗證規(guī)格的正確性白盒測試局限但即使每條路徑都測試了仍然可能有錯誤??赡艹霈F(xiàn)的情況如下:窮舉路徑測試決不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤的程 序。窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。白盒測試工具挑選白盒測試白盒測試主要用在具有高可靠性要求的軟件領(lǐng)域,例如:軍工軟件、航天航 空軟件、工業(yè)控制軟件等等。白盒測試工具在選購時應(yīng)當(dāng)主要是對開發(fā)語言的支 持、代碼覆蓋的深度、嵌入式軟件的測試和測試的可視化等。白盒測試語
6、言支持白盒測試工具是對源代碼進(jìn)行的測試,測試的主要內(nèi)容包括詞法分析與語法 分析、靜態(tài)錯誤分析、動態(tài)檢測等。但是對于不同的開發(fā)語言,測試工具實現(xiàn)的 方式和內(nèi)容差別是較大的。測試工具主要支持的開發(fā)語言包括:標(biāo)準(zhǔn)C、C+、Visual C+、Java 和 Visual J+ 等。白盒測試覆蓋深度從覆蓋源程序語句的詳盡程度分析,邏輯覆蓋標(biāo)準(zhǔn)包括以下不同的覆蓋標(biāo) 準(zhǔn):語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正判 定條件覆蓋。1. 語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應(yīng)該執(zhí)行一次。 因此語句覆蓋(Statement Coverage )的含義是:選擇足夠多的測試數(shù)據(jù),
7、使 被測程序中每條語句至少執(zhí)行一次。語句覆蓋是很弱的邏輯覆蓋。2. 判定覆蓋比語句覆蓋稍強(qiáng)的覆蓋標(biāo)準(zhǔn)是判定覆蓋(Decision Coverage )。判定覆蓋的含義是:設(shè)計足夠的測試用例,使得程序中的每個判定至少都獲得一 次真值”或假值”或者說使得程序中的每一個取 真”分支和取 假”分支至少經(jīng)歷 次,因此判定覆蓋又稱為分支覆蓋。3. 條件覆蓋在設(shè)計程序中,一個判定語句是由多個條件組合而成的復(fù)合判定。為了更徹底地實現(xiàn)邏輯覆蓋,可以采用條件覆蓋( Condition Coverage )的 標(biāo)準(zhǔn)。條件覆蓋的含義是:構(gòu)造一組測試用例,使得每一判定語句中每個邏輯條 件的可能值至少滿足一次。4多條件覆
8、蓋。多條件覆蓋也稱條件組合覆蓋,它的含義是:設(shè)計足夠的測 試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。5. 修正條件判定覆蓋。修正條件判定覆蓋是由歐美的航空/航天制造廠商和使用單位聯(lián)合制定的航空運輸和裝備系統(tǒng)軟件認(rèn)證標(biāo)準(zhǔn)”,在國外的國防、航空 航天領(lǐng)域應(yīng)用廣泛。這個覆蓋度量需要足夠的測試用例來確定各個條件能夠影響 到包含的判定的結(jié)果。它要求滿足兩個條件:首先,每一個程序模塊的入口和出 口點都要考慮至少要被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn) 換一次;其次,程序的判定被分解為通過邏輯操作符(a
9、nd、or)連接的布爾條 件,每個條件對于判定的結(jié)果值是獨立的。不同的測試工具對于代碼的覆蓋能力也是不同的,通常能夠支持修正條件判 定覆蓋的測試工具價格是極其昂貴的。白盒測試嵌入式測試對于嵌入式軟件的測試,我們還需要一方面進(jìn)一步考慮測試工具對于嵌入式 操作系統(tǒng)的支持能力,例如 DOS、Vxworks、Neculeus、Linux和 Windows CE 等;另一方面還需要考慮測試工具對于硬件平臺的支持能力,包括是否支持所有64/32/16位CPU和MCU,是否可以支持 PCI/VME/CPCI總線。白盒測試可視化白盒測試是工作量巨大并且枯燥的工作,可視化的設(shè)計對于測試來說是十分 重要的。在選購
10、白盒測試工具時,應(yīng)當(dāng)考慮該款測試工具的可視化是否良好,例如:測試過程中是否可以顯示覆蓋率的函數(shù)分布圖和上升趨勢圖,是否使用不同的顏色區(qū)分已執(zhí)行和未執(zhí)行的代碼段顯示分配內(nèi)存情況實時圖表等,這些對于測試效率和測試質(zhì)量的提高是具有很大的作用的。白盒測試測試方法白盒測試的測試方法中運用最為廣泛的是基本路徑測試法?;韭窂綔y試法是在程序控制流圖的基礎(chǔ)上, 通過分析控制構(gòu)造的環(huán)路復(fù)雜 性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí) 行路徑集合,從而設(shè)計測試用例。包括以下
11、4個步驟和一個工具方法:1. 程序的控制流圖:描述程序控制流的一種圖示方法。2. 程序圈復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基 本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所 必須的測試用例數(shù)目的上界。3. 導(dǎo)出測試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計用例數(shù)據(jù)輸入和預(yù)期結(jié)果。4. 準(zhǔn)備測試用例:確?;韭窂郊械拿恳粭l路徑的執(zhí)行。白盒測試工具方法1. 圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現(xiàn) 自動地確定一個基本路徑集。2. 程序的控制流圖:描述程序控制流的一種圖示方法。3. 圓圈稱為控制流圖的一個結(jié)點,表示一個或多個無分支的語
12、句或源程序語句。流圖只有二種圖形符號:1. 圖中的每一個圓稱為流圖的結(jié)點,代表一條或多條語句。2. 流圖中的箭頭稱為邊或連接,代表控制流,任何過程設(shè)計都要被翻譯成控 制流圖。在將程序流程圖簡化成控制流圖時,應(yīng)注意:1. 在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點。2. 邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為 一個區(qū)域。白盒測試步驟基本路徑測試法的步驟:第一步:畫出控制流圖流程圖用來描述程序控制結(jié)構(gòu)??蓪⒘鞒虉D映射到一個相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復(fù)合條件)。在流圖中,每一個圓,稱為流圖的結(jié)點, 代表一個或多個語句。一個處理方框序列和一個菱形決測框
13、可被映射為一個結(jié) 點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條 邊必須終止于一個結(jié)點,即使該結(jié)點并不代表任何語句(例如:if-else-then結(jié)構(gòu))。 由邊和結(jié)點限定的范圍稱為區(qū)域。計算區(qū)域時應(yīng)包括圖外部的范圍。第二步:計算圈復(fù)雜度圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上 界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計算圈復(fù)雜度:流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復(fù)雜性;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量, N是流圖中
14、結(jié)點的數(shù)量;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點 的數(shù)量。第三步:導(dǎo)出測試用例根據(jù)上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判 斷的程序通路。V(G)值正好等于該程序的獨立路徑的條數(shù)。)路徑1 : 4-14路徑 2: 4-6-7-14路徑 3: 4-6-8-10-13-4-14路徑 4: 4-6-8-11-13-4-14根據(jù)上面的獨立路徑,去設(shè)計輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。白盒測試相關(guān)區(qū)別編輯白盒測試黑盒測試概述黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,
15、 通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打 開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因一果圖、錯誤推測等,主要用于軟件確認(rèn)測試。黑盒”法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進(jìn)行測試。黑盒 法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用, 才能以這種方法查出程序中所有的 錯誤。實際上測試情況有無窮多個,人
16、們不僅要測試所有合法的輸入,而且還要 對那些不合法但是可能的輸入進(jìn)行測試。白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試, 它是知道產(chǎn)品內(nèi)部工作過程,可通 過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行, 按照程序內(nèi)部 的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作, 而不 顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。白盒”法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。白盒”法是窮舉路徑測試。軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢 查:1. 對程序模塊的所有獨立的執(zhí)行路徑至少測試一次;2. 對所有的邏輯判定,取 “真”與取“假”
17、的兩種情況都至少測試一次;3. 在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;4. 測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。具體包含的邏輯覆蓋有:-語句覆蓋-判定覆蓋-條件覆蓋-判定-條件覆蓋-條件組合覆蓋-各徑覆蓋。白盒測試區(qū)別白盒測試技術(shù)(White Box Test in g):深入到代碼一級的測試,使用這種 技術(shù)發(fā)現(xiàn)問題最早,效果也是最好的。該技術(shù)主要的特征是測試對象進(jìn)入了代碼內(nèi)部,根據(jù)開發(fā)人員對代碼和對程序的熟悉程度,對有需要的部分進(jìn)行在軟件編碼階段,開發(fā)人員根據(jù)自己對代碼的理解和接觸所進(jìn)行的軟件測試叫做白盒測 試。這一階段測試以軟件開發(fā)人員為主,在JAVA平臺使用Xunit系列工具進(jìn)行測試,Xu ni
18、t測試工具是類一級的測試工具對每一個類和該類的方法進(jìn)行測 試。黑盒測試技術(shù)(Black Box Testi ng ):黑盒測試的內(nèi)容主要有以下幾個方 面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結(jié)合兼容,性能測試 等方面進(jìn)行,根據(jù)軟件需求,設(shè)計文檔,模擬客戶場景隨系統(tǒng)進(jìn)行實際的測試, 這種測試技術(shù)是使用最多的測試技術(shù)涵蓋了測試的方方面面,可以考慮以下方 面:1. 正確性(Correctness):計算結(jié)果,命名等方面。2. 可用性(Usability):是否可以滿足軟件的需求說明。3. 邊界條件(Boundary Condition):輸入部分的邊界值,就是使用一般書 中說的等價類劃分
19、,試試最大最小和非法數(shù)據(jù)等等。4. 性能(Peformanee):正常使用的時間內(nèi)系統(tǒng)完成一個任務(wù)需要的時間,多人同時使用的時候響應(yīng)時間在可以接受范圍內(nèi)。J2EE技術(shù)實現(xiàn)的系統(tǒng)在性能方面更是需要照顧的,一般原則是3秒以下接受,3-5秒可以接受,5 秒以上就影響易用性了。如果在測試過程中發(fā)現(xiàn)性能問題,修復(fù)起來是非常艱難 的,因為這常常意味著程序的算法不好,結(jié)構(gòu)不好,或者設(shè)計有問題。因此在產(chǎn) 品開發(fā)的開始階段,就要考慮到軟件的性能問題5. 壓力測試(Stress):多用戶情況可以考慮使用壓力測試工具,建議將壓力和性能測試結(jié)合起來進(jìn)行。如果有負(fù)載平衡的話還要在服務(wù)器端打開監(jiān)測工 具,查看服務(wù)器CPU使用率,內(nèi)存占用情況,如果有必要可以模擬大量數(shù)據(jù) 輸入,對硬盤的影響等等信息。如果有必要的話必須進(jìn)行性能優(yōu)化(軟硬件都可以)。這里的壓力測試針對的是某幾項功能。6. 錯誤恢復(fù)(Error Recovery):錯誤處理,頁面數(shù)據(jù)驗證,包括突然間斷 電,輸入臟數(shù)據(jù)等。7. 安全性測試(Security):這個領(lǐng)域正在研究中,防火墻、補(bǔ)丁包、殺毒軟件等的就不必說了,不過可以考
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招標(biāo)文件中的運輸說明
- 增長的算法-空手
- 2024年九年級化學(xué)上冊 第二單元 課題1 空氣教案 (新版)新人教版
- 2024-2025學(xué)年高中數(shù)學(xué) 第一章 預(yù)備知識 4 一元二次函數(shù)與一元二次不等式 1.4.3 一元二次不等式的應(yīng)用教案 北師大版必修第一冊
- 2023六年級英語下冊 Unit 8 What′s Your Dream第4課時教案 陜旅版(三起)
- 2024-2025學(xué)年新教材高中歷史 第一單元 古代文明的產(chǎn)生與發(fā)展 第1課 文明的產(chǎn)生與早期發(fā)展教學(xué)教案 新人教版必修《中外歷史綱要(下)》
- 八年級物理上冊 4.2《探究汽化和液化的特點》教學(xué)設(shè)計 (新版)粵教滬版
- 2024-2025學(xué)年高中歷史下學(xué)期第1周 新中國初期的外交教學(xué)設(shè)計
- 易制爆化學(xué)品庫管員職責(zé)
- 鉆井糾斜技術(shù)服務(wù)合同(2篇)
- 樂理試題(音程-三和弦)
- 三資系統(tǒng)操作手冊
- 綿陽市物業(yè)服務(wù)收費管理實施細(xì)則
- 危險化學(xué)品事故應(yīng)急處置流程圖
- 微信公眾賬號授權(quán)書
- 鈑金折彎K因子計算
- 生石灰(氧化鈣)MSDS
- 中高層管理干部能力提升(劉學(xué)元)ppt課件
- 公司兼職銷售人員管理制度.docx
- 夾套管施工方案最終
- 初中音樂-對花-課件-(2)PPT課件
評論
0/150
提交評論