軟件測試測試用例的設計方法PPT課件_第1頁
軟件測試測試用例的設計方法PPT課件_第2頁
軟件測試測試用例的設計方法PPT課件_第3頁
軟件測試測試用例的設計方法PPT課件_第4頁
軟件測試測試用例的設計方法PPT課件_第5頁
已閱讀5頁,還剩198頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、3.1 軟件測試用例的概述3.2 黑合測試用例的設計3.3 白合測試用例的設計第三章第三章 軟件測試用例的設計軟件測試用例的設計第1頁/共203頁3.1.1 測試用例的基本概念3.1.2 測試用例的設計原則與特性3.1.3 測試用例的編制3.1 測試用例的基本概念第2頁/共203頁 1 1、什么是測試用例、什么是測試用例u測試用例(Test Case)是為達到最佳的測試效果或高效的揭露隱藏的錯誤而精選的少量有代表性或特殊性測試數(shù)據。 軟件測試的靈魂-測試用例 例:測試Yahoo郵箱的登錄程序,假設存在一用戶為user,密碼為12345 。3.1.1 3.1.1 測試用例的概念測試用例的概念第3

2、頁/共203頁用例編號測試步驟輸入數(shù)據期望結果測試結果1輸入用戶名和密碼,點擊“登錄雅虎服務”按鈕用戶名:user密碼:12345成功登錄user的個人郵箱2輸入用戶名和密碼,點擊“登錄雅虎服務”按鈕用戶名:user密碼:123456提示“密碼錯誤,請重新輸入!”3不輸入用戶名和密碼,直接點擊“登錄雅虎服務”按鈕提示“請輸入用戶名和密碼!”.3.1.1 3.1.1 測試用例的概念測試用例的概念第4頁/共203頁工程碩士5u 測試用例包括測試環(huán)境、測試步驟、測試數(shù)據和預期結果。即測試用例=輸入+輸出+測試環(huán)境+測試步驟 輸入:測試數(shù)據和操作步驟 輸出:期望結果 測試環(huán)境:軟硬件環(huán)境配置3.1.1

3、 3.1.1 測試用例的概念測試用例的概念第5頁/共203頁 2 2、編制測試用例的重要性、編制測試用例的重要性u為什么要做測試用例,主要原因有如下幾點:完全測試是不可能的;輸入量太大;輸出結果太多;軟件實現(xiàn)路徑太多;軟件說明書沒有客觀標準,軟件缺陷的標準也不同。3.1.1 3.1.1 測試用例的概念測試用例的概念第6頁/共203頁u使用測試用例的好處: 可以避免盲目測試并提高測試效率。 使軟件測試的實施重點突出、目的明確。 在軟件版本更新后只需修正少部分的測試用例便可展開測試工作,降低工作強度、縮短項目周期。 測試用例的通用化和復用化則使軟件測試易于開展。3.1.1 3.1.1 測試用例的概

4、念測試用例的概念第7頁/共203頁u 測試用例的作用 指導測試的實施 規(guī)劃測試數(shù)據的準備 評估測試結果的度量基準 分析缺陷的標準 編寫測試腳本的設計規(guī)格說明書 3.1.1 3.1.1 測試用例的概念測試用例的概念第8頁/共203頁 1 1、測試用例的設計原則、測試用例的設計原則 保證測試用例的明確性。測試人員要盡量避免測試用例存在含糊的因素,否則會影響測試工作進行與測試結果的準確性(模棱兩可)。在測試過程中,測試用例的測試結果是唯一的,即通過、沒通過或未進行測試。如果測試沒有通過,一般會生成相應的測試錯誤報告;如果測試沒有進行,也會生成相應的原因說明報告,如測試用例本身具有錯誤性、測試用例的不

5、適用性等等。3.1.2 3.1.2 測試用例的設計原則與特性測試用例的設計原則與特性第9頁/共203頁保證測試用例的代表性。盡量將具有相似功能的測試用例抽象合并,使一個測試用例具有測試一類或一系列的系統(tǒng)需求。保證測試用例的簡潔性。冗長與復雜的測試用例是不應該出現(xiàn)的,否則可讀性差、不利于測試人員理解和操作。簡潔的測試用例可以讓測試過程目的明確,讓測試結果具有唯一性。3.1.2 3.1.2 測試用例的設計原則與特性測試用例的設計原則與特性第10頁/共203頁 2 2、測試用例的特性、測試用例的特性 有效性:測試用例是測試人員測試過程中的重要參考依據,不同的測試人員根據相同的測試用例所得到的輸出應該

6、是一致的。 可復用性:良好的測試用例具有重復使用的功能,這樣就可以大大地節(jié)約測試的時間,提高測試的效率。3.1.2 3.1.2 測試用例的設計原則與特性測試用例的設計原則與特性第11頁/共203頁 易組織性:測試用例可能有成千上萬個,有效地組織這些測試用例,分門別類地提供給測試人員參考和使用,才是一個好的測試計劃。 可評估性:從測試管理的角度,測試用例的通過率和軟件缺陷的數(shù)目是軟件產品質量好壞的測試標準。 可管理性:測試用例可以作為檢驗測試人員進度、工作量以及跟蹤/管理測試人員工作效率的因素。3.1.2 3.1.2 測試用例的設計原則與特性測試用例的設計原則與特性第12頁/共203頁13Goo

