第4章 黑盒測試第3節 基于判定表測試_第1頁
第4章 黑盒測試第3節 基于判定表測試_第2頁
第4章 黑盒測試第3節 基于判定表測試_第3頁
第4章 黑盒測試第3節 基于判定表測試_第4頁
第4章 黑盒測試第3節 基于判定表測試_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第4章 黑 盒 測 試 第4章 黑 盒 測 試 第4章 黑 盒 測 試 4.1 4.1 邊界值測試邊界值測試 4.2 4.2 等價類測試等價類測試 4.3 4.3 基于判定表的測試基于判定表的測試 4.4 4.4 因果圖因果圖 4.5 4.5 其他黑盒測試方法其他黑盒測試方法 4.6 4.6 綜合案例綜合案例 4.7 4.7 本章小結本章小結 Software Testing問題引入問題引入n例:某個軟件需求文檔中有這樣的說明:第一列字符必須是A或B,第二列字符必須是一個數字,在此情況下進行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數字,則給出信息M。n邊界值測試n等

2、價類測試Software Testing問題引入問題引入n 在一些數據處理問題中,某些操作是否實施依賴于多個邏輯條件的取值。在這些邏輯條件取值的組合所構成的多種情況下,分別執行不同的操作。n判定表能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。Software Testing4.3 4.3 基于判定表的測試基于判定表的測試n判定表的組成n基于判定表的測試n案例:考生錄取、隔一日問題Software Testing4.3.1 判定表判定表n判定表的原理n判定表的組成n規則Software Testing1. 判定表的原理判定表的原理n判定表判定表(Decision Table),

3、又叫決策表判定表是分析和表達多邏輯條件下執行不同操作的工具。在程序設計發展的初期,判定表被當作編寫程序的輔助工具。Software Testing2. 判定表的組成判定表的組成n條件樁(Condition Stub)列出問題的所有條件n動作樁(Action Stub)列出可能采取的操作n條件項(Condition Entity)列出條件樁的取值n動作項(Action Entity)列出條件項各種取值下應該采取的動作Software Testing判定表的組成判定表的組成Software Testing3.規則規則n任何一個條件組合的特定取值及其相應要執行的操作稱為規則;n在判定表中貫穿條件項和

4、動作項條件項和動作項的一列就是一條規則;n判定表中列出多少組條件取值,也就有多少條規則,即條件項和動作項有多少列。Software Testing規則示例:規則示例:Software Testing規則示例:三角形問題規則示例:三角形問題Software Testing3.規則規則(續續)n規則合并規則合并就是判定表的簡化簡化。有兩條或多條規則具有相同的動作相同的動作,并且其條件項之間存在著極為相似的關系相似的關系,就可以將規則合并。Software Testing(1)兩條規則合并成一條)兩條規則合并成一條n條件項“”表示與取值無關。Software Testingn條件項“”在邏輯上包含其

5、它的條件。(2)兩條規則的進一步合并)兩條規則的進一步合并Software Testing4.3.2 基于判定表的測試基于判定表的測試n使用判定表標識測試用例:把條件解釋為程序的輸入,把動作解釋為輸出。n在測試時,有時條件最終引用輸入的等價類,動作引用被測程序的主要功能處理,這時規則就解釋為測試用例。n根據軟件規格說明建立判定表。Software Testing判定判定表建立步驟表建立步驟n根據軟件規格說明列出所有的條件樁和動作樁;確定規則的個數;n假如有n個條件,每個條件有兩個取值(0,1),則有2n 種規則; 填入條件項;填入動作項,得到初始決策表;簡化,合并相似規則(相同動作)。Soft

6、ware Testing例:例:維修機器問題維修機器問題n問題描述:“對于功率大于50馬力的機器,并且維修記錄不全或已運行10年以上的機器,應給予優先的維修處理”n請建立決策表。Software Testing例:例:維修機器問題(續)維修機器問題(續)n(1)列出所有的條件樁和動作樁條件樁nC1:功率大于50馬力嗎?nC2:維修記錄不全嗎?nC3:運行超過10年嗎?動作樁nA1:進行優先處理nA2:作其他處理Software Testing例:例:維修機器問題(續)維修機器問題(續)n(2)確定規則個數輸入條件個數:3;每個條件的取值:“是”或“否”;規則個數:2*2*2 =8;u 功率大于

