




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第七章第七章 軟件測試軟件測試2目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術軟件測試方法和技術o軟件測試步驟軟件測試步驟3有關軟件測試的錯誤觀點有關軟件測試的錯誤觀點o“軟件測試是為了證明程序是正確的,軟件測試是為了證明程序是正確的,即測試能發現程序中所有的錯誤即測試能發現程序中所有的錯誤”。|事實上這是不可能的。事實上這是不可能的。|要通過測試發現程序中的所有錯誤,要通過測試發現程序中的所有錯誤,就要窮舉所有可能的輸入數據。就要窮舉所有可能的輸入數據。4o例如:對于一個輸入三個例如:對于一個輸入三個16位字長位字長的整型數據的程序,輸入數據的所有的整型數據的程序,輸入數據的
2、所有組合情況有組合情況有248 ,如果測試一個數據,如果測試一個數據需需1ms,則即使一年,則即使一年365天一天天一天24小時不停地測試,也需要約小時不停地測試,也需要約1萬年。萬年。5o例如:一個小程序的流程圖,它包括例如:一個小程序的流程圖,它包括了一個執行了一個執行20次的循環,其循環體次的循環,其循環體有五個分支。這個循環的不同執行路有五個分支。這個循環的不同執行路徑數達徑數達520條,如果對每一條路徑進條,如果對每一條路徑進行測試需要行測試需要1毫秒,那么即使一年工毫秒,那么即使一年工作作365 24小時,要想把所有路小時,要想把所有路徑測試完,大約需徑測試完,大約需3170年。年
3、。6o“軟件測試軟件測試不是不是為了證明程序是正確為了證明程序是正確的,即測試能發現程序中所有的錯的,即測試能發現程序中所有的錯誤誤”。(。()o“程序測試是為了證明程序正確地執程序測試是為了證明程序正確地執行了預期的功能行了預期的功能”。(。()7軟件測試的目的軟件測試的目的o目的是通過軟件測試以最少的時間和目的是通過軟件測試以最少的時間和人力找出軟件中潛在的各種錯誤和缺人力找出軟件中潛在的各種錯誤和缺陷陷。n測試是一個為了發現錯誤而執行程序的過程。n一個好的測試用例是指很可能找到迄 今為至尚未發現的錯誤的測試用例。n一個成功的測試是指揭示了迄今為至尚未發現的錯誤的測試。8軟件測試的概念軟件
4、測試的概念軟件測試就是利用測試工具按照測試軟件測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。案可能出現的問題進行分析和評估。執行測試用例后,需要跟蹤故障,以執行測試用例后,需要跟蹤故障,以確保開發的產品適合需求。確保開發的產品適合需求。9測試測試數據數據程序程序P比較比較結果數據預期數據相符不符追查追查缺陷缺陷10軟件質量軟件質量o軟件質量就是軟件質量就是“軟件與明確的和隱含軟件與明確的和隱
5、含的定義的需求相一致的程度的定義的需求相一致的程度”。具體。具體地說,軟件質量是軟件符合明確敘述地說,軟件質量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的功能和性能需求、文檔中明確描述的開發標準、以及所有專業開發的軟的開發標準、以及所有專業開發的軟件都應具有的隱含特征的程度。件都應具有的隱含特征的程度。11軟件測試與軟件質量的關系軟件測試與軟件質量的關系o 測試有助于提高軟件的質量,但是提高軟件測試有助于提高軟件的質量,但是提高軟件的質量不能依賴于測試。測試與質量的關系的質量不能依賴于測試。測試與質量的關系很象在考試中很象在考試中“檢查檢查”與與“成績成績”的關系。的關系。 o 學習好
6、的學生,在考試時通過認真檢查能減學習好的學生,在考試時通過認真檢查能減少因疏忽而造成的答題錯誤,從而少因疏忽而造成的答題錯誤,從而“提高提高”了考試成績(取得他本來就該得的好成績)。了考試成績(取得他本來就該得的好成績)。 而學習差的學生,他原本就不會做題目,無而學習差的學生,他原本就不會做題目,無論檢查多么細心,也很難提高成績。論檢查多么細心,也很難提高成績。 o 軟件的高質量是設計出來的,而不是靠測試軟件的高質量是設計出來的,而不是靠測試修補出來的。修補出來的。12軟件測試的原則軟件測試的原則(1)盡早地和不間斷地進行軟件測試)盡早地和不間斷地進行軟件測試(2)測試用例應由測試輸入數據和與
7、)測試用例應由測試輸入數據和與之對應的預期輸出結果兩部分組成之對應的預期輸出結果兩部分組成(3)程序員應避免檢查自己的程序)程序員應避免檢查自己的程序(4)在設計測試用例時,應當包括合)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件理的輸入條件和不合理的輸入條件13(5)充分注意測試中的群集現象。)充分注意測試中的群集現象。(6)嚴格執行測試計劃,排除測試的)嚴格執行測試計劃,排除測試的隨意性隨意性(7)應當對每一個測試結果做全面檢)應當對每一個測試結果做全面檢查查(8)妥善保管測試計劃、測試用例、)妥善保管測試計劃、測試用例、出錯統計和最終分析報告,為維護提出錯統計和最終分析報告
8、,為維護提供方便供方便14目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術軟件測試方法和技術o軟件測試步驟軟件測試步驟15軟件測試方法和技術軟件測試方法和技術測試方法和測試方法和測試技術測試技術靜態測試技術靜態測試技術動態測試技術動態測試技術16o靜態測試技術:靜態測試技術: 不運行被測程序本身,僅通過分析或不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。口等來檢查程序的正確性。17o對需求規格說明書、軟件設計說明書、對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符源程序做結構分析、流程圖分
9、析、符號執行來找錯。例如:號執行來找錯。例如:n 不匹配的參數、不適當的循環嵌套不匹配的參數、不適當的循環嵌套和分支嵌套、不允許的遞歸、未使和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑用過的變量、空指針的引用和可疑的計算等。的計算等。o靜態測試結果可用于進一步的查錯,靜態測試結果可用于進一步的查錯,并為測試用例選取提供指導。并為測試用例選取提供指導。 18o動態測試技術:動態測試技術: 通過運行被測程序,檢查運行結果與預通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率和健期結果的差異,并分析運行效率和健壯性等性能。目前,動態測試是公司壯性等性能。目前,動態測試是公
10、司測試工作的主要方式。測試工作的主要方式。 19軟件測試方法和技術軟件測試方法和技術測試方法和測試方法和測試技術測試技術靜態測試技術靜態測試技術動態測試技術動態測試技術桌前檢查桌前檢查代碼會審代碼會審步行檢查步行檢查20o 桌前檢查桌前檢查(Desk Check):程序員自己:程序員自己檢查程序效果不太理想。解決辦法:互檢查程序效果不太理想。解決辦法:互相交換程序檢查。相交換程序檢查。o 代碼會審代碼會審(Code Inspections):由一:由一組人通過閱讀、討論和爭議,對程序進組人通過閱讀、討論和爭議,對程序進行靜態分析的過程。行靜態分析的過程。o 步行檢查步行檢查(Walkthrou
11、ghs):預先準:預先準備測試數據,讓與會者充當備測試數據,讓與會者充當“計算機計算機”一檢查程序的狀態。有時比真正運行程一檢查程序的狀態。有時比真正運行程序可能發現更多的錯誤。序可能發現更多的錯誤。21軟件測試方法和技術軟件測試方法和技術測試方法和測試方法和測試技術測試技術靜態測試技術靜態測試技術動態測試技術動態測試技術桌前檢查桌前檢查代碼會審代碼會審黑盒測試黑盒測試步行檢查步行檢查白盒測試白盒測試22軟件測試方法和技術軟件測試方法和技術1. 黑盒測試黑盒測試u等價類劃分等價類劃分u邊界值分析邊界值分析u錯誤推測法錯誤推測法u因果圖因果圖u功能圖功能圖u接口測試接口測試2. 白盒測試白盒測試
12、u邏輯覆蓋邏輯覆蓋u判定結構分析判定結構分析u循環結構分析循環結構分析u基本路徑覆蓋基本路徑覆蓋23黑盒測試黑盒測試(Black-Box Test)o又稱又稱功能測試功能測試或或數據驅動測試數據驅動測試。o把把測試對象測試對象看做看做一個黑盒一個黑盒,測試人員,測試人員完全不考慮程序內部的邏輯結構和內完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求和功能規部特性,只依據程序的需求和功能規格說明,檢查程序的功能是否符合它格說明,檢查程序的功能是否符合它的功能說明。的功能說明。24需求需求&功能功能規格說明規格說明產生產生被測程序被測程序測試結果測試結果輸出輸出比較比較測試用例測試
13、用例|黑盒測試只關心輸黑盒測試只關心輸入與輸出的對應關系,入與輸出的對應關系,不關心被測程序的內不關心被測程序的內部關系。部關系。25o黑盒測試方法是在程序接口上進行測黑盒測試方法是在程序接口上進行測試,主要是為了發現以下錯誤試,主要是為了發現以下錯誤:1)1) 是否有不正確或遺漏了的功能是否有不正確或遺漏了的功能? ?2)2) 在接口上,輸入能否正確地接受在接口上,輸入能否正確地接受? ? 能否輸出正能否輸出正確的結果確的結果? ?3)3) 是否有數據結構錯誤或外部信息(例如數據文是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤件)訪問錯誤? ?4)4) 性能上是否能夠滿足要求性能上是否
14、能夠滿足要求? ?5)5) 是否有初始化或終止性錯誤是否有初始化或終止性錯誤? ?黑盒測試的方法和特點黑盒測試的方法和特點o (1)等價類劃分:等價類劃分是將輸入數據域按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其它值的測試。o (2)邊界值分析:該方法是將測試邊界情況作為重點目標,選取正好等于,剛剛大于或剛剛小于邊界值的情況,根據這些情況選擇測試用例。o (3)錯誤推測:錯誤推測法沒有確定的步驟,憑經驗進行。它的基本思想是列出程序中可能發生錯誤的情況,根據這些情況選擇測試用例。o (4)因果圖:因果圖能有效的檢測輸入條件的各種組合可能會引起的
15、錯誤。因果圖的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉換為判定表,最后為判定表的每一列設計一個測試用例。2627白盒測白盒測試(試(White-Box Test)o又稱又稱結構測試結構測試或或邏輯驅動測試。邏輯驅動測試。o把把測試對象測試對象看做一個看做一個玻璃盒子玻璃盒子,它允,它允許測試人員利用程序內部的邏輯結構許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。對程序所有邏輯路徑進行測試。28o軟件人員使用白盒測試方法,主要想軟件人員使用白盒測試方法,主要想對程序模塊進行如下的檢查:對程序模塊進行如下的檢
16、查:1)1)對程序模塊的所有獨立的執行路徑對程序模塊的所有獨立的執行路徑至少測試一次至少測試一次 路徑覆蓋測試路徑覆蓋測試;2)2)對所有的邏輯判定,取對所有的邏輯判定,取“真真”與取與取“假假”的兩種情況都至少測試一的兩種情況都至少測試一次次 邏輯覆蓋測試邏輯覆蓋測試;293)3)在循環的邊界和運行界限內執行循在循環的邊界和運行界限內執行循環體環體 控制流測試控制流測試;4)4)測試內部數據結構的有效性測試內部數據結構的有效性 數數據流測試、領域測試據流測試、領域測試等。等。30黑盒測試與白盒測試優缺點比較黑盒測試與白盒測試優缺點比較黑盒測試黑盒測試 白盒測試白盒測試 優優點點缺缺點點性性質
17、質適用于各階段測試適用于各階段測試從產品功能角度測試從產品功能角度測試容易入手生成測試數據容易入手生成測試數據可構成測試數據使特定程可構成測試數據使特定程序部分得到測試序部分得到測試有一定的充分性度量手段有一定的充分性度量手段可獲較多工具支持可獲較多工具支持某些代碼得不到測試某些代碼得不到測試如果規格說明有誤,如果規格說明有誤, 則無法發現則無法發現不易進行充分性測試不易進行充分性測試不易生成測試數據不易生成測試數據( (通常通常) )無法對未實現規格說明的部分無法對未實現規格說明的部分進行測試進行測試工作量大,通常只用于單元測工作量大,通常只用于單元測試,有應用局限試,有應用局限是一種是一種
18、確認確認技術,回答技術,回答“我們在構造一個正確我們在構造一個正確 的系統嗎的系統嗎?”是一種是一種驗證驗證技術,回答技術,回答“我們在正確地構造一個系我們在正確地構造一個系 統嗎統嗎?”31目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術軟件測試方法和技術o軟件測試步驟軟件測試步驟32軟件測試的步驟和策略軟件測試的步驟和策略o軟件開發過程是一個自頂向下、逐步軟件開發過程是一個自頂向下、逐步細化的過程,細化的過程,o測試過程則是自底向上、逐步集成的測試過程則是自底向上、逐步集成的過程。低一級測試為上一級測試準備過程。低一級測試為上一級測試準備條件,條件, 如下頁圖所示如下頁圖所示
19、33規格定義規格定義設計設計編碼編碼系統測試系統測試集成測試集成測試單元測試單元測試用戶需求用戶需求驗收測試驗收測試自頂向下逐步細化自頂向下逐步細化相反順序集成過程相反順序集成過程回回歸歸測測試試3435單元測試單元測試模塊1模塊2集成測試集成的軟件確認測試確認的軟件系統測試交付軟件已測模塊1已測模塊n設計信息軟件需求其他系統元素n36編程編程(同步同步)單元測試單元測試其他測試其他測試37o單元測試的內容:單元測試的內容:1、模塊接口測試、模塊接口測試2、檢查局部數據結構能否保持完整性、檢查局部數據結構能否保持完整性3、模塊邊界條件測試、模塊邊界條件測試4、模塊執行路徑測試、模塊執行路徑測試
20、5、檢查模塊內部錯誤處理是否有效、檢查模塊內部錯誤處理是否有效o單元測試方法:單元測試方法:|白盒測試為主,黑盒測試為輔。白盒測試為主,黑盒測試為輔。38o單元測試檢查單單元測試檢查單1、邏輯和算法:正確實現了邏輯和算法。、邏輯和算法:正確實現了邏輯和算法。2、數據結構(全局和局部):使用了全、數據結構(全局和局部):使用了全局數據結構?哪些?如果有,作了哪些關局數據結構?哪些?如果有,作了哪些關于全局數據的假設?這些假設正確嗎?使于全局數據的假設?這些假設正確嗎?使用了局部數據?在算法執行的所有步驟期用了局部數據?在算法執行的所有步驟期間,保持局部數據的完整性了嗎?間,保持局部數據的完整性了
21、嗎?393、接口:來自調用模塊的數據匹配被調、接口:來自調用模塊的數據匹配被調 用的模塊的期望接收的數據?被調用模塊用的模塊的期望接收的數據?被調用模塊的數據匹配調用的模塊提供的數據?的數據匹配調用的模塊提供的數據?4、獨立路徑:標識了所有穿過模塊的獨、獨立路徑:標識了所有穿過模塊的獨立路徑?執行了嗎?立路徑?執行了嗎?5、邊界條件:了解邊界條件嗎?進行了、邊界條件:了解邊界條件嗎?進行了測試確保該模塊在其邊界條件上的適當的測試確保該模塊在其邊界條件上的適當的操作了嗎?操作了嗎?6、出錯處理:所有出錯處理路徑均執行、出錯處理:所有出錯處理路徑均執行到了嗎?到了嗎?4041單元測試單元測試模塊1
22、模塊2集成測試集成的軟件確認測試確認的軟件系統測試交付軟件已測模塊1已測模塊n設計信息軟件需求其他系統元素n42 各單元的接口是否吻合、代碼是否符各單元的接口是否吻合、代碼是否符合規定的標準、界面標準是否統一等。合規定的標準、界面標準是否統一等。 既要求參與的人熟悉單元的內部細節,既要求參與的人熟悉單元的內部細節,又要求他們能夠從足夠高的層次上觀又要求他們能夠從足夠高的層次上觀察整個系統。一般由有經驗的測試人察整個系統。一般由有經驗的測試人員和主要的軟件開發者來完成集成測員和主要的軟件開發者來完成集成測試的計劃。試的計劃。43 集成測試計劃由系統設計人員在設計階集成測試計劃由系統設計人員在設計
23、階段制定,它是和設計規格說明同時完段制定,它是和設計規格說明同時完成的。內容有:成的。內容有:n 測試的描述和范圍測試的描述和范圍n 測試環境測試環境n 測試時間表測試時間表44n 集成次序集成次序n 測試用例以及測試的預期結果等測試用例以及測試的預期結果等4546 確認測試又稱有效性測試。它的任務是確認測試又稱有效性測試。它的任務是檢查軟件的功能與性能是否與需求規格檢查軟件的功能與性能是否與需求規格說明書中確定的指標相符合說明書中確定的指標相符合單元測試單元測試模塊1模塊2集成測試集成的軟件確認測試確認的軟件系統測試交付軟件已測模塊1已測模塊n設計信息軟件需求其他系統元素no 確認測試階段有
24、兩項工作,進行確認測試與軟件配置審查。確認測試一般是在模擬環境中運用黑盒測試方法,由專門測試人員和用戶參加的測試。軟件配置審查的任務是檢查軟件的所有文檔資料的完整性、正確性。如果發現遺漏和錯誤,應補充和改正,同時要編排好目錄,為以后的軟件維護工作奠定基礎。474849單元測試單元測試模塊1模塊2集成測試集成的軟件確認測試確認的軟件系統測試交付軟件已測模塊1已測模塊n設計信息軟件需求其他系統元素n50o為了發現缺陷并度量產品質量,按照為了發現缺陷并度量產品質量,按照系統的功能和性能需求進行的測試系統的功能和性能需求進行的測試n 一般使用黑盒測試技術一般使用黑盒測試技術n 一般由獨立的測試人員完成
25、一般由獨立的測試人員完成51o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試52功能測試53o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試
26、54o壓力測試壓力測試n 也稱強度測試。也稱強度測試。n 目的:目的:o在軟件投入使用以前或軟件負載達在軟件投入使用以前或軟件負載達到極限以前,通過執行可重復的負到極限以前,通過執行可重復的負載測試,預先分析出軟件可承受的載測試,預先分析出軟件可承受的并發用戶極限值和性能瓶頸,以幫并發用戶極限值和性能瓶頸,以幫助軟件廠商或用戶優化自己的程序。助軟件廠商或用戶優化自己的程序。55o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity te
27、st)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試56o性能測試性能測試n 對于那些實時和嵌入式系統,軟件部分即使滿足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一測試步驟都包含性能測試,但只有當系統真正集成之后,在真實環境中才能全面、可靠地測試運行性能,系統性能測試就是為了完成這一任務。57o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試58o容量
28、測試容量測試n 對軟件容量的測試,能讓用戶明白對軟件容量的測試,能讓用戶明白到底此軟件能一次性承擔多大訪問到底此軟件能一次性承擔多大訪問量。有了對軟件負載的準確預測,量。有了對軟件負載的準確預測,不僅能讓用戶對軟件在實際使用中不僅能讓用戶對軟件在實際使用中的性能狀況充滿信心,同時也可以的性能狀況充滿信心,同時也可以幫助用戶最經濟地規劃自己的網絡幫助用戶最經濟地規劃自己的網絡配置,避免無謂的硬件投入,還可配置,避免無謂的硬件投入,還可以減少網絡系統的宕機時間和因此以減少網絡系統的宕機時間和因此帶來的經濟損失。帶來的經濟損失。59o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功
29、能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試60o用戶界面的測試用戶界面的測試:n 符合標準和規范符合標準和規范n 直觀性直觀性 一致性一致性 n 靈活性靈活性 舒適性舒適性n 正確性正確性 實用性實用性61o通常意義上的系統測試包括:通常意義上的系統測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)
30、n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試62o其他還有一些關于測試的分類,例如其他還有一些關于測試的分類,例如:n 健壯性測試健壯性測試n 容災測試容災測試n 內存泄漏測試內存泄漏測試n 并發性測試并發性測試n 安全性測試安全性測試n 配套產品測試配套產品測試| 實際上,這些測試都是因為測試的目的不同,實際上,這些測試都是因為測試的目的不同,而在制定測試策略和測試設計的時候有不同而在制定測試策略和測試設計的時候有不同的側重點。的側重點。63o必做的測試:必做的測試:n 安裝測試安裝測試n 功能測試功能測試n 值域測試值域測試n 界面測試界面測試n 可用性測試可用性測試n 說明書測試
31、說明書測試n 配置測試配置測試n 加密問題測試加密問題測試n 裸機測試裸機測試o可選的測試:可選的測試:n 內存泄漏測試內存泄漏測試n 接口測試接口測試n 性能測試性能測試n 并發性測試并發性測試n 安全性測試安全性測試n 破壞性測試破壞性測試n 配套產品測試配套產品測試64656667測試級測試級目的目的執行者執行者 測試環境測試環境測試方法測試方法單元單元從單個模塊中從單個模塊中發現邏輯、數發現邏輯、數據和運算缺陷據和運算缺陷軟件工程師軟件工程師單獨的;單獨的;樁和支撐樁和支撐程序程序白盒測試白盒測試集成集成發現模塊間發現模塊間接口缺陷接口缺陷軟件工程師軟件工程師單 獨 的 和單 獨 的
32、和 /或模擬;樁或模擬;樁和支撐程序和支撐程序白盒測試白盒測試To p - d o w n , bottom-up, 或或outside-in系統系統測定軟件是測定軟件是否滿足需求否滿足需求軟件質保組軟件質保組軟件確認組軟件確認組實 際 的 環 境實 際 的 環 境(可能沒有最(可能沒有最終的硬件)終的硬件)功能測試和功能測試和ALAC68一些問題一些問題o問題問題1 1:有了:有了“黑盒黑盒”測試為什么還要測試為什么還要“白盒白盒”測試?測試?答:黑盒測試只能觀察軟件的外部表現,即使軟答:黑盒測試只能觀察軟件的外部表現,即使軟件的輸入輸出都是正確的,卻并不能說明軟件件的輸入輸出都是正確的,卻
33、并不能說明軟件就是正確的。因為程序有可能用錯誤的運算方就是正確的。因為程序有可能用錯誤的運算方式得出正確的結果,例如式得出正確的結果,例如“負負得正,錯錯得負負得正,錯錯得對對”,只有白盒測試才能發現真正的原因。,只有白盒測試才能發現真正的原因。 白盒測試能發現程序里的隱患,象內存泄漏、白盒測試能發現程序里的隱患,象內存泄漏、誤差累計問題。在這方面,黑盒測試存在嚴重誤差累計問題。在這方面,黑盒測試存在嚴重的不足。的不足。69o問題問題2 2:由于單元測試要寫測試驅動程序,:由于單元測試要寫測試驅動程序,非常麻煩,能否等到整個系統全部開發非常麻煩,能否等到整個系統全部開發完后,再集中精力進行一次性地單元測完后,再集中精力進行一次性地單元測試呢?試呢?答:如果這樣做,在開發過程中,缺陷會越答:如果這樣做,在開發過程中,缺陷會越積越多并且分布得更廣、隱藏得更深,反積越多并且分布得更廣、隱藏得更深,反而導致測試與改錯的代價大大增加。最糟而導致測試與改錯的代價大大增加。最糟糕的是無法估計測試與改錯的工作量,使糕的是無法估計測試與改錯的工作量,使進度失去控制。因此為圖眼前省事而省略進度失去控制。因此為圖眼前省事而省略單元測試或者單元測試或者“偷工減料偷工減料”,是,是“得不償得不償失失”的做法。的做法。70o問題問題3 3:如果每個單元都通過了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論