7、d Test case 有效性仿效性經濟性修改性測試用例是否能夠發(fā)現(xiàn)缺陷或者至少可能發(fā)現(xiàn)缺陷。測試用例的代表程度,可測試多項內容,因而減少測試用例數(shù)量。實現(xiàn)、調試和運行測試用例的成本修改和維護測試用例的難易程度3 3、測試用例的度量標準、測試用例的度量標準3.1.2 3.1.2 測試用例的設計原則與特性測試用例的設計原則與特性第13頁/共203頁 1 1、測試用例編制的依據、測試用例編制的依據u 需求說明以及相關文檔;u 設計說明及相關文檔(概要設計,詳細設計等);u 與開發(fā)組交流的記錄(可以是開發(fā)人員的一個解釋);u 基本成型的UI;u 編寫測試用例的文檔模板和符合內部的規(guī)范要求。測試用例有

8、相關的編制標準,如ANSI/IEEE829-1983標準中列出的關于軟件測試用例的相關編制規(guī)范和模板。3.1.3 3.1.3 測試用例的編制測試用例的編制第14頁/共203頁 2 2、測試用例的編制過程、測試用例的編制過程u 分析軟件程序的工作流程。 目的是了解用戶與系統(tǒng)交互時的操作和步驟,以確定與描述測試軟件所需的測試用例。3.1.3 3.1.3 測試用例的編制測試用例的編制第15頁/共203頁u 確定并制定測試用例 目的是為每項測試需求編寫適當?shù)臏y試用例。 軟件測試用例主要根據測試用例編寫要素,結合相應的軟件需求文檔,在掌握一定測試用例設計方法的基礎上,設計出比較全面、合理的測試用例,并生

9、成規(guī)范的測試用例表。 如果測試過以前的版本,則測試用例已經存在,應復審這些測試用例。3.1.3 3.1.3 測試用例的編制測試用例的編制第16頁/共203頁u確定測試用例數(shù)據 根據測試用例表的內容,確定支持這些測試用例的實際值。測試用例數(shù)據一般包括: 用作輸入的數(shù)據值 用作預期結果的數(shù)據值 用作支持測試用例所需的數(shù)據 u測試用例的修改更新 測試用例在形成文檔后還需要不斷完善,緣故在于: 在測試過程中發(fā)現(xiàn)設計測試用例時考慮不周; 在軟件交付使用后反饋的軟件缺陷,而缺陷又是因測試用例存在漏洞造成; 軟件自身的新增功能以及軟件版本的更新,測試用例也必須配套修改更新。 3.1.3 3.1.3 測試用例

10、的編制測試用例的編制第17頁/共203頁 3 3、測試用例的管理、測試用例的管理 測試管理軟件的主要功能有三個:記錄測試用例文檔的關鍵內容、 可供測試實施時及時輸入測試情況、實現(xiàn)自動生成測試結果文檔。 3.1.3 3.1.3 測試用例的編制測試用例的編制第18頁/共203頁 4 4、測試用例的文檔、測試用例的文檔u 測試用例文檔由簡介和測試用例兩部分組成。u 測試用例的文檔模板。用于描述輸入、動作、時間和一個期望結果。u 測試用例的基本要素。包括測試用例編號、測試標題、測試模塊、用例級別、測試環(huán)境、測試輸入、執(zhí)行操作、預期結果。不同的公司會有不同的測試用例模板。3.1.3 3.1.3 測試用例

11、的編制測試用例的編制第19頁/共203頁 用例編號:每個測試用例都有唯一的標識號,用以區(qū)別其他測試用例。測試用例的編號有一定的規(guī)則:項目名稱測試階段類型(系統(tǒng)測試階段)編號,如PROJECT1-ST-001,定義測試用例編號,是為了便于查找與跟蹤測試用例。 測試標題:測試用例標題應清楚表達測試用例的用途,如“測試用戶登錄時輸入錯誤密碼時,軟件的響應情況 ” 。 測試模塊:指明并簡單描述測試用例是用來測試哪些項目、子項目或軟件特性的。3.1.3 3.1.3 測試用例的編制測試用例的編制第20頁/共203頁 用例級別:測試用例的優(yōu)先級別,可以粗略地分為 “高”和“低”兩個級別,也可以分為“高”、“

12、中”、“低”三個級別。一般來說,軟件需求的優(yōu)先級和測試用例的優(yōu)先級一致,即如果軟件需求的優(yōu)先級為“高”,該需求的測試用例的優(yōu)先級也為“高”;反之亦然。 測試環(huán)境:執(zhí)行測試用例所需的硬軟件環(huán)境。在整個測試模塊中需要對應說明整個測試的特殊環(huán)境要求,在單個測試用例的測試環(huán)境需要表述該測試用例所單獨需要的特殊環(huán)境要求。3.1.3 3.1.3 測試用例的編制測試用例的編制第21頁/共203頁 測試輸入:用來執(zhí)行測試用例的輸入要求。輸入可以是數(shù)據、文件或具體操作。根據需求中的輸入條件,確定測試用例的輸入,測試用例的輸入對軟件需求當中的輸入有很大的依賴性,如果軟件需求中沒有很好的定義需求的輸入,那么測試用例

13、設計中會遇到很大的障礙。 執(zhí)行操作:執(zhí)行測試用例所需的每一步操作。對于復雜的測試用例,測試用例的輸入需要分為幾個步驟完成,這部分內容在操作步驟中詳細列出。3.1.3 3.1.3 測試用例的編制測試用例的編制第22頁/共203頁 預期結果:描述被測項目或特性所希望或要求達到的輸出或指標。一般來說,預期結果主要根據軟件需求中的輸出得出,如果在實際測試過程中,得到的實際測試結果與預期結果不符,那么測試不通過;反之則測試通過。3.1.3 3.1.3 測試用例的編制測試用例的編制第23頁/共203頁軟 件 測 試 用 例元 素含 義給出定義的測試角色用例編號被標識過的測試需求測試標題測試用例的描述測試模