7、50馬力嗎u 維修記錄不全嗎u 運行超過10年嗎Software Testing例:例:維修機器問題(續)維修機器問題(續)12345678條條件件功率大于50馬力嗎?YYYYNNNN維修記錄不全嗎?YYNNYYNN運行超過10年嗎?YNYNYNYN動動作作進行優先處理作其他處理n(3)填入條件項;n利用集合的笛卡爾積計算條件項的取值Software Testing例:例:維修機器問題(續)維修機器問題(續)12345678條條件件功率大于50馬力嗎?YYYYNNNN維修記錄不全嗎?YYNNYYNN運行超過10年嗎?YNYNYNYN動動作作進行優先處理 作其他處理 n(4)填入動作項;n1,2

8、合并,5,7合并,6,8合并Software Testing例:例:維修機器問題(續)維修機器問題(續)n(5)化簡;(1)(2)(3)(4)(5)條條件件功率大于50馬力嗎?YYYNN維修記錄不全嗎?YNN運行超過10年嗎?YNYN動動作作進行優先處理 作其他處理 Software Testing4.3.2 基于判定表的測試基于判定表的測試n根據輸入輸出繪制判定表;n設計測試用例覆蓋判定表中每條規則。Software Testing4.3.3 基于判定表的測試指導方針基于判定表的測試指導方針n判定表技術適用的應用程序的特征:if-then-else邏輯很突出輸入變量之間存在邏輯關系涉及輸入變

9、量子集的計算輸入與輸出之間存在因果關系很高的McCabe圈復雜度Software Testingn判定表的優點能把復雜的問題按各種可能的情況一一列舉出來簡明而易于理解可避免遺漏Software Testingn判定表的缺點不能表達重復執行的動作,例如循環結構判定表不能很好地伸縮n有n個條件的決策表有2n 個規則。n解決方法使用擴展條目判定表、代數簡化表,將大表“分解”為小表,查找條件項的判定表式Software Testing4.3.3 基于判定表的測試指導方針基于判定表的測試指導方針n 適合使用判定表設計測試用例的條件:適合使用判定表設計測試用例的條件:(1) 規格說明以判定表形式給出,或很

10、容易轉換成判定表。(2) 條件的排列順序不會也不影響執行哪些操作。 (3) 規則的排列順序不會也不影響執行哪些操作。(4) 每當某一規則的條件已經滿足,并確定要執行的操作后,不必檢驗別的規則。(5) 如果某一規則得到滿足要執行多個操作,這些操作的執行順序無關緊要。Software Testing4.3.4 案例案例:考生錄取:考生錄取n問題描述某程序規定:“對總成績大于450分,且各科成績均高于85分或者是優秀畢業生,應優先錄取,其余情況作其他處理。” 請用基于判定表的方法設計測試用例。Software Testing(1)列出所有的條件樁和動作樁n條件樁 總成績大于450分嗎? 各科成績均高

11、于85分嗎? 是優秀畢業生嗎?n動作樁: 優先錄取 作其他處理 一、設計判定表一、設計判定表Software Testing(2)確定規則的個數n輸入有三個條件,每個條件的取值為“是”或“否”,因此有222=8種規則。Software Testing(3)填入條件項n將各個條件取值的集合進行笛卡爾積,得到每一列條件項的取值。n Y,NY,NY,N=,Software Testing(4)填入動作樁和動作頂n根據每一列中各條件的取值得到所要采取的行動,填入動作樁和動作項,便得到初始判定表。Software Testingn判定表表 4-3-3 判 定 表 1 2 3 4 5 6 7 8 總成績大

12、于 450 分 Y Y Y Y N N N N 各科成績均高于85 分 Y Y N N Y Y N N 條 件 優秀畢業生 Y N Y N Y N Y N 優先錄取 動 作 作其他處理 Software Testing(5)化簡n規則1和規則2的動作項相同:n規則5和規則6可以合并;n規則7和規則8可以合并。Software Testingn判定表 表4-3-4 簡化后的判定表 1 2 3 4 5 總成績大于 450 分 Y Y Y N N 各科成績均高于 85 分 Y N N Y N 條 件 優秀畢業生 Y N 優先錄取 動 作 作其他處理 Software Testingn判定表表 4-3

13、-5 進一步簡化后的判定表 1 2 3 4 總成績大于 450 分 Y Y Y N 各科成績均高于 85 分 Y N N 條 件 優秀畢業生 Y N 優先錄取 動 作 作其他處理 Software Testing測試用例測試用例編號編號輸輸 入入 數數 據據預預 期期 結結 果果覆蓋的規則覆蓋的規則總成總成績績各科各科成績成績是是/否優否優秀畢業生秀畢業生11223344二、設計測試用例二、設計測試用例Software Testing測試用例測試用例編號編號輸輸 入入 數數 據據預預 期期 結結 果果覆蓋的規則覆蓋的規則總成總成績績各科各科成績成績是是/否優否優秀畢業生秀畢業生1500分90分

