軟件工程測試工程_第1頁
軟件工程測試工程_第2頁
軟件工程測試工程_第3頁
軟件工程測試工程_第4頁
軟件工程測試工程_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程第七章測試技術測試的基本概念1靜態(tài)分析方法4小結5黑盒測試方法3白盒測試方法2本章學習目標123掌握基本的白盒測試和黑盒測試方法。了解軟件測試的目標、評估準則、軟件靜態(tài)分析的通用評審過程等及主要類型。理解軟件測試的定義、常用術語、基本原則和代碼審查。軟件測試的重要性據推測,由于軟件缺陷而引起的損失額每年高達595億美元。這一數字相當于美國國內生產總值的0.6%。軟件測試是軟件開發(fā)過程中包裝軟件質量、提高軟件可靠性的最主要的手段之一,它是在軟件產品在交付之前,對分析、設計、編碼等開發(fā)工作的最后檢查和復審。在整個軟件系統的開發(fā)過程中,軟件測試占了其中40~50%的工作量。軟件測試的定義定義1軟件測試在IEEEStandard.610.12中定義如下:在某種指定的條件下對操作系統或組件,觀察或記錄結果,對系統或組件的某些方面進行評估的過程。定義2軟件測試在IEEEStandard.829中定義如下:分析軟件各項目以檢測現有的結果和應有結果之間的差異(即軟件缺陷),并評估軟件各項目的特征的過程。其他定義其他定義如下:軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。軟件測試的對象軟件測試的對象:軟件測試不等于程序測試。軟件測試貫穿于軟件定義和開發(fā)的整個過程。軟件開發(fā)過程中所產生的需求規(guī)格說明、概要設計規(guī)格說明、詳細設計規(guī)格說明以及源程序都是軟件測試的對象。軟件測試的常用術語1.軟件缺陷至少滿足下列一個條件才稱發(fā)生了一個軟件缺陷:軟件未實現產品說明書要求的功能。軟件出現了產品說明書指明不能出現的錯誤。軟件實現了產品說明書未提到的功能。軟件未實現產品說明書雖未明確提及但應該實現的目標。軟件難以理解、不易使用、運行緩慢或者——從測試員的角度看——最終用戶會認為不好。軟件缺陷的定義定義在IEEE729-1983對缺陷有一個標準的定義:從產品內部看,缺陷是軟件產品開發(fā)或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。軟件測試的常用術語2.驗證和確認驗證(Verification):保證軟件特定開發(fā)階段的輸出已經正確完整地實現了規(guī)格說明確認(Validation):根據原始需求檢查開發(fā)結果的過程稱為確認舉例驗證:我們是否正確地完成了產品?確認:我們是否完成了正確的產品?軟件測試的常用術語3.測試與質量保證軟件測試人員的目標是盡早找出軟件缺陷,并確保缺陷得以修復軟件質量保證人員的主要職責是創(chuàng)建和執(zhí)行改進軟件開發(fā)過程并防止軟件缺陷發(fā)生的標準和方法人員職責上有交叉軟件測試的常用術語4.質量與可靠性功能性(functionality):系統所需具備的能力的所有特征。可靠性(reliability):軟件產品在具體使用中持續(xù)地提供其功能的能力??捎眯裕╱sability):軟件著眼于用戶使用方面的特性效率(efficiency):軟件為完成任務所消耗的資源和所需要的時間。可維護性(maintainability):軟件著眼于可進行指定的修改的特性。可移植性(portability):軟件著眼于可從一種使用環(huán)境遷移到另一種使用環(huán)境的特性。軟件測試的常用術語5.軟件測試與調試兩者都包含有處理軟件缺陷和查看代碼的過程二者的區(qū)別在于,測試的目標是發(fā)現軟件缺陷的存在,調試的目標是定位與修復缺陷。軟件測試的常用術語6.測試用例測試用例(testcase)是測試輸入、執(zhí)行條件以及預期結果的集合,是為特定的目的開發(fā)的,例如執(zhí)行特定的程序路徑或驗證與指定的需求相符合。軟件測試的目標(IEEE1983)確認系統滿足其預期的使用和用戶的需要。確認解決了所需解決的問題(如實現商業(yè)規(guī)則和使用合適的系統假定)。為測試的過程建立責任和可解釋性。便于及早發(fā)現軟件和系統的異常。及早提供軟件和系統的性能的評估。為管理提供真實信息,以決定在當前狀態(tài)下發(fā)布產品在商業(yè)上的風險鑒別出程序在功能等方面的異常集聚之處。注意:測試用例的設計應盡力發(fā)現系統中的錯誤,而不是“說明程序能正確地執(zhí)行它應有的功能”,也不是“表明程序沒有錯誤”。

軟件測試的基本原則窮盡測試是不可能的測試無法顯示潛伏的軟件缺陷測試活動應盡早進行軟件缺陷具有群聚性注意殺蟲劑現象應盡量由獨立的測試團隊進行測試軟件測試方法軟件測試方法動態(tài)測試靜態(tài)測試黑盒測試白盒測試在不知道程序內部結構,只知道程序規(guī)格的情況下采用的測試技術或策略。在知道程序內部結構的情況下采用的測試技術或策略。黑盒測試方法和白盒測試方法綜合的策略。不實際運行程序,而是通過檢查和閱讀等手段來發(fā)現錯誤并評估代碼質量的軟件測試技術。也稱為靜態(tài)分析技術。實際運行程序,并通過觀察程序運行的實際結果來發(fā)現錯誤的軟件測試技術。白盒測試灰盒測試