14、塊指明測試的具體對象用例級別指明測試用例的優(yōu)先級別測試需求分析測試環(huán)境進入測試實施步驟所需的資源及其狀態(tài)。測試輸入運行本測試所需的代碼和數(shù)據,包括測試模擬程序和測試模擬數(shù)據測試設計(描述性定義)執(zhí)行操作建立測試運行環(huán)境、運行被測對象、獲取測試結果的步驟序列預期結果用于比較測試結果的基準測試實現(xiàn)(計算機表示)評價標準根據測試結果與預期結果的偏差,判斷被測對象質量狀態(tài)的依據測試用例的基本要素3.1.3 3.1.3 測試用例的編制測試用例的編制第24頁/共203頁工程碩士25測試用例的內容(示例)測試用例的內容(示例)1 用例編號10用例類別2 用例名稱11用例狀態(tài)3 測試目的12用例設計人4 輸入

15、數(shù)據13創(chuàng)建時間5 測試步驟14用例評審人6 測試腳本15評審時間7 預期結果16評審結果8 響應時間17執(zhí)行結果9 實際輸出18相關模塊3.1.3 3.1.3 測試用例的編制測試用例的編制第25頁/共203頁工程碩士26測試用例模板(示例)測試用例模板(示例)項目名稱程序版本測試環(huán)境硬件環(huán)境軟件環(huán)境網絡環(huán)境編制人編制時間功能模塊用戶登錄功能特性測試目的預置條件用例編號測試步驟輸入數(shù)據預期結果測試結果DL0013.1.3 3.1.3 測試用例的編制測試用例的編制第26頁/共203頁 測試用例是測試工作的核心,應該盡量設計的周密細致,這樣才能更好的保證測試工作的質量。以一個實現(xiàn)登錄功能的小程序為

16、例,它允許用戶選擇城市和地區(qū),輸入自己的賬號和密碼。如圖1-9所示,通過Alt-F4組合鍵和“Exit”按鈕來終止程序,Tab鍵在區(qū)域中間移動。第27頁/共203頁操操 作作 員員 登登 錄錄 選 擇 城 市 選 擇 地 區(qū) 城 市地 區(qū)操 作 員密 碼提 交退 出登錄窗口 根據組成頁面的具體元素,做了比較全面的測試用例。第28頁/共203頁(1)下拉框和輸入框測試用例測試內容測試內容輸入操作輸入操作預期輸出預期輸出實際結果實際結果下拉框下拉框未和后臺數(shù)據庫綁定未和后臺數(shù)據庫綁定(顯示列表元素固定)(顯示列表元素固定)不允許列表中出不允許列表中出現(xiàn)現(xiàn)NULL現(xiàn)象,現(xiàn)象,固定固定“請選擇請選擇-

17、”已和后臺數(shù)據庫綁定已和后臺數(shù)據庫綁定(顯示列表元素活動)(顯示列表元素活動)不允許列表中出不允許列表中出現(xiàn)現(xiàn)NULL現(xiàn)象,現(xiàn)象,固定固定“請選擇請選擇-”輸輸入入框框限定字符型限定字符型輸入輸入12、6無無#,*等等錯誤提示錯誤提示限定型數(shù)字限定型數(shù)字輸入輸入測試數(shù)據測試數(shù)據無無12月、月、7*、0錯誤提示錯誤提示第29頁/共203頁(2)功能測試用例用 例應產生行為結果失敗原因1.基本功能測試1.1在輸入框內輸入資料并且執(zhí)行存儲程序必須能夠接受使用者的輸入并且將輸入值存在登錄文件內1.2在輸入框內不輸入資料但執(zhí)行儲存程序必須能夠檢查使用者輸入是否為空白,同時必須能夠告知使用者原因1.3檢查

18、city字段儲存結果City字段輸入 后存入cookies1.4檢查area字段儲存結果Area字段輸入 后存入cookies儲存結果1.5檢查ID 字段儲存結果ID字段輸入 后存入cookies2.使用接口功能測試2.1檢查輸入字段的輸入值必須組織使用者輸入空白,同時部分字段只能輸入數(shù)字第30頁/共203頁(3)各種錯誤數(shù)據的測試測試內容測試內容輸入操作輸入操作預選測試數(shù)據預選測試數(shù)據預期輸出預期輸出實際結果實際結果點擊登錄點擊登錄按鈕按鈕不完整的數(shù)據不完整的數(shù)據CityCity,areaarea,IDID,pswdpswd略略提示錯誤對話提示錯誤對話框框不正確的數(shù)據不正確的數(shù)據CityCi

19、ty,areaarea,IDID,pswdpswd略略提示錯誤對話提示錯誤對話框框回車操作回車操作不完整的數(shù)據不完整的數(shù)據CityCity,areaarea,IDID,pswdpswd略略提示錯誤對話提示錯誤對話框框點擊點擊“退退出出”按鈕按鈕無無無無無無關閉當前應用關閉當前應用系統(tǒng)系統(tǒng)第31頁/共203頁(4)特殊測試測試內容測試內容輸入操作輸入操作預選測試數(shù)預選測試數(shù)據據預期輸出預期輸出操作焦點逃操作焦點逃逸逸連續(xù)連續(xù)TabTab切換,察看異常切換,察看異常無無焦點可準確回歸焦點可準確回歸當前操作窗口當前操作窗口分配內存不分配內存不足足啟動多個應用程序或模擬啟動多個應用程序或模擬多個程序運

20、行多個程序運行無無是否可以正常運是否可以正常運行行網絡斷線網絡斷線切斷網絡連接切斷網絡連接無無是否可正常拋出是否可正常拋出異常異常第32頁/共203頁3.2.1 3.2.1 等價類測試用例設計法3.2.2 3.2.2 邊界分析測試用例設計法3.2.3 3.2.3 決策表測試用例設計法3.2.4 3.2.4 因果圖測試用例設計法3.2.5 3.2.5 錯誤猜測測試用例設計法3.2.6 3.2.6 業(yè)務流程圖測試用例設計法3.2.7 3.2.7 黑盒測試用例設計方法的應用3.2 黑合測試用例的設計第33頁/共203頁 常用的黑盒測試用例設計方法主要有以下幾種: 邊界值分析 等價類 決策表 因果圖法