14、優秀優先錄取12480分82分優秀優先錄取23470分83分不是優秀其他處理34430分86分優秀其他處理4二、設計測試用例二、設計測試用例Software Testing4.3.4 案例案例:隔一日問題:隔一日問題n問題描述程序有三個輸入變量month、day、year(month、day和year均為整數值,并且滿足條件:1month12和1day31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。例如,輸入為2005年11月29日,則該程序的輸出為2005年12月1日。請用判定表測試法進行測試。 monthday yearNNDate1212月月小月

15、小月二月二月大月大月本月外本月外輸出輸出本月內本月內輸入輸入monthdayyearM1: monthM1: month有有3030天天=4,6,9,11=4,6,9,11;M2: monthM2: month有有3131天,天,1212月月除外除外=1,3,5,7,8,10=1,3,5,7,8,10; M3: monthM3: month是是1212月月 ;M4: monthM4: month是是2 2月月 ;D1:day:1dayD1:day:1day2626;D2: D2: day:day=27day:day=27;D3: D3: day:day=28day:day=28;D4: D4:

16、 day:day=29day:day=29; D5: day:day=30D5: day:day=30;D6: day:day=31D6: day:day=31;Y1:year:yearY1:year:year是閏年是閏年 ;Y2: year:yearY2: year:year不是閏年不是閏年 va1a1:day+2day+2a2a2:day=1day=1a3a3:day=2day=2a4a4:month+1month+1a5a5:month=1month=1a6a6:year+1year+1a7a7:不可能:不可能 12345678條條件件月份屬于月份屬于M1M1M1M1M2M2M2M3日期

17、屬于日期屬于D1,D2,D3D4D5D6D1,D2,D3,D4D5D6D1,D2,D3,D4年屬于年屬于動作動作a1:day+2 a2:day=1 a3:day=2 a4:month+1 a5:month=1 a6:year+1 a7:不可能:不可能 9101112131415161718條件條件月份屬于月份屬于M3M3M4M4M4M4M4M4M4M4日期屬于日期屬于D5D6D1D2D2D3D3D4D4D5,D6年屬于年屬于Y1Y2Y1Y2Y1Y2動動作作a1:day+2 a2:day=1 a3:day=2 a4:month+1 a5:month=1 a6:year+1 a7:不可能:不可能

18、Software TestingSoftware Testing4.3.4 案例:三角形問題案例:三角形問題n問題描述 輸入三個正整數a、b、c,分別作為三角形的三條邊,通過程序判斷三條邊是否能構成三角形?如果能構成三角形,判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。n請用基于判定表的方法設計測試用例。Software Testingn(1)條件樁C1:a,b,c構成三角形?C2:a = b?C3:a = c?C4:b = c?n(2)規則數共有四個條件,每個條件的取值為“是”或“否”,因此有24= 16條規則。一、設計判定表一、設計判定表Software Testingn(3)動

19、作樁 A1:非三角形; A2:不等邊三角形; A3:等腰三角形; A4:等邊三角形; A5:不可能;Software Testingn(4)判定表123456789條條件件a, b, c構成三角形NYYYYYYYYa = b?YYYYNNNNa = c?YYNNYYNNb = c?YNYNYNYN動動作作非三角形不等邊三角形等腰三角形等邊三角形不可能Software Testingn注意:注意:條件的選擇可以大大擴展判定表的規模;n例如a, b, c構成三角形嗎?可以擴展為三個條件:a b + c?b a + c?c a + b?Software Testing條件樁修改后的判定表條件樁修改后的判定表Software Testinga=b,a=c,bc二、設計測試用例二、設計測試用例Software Testing作業:作業: 教材教材7575頁:頁:3 3題題、 8 8題題、 9 9題題 Software Testing9. 某軟件的一個模塊的需求規格說明書中描述某軟件的一個模塊的需求規格說明書中描述:n(1)年薪制員工:嚴重過失,扣年終風險金的4%;過失,扣年終風險金的2%。n(2)非年薪制員工:嚴重過失,扣當月薪資的8%;過失,扣當月薪資的4%。n請繪制出判定表,并設計相應的測試用例。Software Test

溫馨提示

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

評論

0/150

提交評論