靜態(tài)測試與動態(tài)測試1.靜態(tài)測試靜態(tài)測試是采用人工檢測和計算機輔助靜態(tài)分析的手段對程序進行檢測,方法如下:人工測試:是指不依靠計算機運行程序,而靠人工審查程序或評審軟件。計算機輔助靜態(tài)分析:指利用靜態(tài)分析軟件工具對被測試程序進行特性分析,從程序中提取一些信息。2.動態(tài)測試動態(tài)測試與靜態(tài)測試相反,主要是設計一組輸入數據,然后通過運行程序來發(fā)現錯誤。軟件測試的主要方法黑盒測試黑盒測試指忽略系統或組件的內部機制,僅關注于那些響應所選擇的輸入及相應執(zhí)行條件的輸出的測試形式,也稱功能性測試。白盒測試白盒測試指考慮系統或組件的內部機制的測試形式(如分支測試、路徑測試、語句測試等),也稱結構性測試?;液袦y試測試方法兼具備黑盒測試和白盒測試的特性。軟件測試的評估準則覆蓋率故障插入變異分值覆蓋率給定一個測試需求集合TR和一個測試集合T,覆蓋率可以定義為T滿足的測試需求占TR總數的比例。100%覆蓋率在實際中是不現實的商用自動化測試工具故障插入故障插入(faultseeding)是一種統計方法,用于評價遺留在一個程序中的故障的數量和種類。具體而言,在測試前被有意地插入一些故障到程序中,在測試執(zhí)行中,有一部分插入的故障會因測試而顯露出來,但可能一些故障在測試中沒有暴露出來,仍存在于程序中。變異分值該指標和變異測試密切相關。所謂變異測試是一種特殊的測試方法,在這種測試方法中,程序進行兩個或更多個變異,然后用同樣的測試用例執(zhí)行測試,可以評估這些測試用例探測程序變異間的差異的能力。也叫玻璃盒測試、結構測試或邏輯驅動測試,對軟件的過程性細節(jié)做細致的檢查。這一方法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,來設計或選擇測試用例,對程序所有邏輯路徑進行測試。

白盒測試是在程序內部進行,主要用于完成軟件內部操作的驗證。

白盒測試關鍵技術:如何設計測試用例進行徹底的測試

白盒測試技術基于代碼的測試白盒測試局限性:是窮舉路徑測試,貫穿程序獨立路徑數是天文數字,即使每條路徑都經過了測試,仍可能有未發(fā)現錯誤。白盒測試的局限性白盒測試技術分類基于邏輯結構的測試基于控制流圖的測試邏輯覆蓋測試邏輯覆蓋是以程序內部的邏輯結構為基礎的設計

測試用例的技術。它屬白盒測試。語句覆蓋分支覆蓋條件覆蓋條件組織覆蓋問題:若AND錯寫為OR,或X>1錯寫為X<1,則錯誤無法由上例測出。入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFTestcase:A=2,B=0,X=4.abcde⑴語句覆蓋(Statementcoverage):選擇足夠多的測試數據,使被測程序中每個語句至少執(zhí)行一次。語句覆蓋⑵判定覆蓋(Branchcoverage):在⑴的基礎上,每個判定的每個分支至少執(zhí)行一次。也成分支覆蓋。Testcases:①A=3,B=0,X=3②A=2,B=1,X=1問題:若X>1錯寫為X<1,仍然無法被測出。入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFacbed判定覆蓋⑶條件覆蓋(Conditioncoverage):在⑴的基礎上,使每個判定表達式的每個條件都取到各種可能的結果。入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFdbace條件覆蓋⑶條件覆蓋(Conditioncoverage):在⑴的基礎上,使每個判定表達式的每個條件都取到各種可能的結果。入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFdbace真真真真假假假假Testcases:①A=2,B=0,X=4(滿足A>1,B=0;A=2,X>1)②A=1,B=1,X=1(滿足A1,B0;A2,X1)條件覆蓋⑶條件覆蓋(Conditioncoverage):在⑴的基礎上,使每個判定表達式的每個條件都取到各種可能的結果。Testcases:①A=2,B=0,X=4(滿足A>1,B=0;A=2,X>1)②A=1,B=1,X=1(滿足A1,B0;A2,X1)問:條件覆蓋?判定覆蓋答:不一定。反例:①A=2,B=0,X=1②A=1,B=1,X=2入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FFdbace條件覆蓋(4)條件組合覆蓋:每個判定表達式中條件的各種可能組合都至少出現一次。入口A>1ANDB=0TA=2ORX>1TX=X/AX=X+1返回FF全部可能的條件組合為:①A>1,B=0②A>1,B0③A1,B=0④A1,B0⑤A=2,X>1⑥A=2,X

1⑦A

2,X>1⑧A

2,X

1問題:沒有測試到(TF)的情形,沒有覆蓋所有的路徑。ecabd條件組合覆蓋4種覆蓋對比4種覆蓋標準的對比

發(fā)弱現錯誤能力強語句覆蓋每條語句至少執(zhí)行一次判定覆蓋每個判定的每個分支至少執(zhí)行一次條件覆蓋每個判定的每個條件應取到各種可能的值條件組合覆蓋每個判定中各條件的每一種組合至少出現一次控制流圖覆蓋測試控制流圖覆蓋測試是將代碼轉變?yōu)榭刂屏鲌D,基于其進行測試的技術。節(jié)(結)點覆蓋邊覆蓋路徑覆蓋符號○為控制流圖的一個節(jié)點,表示一個或多個無分支的

溫馨提示

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

評論

0/150

提交評論