21、 錯誤猜測法 流程圖法 3.2 3.2 黑合測試用例的設計黑合測試用例的設計第34頁/共203頁 1 1、等價類測試用例設計的基本思想、等價類測試用例設計的基本思想 等價類測試法是將不能窮舉的測試過程進行合理分類,從而保證設計出來的測試用例具有完整性和代表性。等價類測試法是把所有可能的輸入數(shù)據(即程序的輸入域)劃分成若干子集(等價類),從每一個子集中選取少數(shù)具有代表性的數(shù)據作為測試用例。每個子集中的輸入具有相同揭示程序問題的能力,進而達到盡可能完備同時又可避免冗余的測試。 在分析需求規(guī)格說明書的基礎上劃分等價類,是等價類測試用例設計的前提。 3.2.1 3.2.1 等價類測試用例設計法等價類測

22、試用例設計法第35頁/共203頁 所謂等價類是指輸入域的某個子集,所有等價類的并集就是整個輸入域。在等價類中,各個輸入數(shù)據對于揭露程序中的錯誤都是等效的,具有等價特性。因此,測試等價類中的代表值等價于對該類中其它值的測試,即如果某等價類中的一個用例發(fā)現(xiàn)了錯誤,該等價類中的其它用例也能發(fā)現(xiàn)同樣的錯誤;反之,如果等價類中的一個用例沒有發(fā)現(xiàn)錯誤,該等價類中的其它用例也不會查出錯誤。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第36頁/共203頁 2 2、有效等價類與無效等價類、有效等價類與無效等價類 軟件不能只接收合理有效的數(shù)據,還應具有處理異常數(shù)據的功能,才能確保軟件具有更高的

23、可靠性。因此,在劃分等價類的過程中,不但要考慮有效等價類劃分,同時也要考慮無效等價類劃分。 有效等價類是指對需求規(guī)格說明書來說,合理、有意義的輸入數(shù)據所構成的集合。利用有效等價類可以檢驗程序是否滿足規(guī)格說明所規(guī)定的功能和性能。 無效等價類則和有效等價類相反,對需求規(guī)格說明書是無意義的、不合理的輸入數(shù)據所構成的集合,即不滿足程序輸入要求或者無效的輸入數(shù)據所構成的集合。利用無效等價類可以檢驗程序異常情況的處理。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第37頁/共203頁38 3 3、等價類劃分的原則等價類劃分的原則 如果輸入條件規(guī)定了一個取值范圍,就應確定一個有效如果輸入條

24、件規(guī)定了一個取值范圍,就應確定一個有效等價類和兩個無效等價類;等價類和兩個無效等價類; 如果輸入條件規(guī)定了取值的個數(shù),就應確定一個有效等如果輸入條件規(guī)定了取值的個數(shù),就應確定一個有效等價類和兩個無效等價類;價類和兩個無效等價類; 如果輸入條件是一個布爾表達式的條件,可以確定一個如果輸入條件是一個布爾表達式的條件,可以確定一個有效等價類和一個無效等價類有效等價類和一個無效等價類 如果輸入條件規(guī)定了一個輸入值的集合,而且程序會對如果輸入條件規(guī)定了一個輸入值的集合,而且程序會對每個值進行不同處理,就應為每個輸入值確定一個有效每個值進行不同處理,就應為每個輸入值確定一個有效等價類和一個無效等價類;等價

25、類和一個無效等價類; 如果輸入條件規(guī)定了如果輸入條件規(guī)定了“必須是必須是”的情況,就應確定一個的情況,就應確定一個有效等價類和若干無效等價類;有效等價類和若干無效等價類; 如果程序未等同地處理等價類中的元素,應將這個等價如果程序未等同地處理等價類中的元素,應將這個等價類再劃分為小一些的等價類。類再劃分為小一些的等價類。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第38頁/共203頁39 4 4、等價類測試用例設計的步驟、等價類測試用例設計的步驟劃分等價類;為每一個有效等價類和無效等價類規(guī)定一個唯一的編號;設計一個測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復這一步直

26、到所有有效等價類均被測試用例所覆蓋;設計一個測試用例,使其只覆蓋一個無效等價類,重復這一步,直到所有無效等價類均被覆蓋。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第39頁/共203頁輸入條件有效等價類無效等價類5 5、等價類表示、等價類表示 在確立了等價類之后,建立等價類表,列出所有劃分出的等價類,如表所示。 等價類表3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第40頁/共203頁41求三角形面積求三角形面積( (僅判斷是否是三角形) )邊長非數(shù)值小數(shù)(7)整數(shù)99(6)空白(11)空格(10)數(shù)值特殊字符(9)字母(8)199a+cb(4)b+ca(

27、3)a+bc(2)不能構成三角形構成三角形(1)某程序實現(xiàn)如下功能:輸入三個整數(shù)a,b,c,輸出以a,b,c為三邊的三角形面積(1a,b,c100),結果保留2位小數(shù)。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第41頁/共203頁42用例編號所屬等價類輸入數(shù)據預期結果11(有效等價類)A=10,B=10,C=1043.6021(有效等價類)A=99,B=99,C=994364.9932(無效等價類)A=1,B=2,C=4提示“不能構成三角形”43(無效等價類)A=4,B=1,C=2提示“不能構成三角形”54(無效等價類)A=1,B=4,C=2提示“不能構成三角形”65(無

28、效等價類)A=0,B=0,C=0提示“請輸入199之間的整數(shù)”76(無效等價類)A=100,B=100,C=100 提示“請輸入199之間的整數(shù)”87(無效等價類)A=ABCD,B=ABCD,C=ABCD 提示“請輸入199之間的整數(shù)”3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第42頁/共203頁 6 6、常見等價類劃分形式、常見等價類劃分形式 針對是否對無效數(shù)據進行測試,可以將等價類分為標準等價類、健壯等價類和對等區(qū)間等價類。 (1) (1) 標準(簡單)等價類 標準等價類不考慮無效數(shù)據,測試用例使用每個等價類中的一個值。通常,標準等價類測試用例的數(shù)量和最大等價類中元素

29、的數(shù)目相等。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第43頁/共203頁 NextDate NextDate 函數(shù)包含三個變量:monthmonth(月份)、dayday(日期)和 yearyear(年),函數(shù)的輸出為輸入日期后一天的日期。 例如,輸入為20072007年9 9月9 9日,則函數(shù)的輸出為20072007年9 9月1010日 。要求輸入變量 monthmonth、dayday和yearyear均為整數(shù)值,并且滿足下列條件: (1 1)1month121month12 (2 2)1day311day31 (3 3)1912year20501912year20

30、50 3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第44頁/共203頁 NextDateNextDate函數(shù)的標準等價類有三個有效等價類: M1 M1monthmonth:1month121month12 D1 D1dayday:1day311day31 Y1 Y1yearyear:1912year20501912year20503.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法測試用例輸入期望輸出monthdayyearTest Case 19920072007年9月10日第45頁/共203頁 (2 2)健壯等價類)健壯等價類 NextDateNextDat

31、e函數(shù)的主要特點是輸入變量之間的邏輯關系比較復雜,原因有兩個:函數(shù)的主要特點是輸入變量之間的邏輯關系比較復雜,原因有兩個:一個是輸入域的復雜性,另一個是閏年的規(guī)則。例如變量一個是輸入域的復雜性,另一個是閏年的規(guī)則。例如變量yearyear和變量和變量monthmonth取不同取不同的值,對應的變量的值,對應的變量dayday會有不同的取值范圍,會有不同的取值范圍,dayday值的范圍可能是值的范圍可能是1 13030或或1 13131,也可能是也可能是1 12828或或1 12929。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第46頁/共203頁 (2 2)健壯等價類)健

32、壯等價類 健壯等價類應考慮健壯等價類應考慮無效等價類,若三個輸入中有一個條件無效等價類,若三個輸入中有一個條件無效,那么無效,那么NextDate NextDate 函數(shù)都應產生一個輸出,來指明相函數(shù)都應產生一個輸出,來指明相應的變量超出取值范圍,例如應的變量超出取值范圍,例如monthmonth的值不在的值不在 1 112 12 范范圍當中。顯然還存在著大量的圍當中。顯然還存在著大量的yearyear、monthmonth、dayday的無效的無效組合,組合,NextDate NextDate 函數(shù)將這些組合統(tǒng)一輸出為:函數(shù)將這些組合統(tǒng)一輸出為:“無效輸無效輸入日期入日期”。 M2 M2mo

33、nthmonth:month1month12month12 D2 D2dayday:day1day31day31 Y2 Y2yearyear:year1912year2050year20503.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第47頁/共203頁 (2 2)健壯健壯等價類等價類 在標準等價類中,既沒有考慮在標準等價類中,既沒有考慮2 2月份的天數(shù)問題,也沒有考慮月份的天數(shù)問題,也沒有考慮閏年的問題,月份只包含了閏年的問題,月份只包含了3030天和天和3131天兩種情況。在天兩種情況。在健壯健壯等價類劃分等價類劃分中,考慮中,考慮2 2月份天數(shù)。關于每個月份的天數(shù),可

34、以詳細劃分為以下等月份天數(shù)。關于每個月份的天數(shù),可以詳細劃分為以下等價類:價類: M1 M1monthmonth:monthmonth有有3030天天 M2 M2monthmonth:monthmonth有有3131天天 M3 M3monthmonth:monthmonth是是2 2月月 D1 D1dayday:1day271day27 D2 D2dayday:dayday2828 D3 D3dayday:dayday2929 D4 D4dayday:dayday3030 D5 D5dayday:dayday3131 Y1 Y1yearyear:yearyear是閏年是閏年 Y2 Y2year

35、year:yearyear不是閏年不是閏年 3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第48頁/共203頁測試用例輸入期望輸出monthdayyearTest Case 163020072007年7月1日Test Case 283120072007年9月1日Test Case 322720072007年2月28日Test Case 422820072007年3月1日Test Case 522920002000年3月1日(2000是閏年)Test Case 63192007不可能的輸入日期Test Case 72292007 不可能的輸入日期Test Case 823020

36、07 不可能的輸入日期Test Case 91592007變量month無效NextDate函數(shù)健壯等價類測試用例3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第49頁/共203頁 (3)(3)弱健壯等價類測試 弱健壯等價類主要是考慮無效等價類。對有效輸入,測試用例從每個有效等價類中取一個值;對無效輸入,一個測試用例有一個無效值,其他值均取有效值。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第50頁/共203頁NextDate函數(shù)弱健壯等價類測試用例測試用例輸入期望輸出monthdayyearTest Case 19920072007年9月10日Test

37、Case 2092007 month不在112中Test Case 31392007month不在112中Test Case 4902007day不在131中Test Case 59322007day不在131中Test Case 6991911 year不在19122050中Test Case 7992051year不在19122050中3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第51頁/共203頁 (4)(4)強健壯等價類測試 強健壯等價類則考慮更多的無效值。強健壯等價類中的無效測試用例可以包含多個無效值,即含有多個缺陷假設。因為NextDateNextDate函數(shù)有

38、三個變量,所以對應的強健壯等價類測試用例可以包含一個無效值,兩個無效值或三個無效值。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第52頁/共203頁NextDate函數(shù)強健壯等價類測試用例測試用例輸入期望輸出monthdayyearTest Case 1-192007 month不在112中Test Case 29-12007day不在131中Test Case 3991900 year不在19122050中Test Case 4-1-12007month、day無效,year有效Test Case 5-191900month、year無效,day有效Test Case 6

39、9-11900day、year無效,month有效Test Case 7-1-11900month、day、year無效3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第53頁/共203頁 (5) (5) 對等區(qū)間等價類 對等區(qū)間等價類是非常規(guī)的形式化方法,它將被測對象的輸入/ /輸出劃分成一些區(qū)間,被測軟件對一個特定區(qū)間的任何值都是等價的。測試區(qū)間的數(shù)據不只是函數(shù)/ /過程的參數(shù),也可以是程序可以訪問的全局變量、系統(tǒng)資源等,且變量或資源可以是以時間形式存在的數(shù)據,或以狀態(tài)形式存在的輸入/ /輸出序列。 對等區(qū)間等價類劃分的前提是位于單個區(qū)間的所有值對測試都是對等的,應為每個區(qū)

40、間的一個值設計一個測試用例。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第54頁/共203頁輸入區(qū)間輸出區(qū)間=0=0BError 平方根函數(shù)要求當輸入值為0 0或大于0 0時,返回輸入數(shù)的平方根;當輸入值小于0 0時,顯示“平方根錯誤”??紤]平方根函數(shù)的測試用例區(qū)間,可以劃分出兩個輸入區(qū)間和兩個輸出區(qū)間。區(qū)間劃分3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第55頁/共203頁 通過分析,可以用兩個測試用例來測試4 4個區(qū)間: 測試用例1 1:輸入4 4,返回2 /2 /區(qū)間和A A 測試用例2 2:輸入-4-4,輸出“平方根錯誤,輸入值小于0” 0” /

41、 /區(qū)間和B B 當軟件變得更加復雜時,對等區(qū)間的確定就較難,區(qū)間之間的相互依賴性就越強,使用對等區(qū)間等價類劃分設計測試用例技術的難度增加。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第56頁/共203頁57 NextDate(月,日,年)是三個變量的函數(shù)。函數(shù)返回輸入日期的下一個日期。變量月份,日期和年都是整數(shù)值,且滿足下面的條件:1月份=12,1=日期=31,1900=年=2060 兩種不同的等價類劃分方法 等價類測試示例:等價類測試示例:NextDateNextDate問問題題第57頁/共203頁58方法方法1 1l測試用例1.覆蓋等價類1,2,3:測試輸入=(200

42、6,6,16), 預期結果=(2006,6,17)2.覆蓋等價類4,2,3:測試輸入=(1890,4,10), 預期結果=“輸入錯誤!”3.覆蓋等價類5,2,3:測試輸入=(2062,4,10), 預期結果=“輸入錯誤!”4.覆蓋等價類1,6,3:測試輸入=(2006,-2,16), 預期結果=“輸入錯誤!”5.覆蓋等價類1,7,3: 測試輸入=(2006,13,16), 預期結果=“輸入錯誤!”6.覆蓋等價類1,2,8:測試輸入=(2006,6,0), 預期結果=“輸入錯誤!”7.覆蓋等價類1,2,9:測試輸入=(2006,4,33), 預期結果=“輸入錯誤!”條件條件有效等價類有效等價類編

43、號編號 無效等價類無效等價類編號編號年1900,20601年20605月1,122月127日1,313日31 9第58頁/共203頁59方法2l測試用例1.覆蓋等價類1,3,7: 測試輸入=(2000,7,16), 預期結果=(2000,7,17)2.覆蓋等價類2,4,8: 測試輸入=(2006,4,29), 預期結果=(2006,4,30)3.覆蓋等價類1,5,9: 測試輸入=(2000,2,30), 預期結果=“輸入錯誤!”4.覆蓋等價類2,6,10: 測試輸入=(2001,12,31),預期結果=(2002,1,1)5.覆蓋等價類11,3,7: 測試輸入=(1830,3,19), 預期結

44、果=“輸入錯誤!”第59頁/共203頁60方法2(續(xù))l測試用例(續(xù))6.覆蓋等價類12,3,7: 測試輸入=(3000,3,19), 預期結果=“輸入錯誤!”7.覆蓋等價類1,13,7: 測試輸入=(2004,-2,10),預期結果=“輸入錯誤!”8.覆蓋等價類1,14,7: 測試輸入=(2004,15,10),預期結果=輸入錯誤!”9.覆蓋等價類1,3,15: 測試輸入=(2004,8,-2), 預期結果=“輸入錯誤!”10.覆蓋等價類1,3,16: 測試輸入=(2004,8,38),預期結果=“輸入錯誤!”。第60頁/共203頁61l討論討論l每種結果都覆蓋了一些應該測試的功能點 第一種

45、方法:過多關注無效等價類的測試,遺漏了較多NextDate問題蘊含的邏輯,如平年和閏年、二月和大小月、月底等; 第二種方法:在第一種方法的基礎上,增加了對二月、年底等的測試,同時要考慮NextDate的邏輯知識,測試用例涵蓋了大部分需測試的要點,但仍有些遺漏,例如年底、平年的二月等l如果程序未等同地處理等價類中的元素,應將這個等價類再劃分為小一些的等價類。3.2.1 3.2.1 等價類測試用例設計法等價類測試用例設計法第61頁/共203頁62等價類測試示例:加法器 一個c語言程序,功能是計算1100之間的整數(shù)的和#include void main(void)int a;/加數(shù)int b;/加

46、數(shù)int c;/和while(1)printf(“請輸入兩個1到100之間的整數(shù):”);fflush(stdin);/清空輸入緩沖區(qū)scanf(“%d %d”,&a,&b);if(a1&a1&b100)/判斷c=a+b;printf(“兩個數(shù)的和為% dn”,c);(1)無效等價類 100用例編號所屬等價類加數(shù)1加數(shù)2預期結果1234043210-1提示33110101提示AB+=第62頁/共203頁63加法器等價類擴展 除了考慮數(shù)據的輸入范圍,還要考慮輸入數(shù)據的類型加數(shù)數(shù)值非數(shù)值整數(shù)小數(shù)(4)字母(5)特殊字符(6)空格(7)空白(8)100(3)第63頁/共

47、203頁64加法器測試用例用例編號所屬等價類加數(shù)1加數(shù)2和(預期結果)12(有效等價類)3404321 (無效等價類)0-1提示“請輸入1100之間的整數(shù)”33 (無效等價類)110101提示“請輸入1100之間的整數(shù)”44 (無效等價類)1.23.2提示“請輸入1100之間的整數(shù)”55 (無效等價類)AB提示“請輸入1100之間的整數(shù)”66 (無效等價類)#提示“請輸入1100之間的整數(shù)”77 (無效等價類)空格空格提示“請輸入1100之間的整數(shù)”第64頁/共203頁3. 某軟件要求輸入以年月表示的日期,日期限定在1998年1月2068年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后

48、2位表示月?,F(xiàn)用等價類劃分法對輸入日期進行黑合測試,測試用例的等價類如下表,試設計測試用例,以覆蓋所有的等價類。輸入等價類有效等價類無效等價類日期類型與長度6位數(shù)字字符有非數(shù)字字符少于6位數(shù)字字符多于6位數(shù)字字符年份范圍在19982068之間小于1998大于2068月份范圍在0112之間等于00大于12第65頁/共203頁覆蓋所有的等價類的測試用例如下表。測試用例數(shù)據期望結果覆蓋的等價類編號200611輸入有效199901輸入有效205901輸入有效9954X9無效輸入20096無效輸入20120607無效輸入198901無效輸入200401無效輸入200400無效輸入200422無效輸入第6

49、6頁/共203頁 1 1、邊界值分析法的思想、邊界值分析法的思想 邊界值分析法(Boundary Value Boundary Value AnalysisAnalysis,BVABVA)是對等價類測試用例設計法的補充,不是選擇等價類中的元素,而是選擇等價類邊界的數(shù)據。在測試過程中,往往忽略邊界的條件,而軟件中的大量錯誤是發(fā)生在輸入或輸出范圍的邊界上。因此針對各種邊界設計測試用例,以查出更多的錯誤。 3.2.2 邊界值分析測試用例設計法第67頁/共203頁 1 1、邊界值分析法的思想、邊界值分析法的思想 如創(chuàng)建一個含有1010個元素的一維數(shù)組的VBVB程序: Dim data(10) as I

50、nteger Dim data(10) as Integer Dim i as Integer Dim i as Integer For i=1 to 10 For i=1 to 10 data(i)=1 data(i)=1 Next i Next i3.2.2 邊界值分析測試用例設計法第68頁/共203頁 1 1、邊界值分析法的思想、邊界值分析法的思想 在BasicBasic語言中,定義數(shù)組的第一個元素所對應的下標是0 0而不是1 1。因此,程序運行結束后,數(shù)組中成員的賦值情況如下: data(0)=0 data(0)=0,data(1)=1data(1)=1,data(2)=1data(2

51、)=1,.,data(10)=1data(10)=1 當其他程序員使用該數(shù)組時,可能會造成軟件的缺陷或錯誤的產生。邊界值分析方法設計的測試用例,就是著重測試的邊界情況。3.2.2 邊界值分析測試用例設計法第69頁/共203頁70 邊界值邊界值測試用例的取值在輸入變量的最小值、略高于最小值、正常值、略低于最大值測試用例的取值在輸入變量的最小值、略高于最小值、正常值、略低于最大值和最大值處。和最大值處。 abcdX2X1有效輸入區(qū)域函數(shù)F有兩個變量X1和 X2,F(xiàn)實現(xiàn)為一個程序,完成某功能,X1和 X2的值域分別為a,b和c,d3.2.2 邊界值分析測試用例設計法第70頁/共203頁 2 2、邊界

52、值分析法的原則、邊界值分析法的原則 邊界值分析法應遵循以下幾條原則: 如果輸入條件規(guī)定了值的范圍,應選取剛達到及剛超過范圍邊界的值作為測試輸入數(shù)據。 如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小個數(shù)少1 1、比最大個數(shù)多1 1的數(shù)作為測試數(shù)據。 根據規(guī)格說明的每一個輸出條件,分別使用以上兩個原則。3.2.2 邊界值分析測試用例設計法第71頁/共203頁 2 2、邊界值分析法的原則、邊界值分析法的原則 如果規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),應選取集合的第一個元素和最后一個元素作為測試用例。 如果程序中使用了一個內部數(shù)據結構,應選擇該內部數(shù)據結構的邊界值

53、作為測試用例。 分析規(guī)格說明,找出其他可能的邊界條件。3.2.2 邊界值分析測試用例設計法第72頁/共203頁73 3 3、基于單缺陷假設邊界值、基于單缺陷假設邊界值 單缺陷假設:失效極少是由兩個(或多個)缺陷同時發(fā)生而引起的。單缺陷假設:失效極少是由兩個(或多個)缺陷同時發(fā)生而引起的。 邊界值分析的測試用例:通常一個輸入變量取邊界值,而其它變量則正常值。每邊界值分析的測試用例:通常一個輸入變量取邊界值,而其它變量則正常值。每個變量重復進行,對于一個個變量重復進行,對于一個n n變量函數(shù),邊界值分析產生變量函數(shù),邊界值分析產生4n+14n+1個測試用例。個測試用例。3.2.2 邊界值分析測試用

54、例設計法第73頁/共203頁74 3 3、基于單缺陷假設邊界值、基于單缺陷假設邊界值abcdX2X1如何設定邊界值?根據上下文(語境)人工創(chuàng)建3.2.2 邊界值分析測試用例設計法第74頁/共203頁 實現(xiàn)計算一個含有兩個整數(shù)自變量X X和Y Y函數(shù)的程序,X X的取值域為4,244,24,Y Y的取值域為2,202,20,根據單缺陷假設邊界值測試用例的設計原則,給出邊界值分析法的測試用例。 若X X取正常值1414,Y Y取2 2、3 3、1919和2020,則測試用例有(1414,2 2)、(1414,3 3)、(1414,1919)和(1414,2020)。 若Y Y取正常值1111,X

55、X取4 4、5 5、2323和2424,則測試用例有(4 4,1111)、(5 5,1111)、(2323,1111)和(2424,1111)。 若X X和Y Y均取正常值,則測試用例有(1414,1111)。 對所有的測試用例,預期結果都是一個數(shù)值。3.2.2 邊界值分析測試用例設計法第75頁/共203頁 4 4、基于單缺陷假設、基于單缺陷假設健壯健壯邊界值邊界值 測試思想:測試用例除了最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量的值,還要在略超過最大值以及略小于最小值之處值。如果被測變量個數(shù)為n,則測試用例個數(shù)為6n1。abcdX2X1觀察例外情況處理關心預期的輸出3.2

56、.2 邊界值分析測試用例設計法第76頁/共203頁 5 5、基于多缺陷假設邊界值測試、基于多缺陷假設邊界值測試 多缺陷假設:失效可能是由兩個(或多個)缺陷同時發(fā)生而引起的。 測試思想:首先取每個變量的最小值、略高于最小值、正常值、略低于最大值和最大值的集合進行測試,然后對這些集合進行笛卡兒乘積計算,生成測試用例。即取各變量的不同邊界值的組合,產生5的n次冪個用例。77abcdX2X1最壞情況3.2.2 邊界值分析測試用例設計法第77頁/共203頁 6 6、基于多缺陷假設、基于多缺陷假設健壯健壯邊界值測試邊界值測試 測試思想:首先對于每個變量進行最小值、略高于最小值、正常值、略低于最大值、最大值

57、以及略超過最大值和略小于最小值的集合的測試,然后對這些集合進行笛卡兒乘積計算,生成測試用例。即取各變量的不同邊界值的組合,產生7的n次冪個用例。78abcdX2X1健壯最壞情況測試3.2.2 邊界值分析測試用例設計法第78頁/共203頁 以三角形問題為例,要求輸入三個整數(shù)a a、b b、c c,分別作為三角形的三條邊,取值范圍在1 1100100之間,判斷由三條邊構成的三角形類型為等邊三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表所示給出了邊界值分析測試用例。3.2.2 邊界值分析測試用例設計法第79頁/共203頁測試用例abc預期輸出Test Case 115050等腰三

58、角形Test Case 225050等腰三角形Test Case 3505050等邊三角形Test Case 4995050等腰三角形Test Case 51005050非三角形Test Case 650150等腰三角形Test Case 750250等腰三角形Test Case 8509950等腰三角形Test Case 95010050非三角形Test Case 1050501等腰三角形基于單缺陷假設邊界值的測試用例3.2.2 邊界值分析測試用例設計法第80頁/共203頁81l某選課系統(tǒng)中規(guī)定每門課程的選修人數(shù)在20,60之間,小于20人不開設該門選修課,大于60人不接受后面的選課要求。l

59、測試設計l輸入變量:選課人數(shù)l測試輸入1.選課人數(shù)分別為19,20,21,59,60和61等幾個邊界點2.一個正常值點403.2.2 邊界值分析測試用例設計法第81頁/共203頁82邊界值測試舉例NextDate問題lNextDate(年,月,日)是三個變量的函數(shù)。函數(shù)返回輸入日期的下一個日期。變量年份,月份,日期都是整數(shù)值,且滿足下面的條件: 1900年2060 ,1月12, 1日31l測試設計l三個輸入變量:年,月,日l年的邊界值:1899,1900,1901,1980,2059,2060,2061l月的邊界值:0,1,2,7,11,12,13l日的邊界值:0,1,2,15,30,31,3

60、23.2.2 邊界值分析測試用例設計法第82頁/共203頁83邊界值測試小結邊界值測試小結 錯誤隱含在角落,邊界值最容易出現(xiàn)問題。 邊界值測試的局限:邊界值分析假設變量是獨立的,沒有相互依賴關系。未考慮函數(shù)的性質及變量的語義。 如果輸入變量之間不是真正獨立的,由邊界值而得的測試用例不夠充分。 不僅要考慮輸入空間,還要考慮輸出空間。 健壯性測試是測試內部變量的一種好的選擇:循環(huán)控制變量、索引和指針等。 注意單缺陷假設和多缺陷假設。NextDate的月、日和年之間存在依賴關系,例如2月和閏年(1912年2月31日?)3.2.2 邊界值分析測試法第83頁/共203頁84 采用邊界值技術測試加法器 功能:計算兩個1100之間的整數(shù)的和。 程序: #inclu

溫馨提示

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

評論

0/150

提交評論