第02章-判定表法_第1頁
第02章-判定表法_第2頁
第02章-判定表法_第3頁
第02章-判定表法_第4頁
第02章-判定表法_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2021/3/231 黑盒測試技術(shù) 判定表法 2021/3/232 教學(xué)要求 u 判定表法適用于哪些情況? u 什么是判定表、判定表法? u 判定表的組成、簡化與類型 u 建立判定表的步驟 2021/3/233 在程序設(shè)計發(fā)展的初期,判定表就已被當(dāng)作編 寫程序的輔助工具了。它可以把復(fù)雜的邏輯關(guān)系和多種 條件組合的情況表達(dá)得既具體又明確,能夠?qū)?fù)雜的問 題按照各種可能的情況全部列舉出來,簡明并避免遺漏。 因此,在一些數(shù)據(jù)處理問題當(dāng)中,若某些操作的實 施依賴于多個邏輯條件的組合,即針對不同邏輯條件的 組合值,分別執(zhí)行不同的操作。判定表很適合于處理這 類問題。 引入 2021/3/234 等價類劃分

2、法和邊界值分析方法比較適合輸輸 入變量或輸入條件相互獨立入變量或輸入條件相互獨立的情況,但是當(dāng)輸入變量或輸入變量或 輸入條件相互依賴、相互制約輸入條件相互依賴、相互制約的時候,采用等價類劃分 法和邊界值分析方法是難以描述的,測試效果也很難保 障。 例如:有多少種優(yōu)惠方案? 引入 2021/3/235 什么是判定表驅(qū)動法? 判定表驅(qū)動法(判定表驅(qū)動法(或決策表法決策表法) 是根據(jù)需求 描述建立判定表后,導(dǎo)出測試用例的方法。 v在所有的黑盒測試方法中,基于判定表的測試是 最為嚴(yán)格、最具有邏輯性最為嚴(yán)格、最具有邏輯性的測試方法 v可以設(shè)計出完整的測試用例集合 2021/3/236 什么是判定表? 判

3、定表(判定表(也稱決策表決策表)是一個用來表示條件 和行動的二維表,是分析和表達(dá)多邏輯條件 下執(zhí)行不同操作的情況的工具。 v可以清晰的表達(dá)條件、決策規(guī)則和應(yīng)采取的行動之間的 邏輯關(guān)系。 v判定表很適合描述不同條件集合下采取行動的若干組合適合描述不同條件集合下采取行動的若干組合 的情況。 2021/3/237 實例“閱讀指南”判定表 規(guī)則規(guī)則 選項選項 12345678 問問 題題 你覺得疲倦嗎?你覺得疲倦嗎? YYYYNNNN 你對內(nèi)容感興趣嗎?你對內(nèi)容感興趣嗎? YYNNYYNN 書中內(nèi)容使你胡涂嗎?書中內(nèi)容使你胡涂嗎? YNYNYNYN 建建 議議 請回到本章開頭重讀請回到本章開頭重讀 繼

4、續(xù)讀下去繼續(xù)讀下去 跳到下一章去讀跳到下一章去讀 停止閱讀,請休息停止閱讀,請休息 2021/3/238 判定表的組成 1.條件樁列出問題的所有條件。 2.條件項針對條件樁給出的條件,列出所有可能的取值。 3.動作樁列出問題規(guī)定的可能采取的操作。 4.動作項指出在條件項的各組取值情況下應(yīng)采取的動作。 u將任何一個條件組合的特定 取值及相應(yīng)要執(zhí)行的動作稱為 。 u在判定表中貫穿條件項和動 作項的一列就是。 2021/3/239 判定表的組成 1.條件樁 Condition Stub 2.條件項 Condition Entity 3.動作樁 Action Stub 4.動作項 Action Ent

5、ity 5.規(guī) 則 Rule 2021/3/2310 判定表的類型 有限條目判定表有限條目判定表 特點:所有條件都是 二值條件(真/假) 判定表判定表 擴展條目判定表擴展條目判定表 特點: 條件可以有多個值 2021/3/2311 舉例有限條目判定表 規(guī)則規(guī)則 選項選項 12345678 問問 題題 你覺得疲倦嗎?你覺得疲倦嗎? YYYYNNNN 你對內(nèi)容感興趣嗎?你對內(nèi)容感興趣嗎? YYNNYYNN 書中內(nèi)容使你胡涂嗎?書中內(nèi)容使你胡涂嗎? YNYNYNYN 建建 議議 請回到本章開頭重讀請回到本章開頭重讀 繼續(xù)讀下去繼續(xù)讀下去 跳到下一章去讀跳到下一章去讀 停止閱讀,請休息停止閱讀,請休息

6、 2021/3/2312 等價類 M1=航線為國外歐 美航線 M2=航線為國外非 歐美航線 M3=航線為國內(nèi)航 線 D1=倉位為商務(wù)倉 D2=倉位為經(jīng)濟(jì)倉 Y1=飛行時間小于 2h Y2=飛行時間大于等 于2h 動作樁: A1:播放電影 A2:食物供應(yīng) 條件樁: C1:航線在M1,M2,M3中之 一 C2:倉位在D1,D2中之一 C3:飛行時間在Y1,Y2中之 一 舉例擴展條目判定表 2021/3/2313 規(guī)則規(guī)則 樁樁 123456789101112 C1:航線在航線在M1M1M1M1M2M2M2M2M3M3M3M3 C2:倉位在倉位在D1D1D2D2D1D1D2D2D1D1D2D2 C3

7、:飛行時間在飛行時間在Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2 A1:播放電影播放電影 A2:食物供應(yīng)食物供應(yīng) 舉例擴展條目判定表 2021/3/2314 判定表的簡化 實際使用決策表時,常常先將它簡化,簡化是以合并相似 規(guī)則為目標(biāo)的。 判定表的簡化主要包含:規(guī)則合并規(guī)則合并與規(guī)則包含規(guī)則包含 (1 1)規(guī)則合并)規(guī)則合并 若兩條或多條規(guī)則的動作項相同,條件項只有一項不同, 則可將該項合并,合并后的條件項用符號“-”表示,說 明執(zhí)行的動作與該條件的取值無關(guān),稱為無關(guān)條件無關(guān)條件。 (2 2)規(guī)則包含)規(guī)則包含 無關(guān)條件項“-”在邏輯上又可包含其他的條件項取值, 具有相同動作的規(guī)則還可進(jìn)

8、一步合并。 2021/3/2315 Y Y N N Y N X X Y N - X Y Y - N N N X X Y - N X 圖圖a 兩條規(guī)則合并成一條 圖圖b 兩條規(guī)則的進(jìn)一步合并 判定表的簡化 v 如圖a表示了兩個柜子的動作項一致,條件項中的第三條件的取值不同,這 表示在第一、第二條件分別取真值和假值時,第三條件不論取何值,都執(zhí)行同 一動作。就是說要執(zhí)行的動作與第三條件的取值無關(guān)。這樣,我們將這兩條 規(guī)則合并,合并后的第三條件取值用“”表示,以示與取值無關(guān)。 v 類似地,無關(guān)條件項“”在邏輯上又可包含其他的條件項取值,具有相 同動作的規(guī)則還可進(jìn)一步合并,如圖b所示。 2021/3/2

9、316 規(guī)則合并實例“閱讀指南” 規(guī)則規(guī)則 選項選項 12345678 問問 題題 你覺得疲倦嗎?你覺得疲倦嗎? YYYYNNNN 你對內(nèi)容感興趣嗎?你對內(nèi)容感興趣嗎? YYNNYYNN 書中內(nèi)容使你胡涂嗎?書中內(nèi)容使你胡涂嗎? YNYNYNYN 建建 議議 請回到本章開頭重讀請回到本章開頭重讀 繼續(xù)讀下去繼續(xù)讀下去 跳到下一章去讀跳到下一章去讀 停止閱讀,請休息停止閱讀,請休息 2021/3/2317 規(guī)則合并實例“閱讀指南” 規(guī)則規(guī)則 選項選項 13567 問問 題題 你覺得疲倦嗎?你覺得疲倦嗎? YYNNN 你對內(nèi)容感興趣嗎?你對內(nèi)容感興趣嗎? YNYYN 書中內(nèi)容使你胡涂嗎?書中內(nèi)容使

10、你胡涂嗎? YN 建建 議議 請回到本章開頭重讀請回到本章開頭重讀 繼續(xù)讀下去繼續(xù)讀下去 跳到下一章去讀跳到下一章去讀 停止閱讀,請休息停止閱讀,請休息 2021/3/2318 規(guī)則規(guī)則 選項選項 1567 問問 題題 你覺得疲倦嗎?你覺得疲倦嗎? YNNN 你對內(nèi)容感興趣嗎?你對內(nèi)容感興趣嗎? YYN 書中內(nèi)容使你胡涂嗎?書中內(nèi)容使你胡涂嗎? YN 建建 議議 請回到本章開頭重讀請回到本章開頭重讀 繼續(xù)讀下去繼續(xù)讀下去 跳到下一章去讀跳到下一章去讀 停止閱讀,請休息停止閱讀,請休息 規(guī)則合并實例“閱讀指南” 2021/3/2319 生成測試用例“閱讀指南” 用例用例ID輸入條件輸入條件預(yù)期輸

11、出預(yù)期輸出 1覺得疲倦建議停止閱讀,請休息 2不覺得疲倦,對內(nèi)容也感興趣, 但內(nèi)容使你糊涂 建議回到本章開頭重讀 3不覺得疲倦,對內(nèi)容感興趣, 內(nèi)容沒有使你糊涂 建議繼續(xù)讀下去 4不覺得疲倦,對內(nèi)容不感興趣建議跳到下一章去讀 2021/3/2320 判定表的建立步驟 2021/3/2321 使用判定表設(shè)計用例的條件 v 規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表 v 條件的排列順序不影響執(zhí)行哪些操作 v 規(guī)則的排列順序不影響執(zhí)行哪些操作 v當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不 必檢驗別的規(guī)則? v 如果某一規(guī)則要執(zhí)行多個操作,這些操作的執(zhí)行順序無 關(guān)緊要 2021/3/23

12、22 案例1三角形問題 對于三角問題,設(shè)計其判定表,然后根據(jù)該 判定表設(shè)計相應(yīng)的測試用例。 2021/3/2323 關(guān)鍵:如何得到三角問題的“條件樁”和“行動樁” ? 我們可以通過分析三角問題的處理過程(即“業(yè)務(wù)邏輯”)得到: v當(dāng)判斷出a=b=c時,程序輸出“等邊三角形”。 v當(dāng)判斷出a=b或b=c或a=c時,程序輸出“等腰三角形”。 v當(dāng)a!=b且b != c且c !=a時,程序輸出“一般三角形” 可以看出程序的輸出由a,b,c之間是否相等的關(guān)系確定, 即a=b?, a=c?, b=c?,這樣我們可以把a=b?, a=c?, b=c? 當(dāng)作條件樁,把程序的輸出當(dāng)作動作樁。 2021/3/2

13、324 C1:a,b,c構(gòu)成 三角形? C2:a=b? C3:a=c? C4:b=c? 條件樁 A1:非三角形 A2:一般三角形 A3:等腰三角形 A4:等邊三角形 A5:不可能 行動樁 2021/3/2325 24=16 規(guī)則數(shù) 2021/3/2326 規(guī)則規(guī)則 樁樁 123456789101 1 1 2 1 3 1 4 1 5 1 6 C1:a,b,c構(gòu)成三角形構(gòu)成三角形?FFFFFFFFTTTTTTTT C2:a=b?FFFFTTTTFFFFTTTT C3:a=c?FFTTFFTTFFTTFFTT C4:b=c?FTFTFTFTFTFTFTFT A1:非三角形非三角形 A2:一般三角形一

14、般三角形 A3:等腰三角形等腰三角形 A4:等邊三角形等邊三角形 A5:不可能不可能 2021/3/2327 規(guī)則規(guī)則 樁樁 123456789101 1 1 2 1 3 1 4 1 5 1 6 C1:a,b,c構(gòu)成三角形構(gòu)成三角形?FFFFFFFFTTTTTTTT C2:a=b?FFFFTTTTFFFFTTTT C3:a=c?FFTTFFTTFFTTFFTT C4:b=c?FTFTFTFTFTFTFTFT A1:非三角形非三角形 A2:一般三角形一般三角形 A3:等腰三角形等腰三角形 A4:等邊三角形等邊三角形 A5:不可能不可能 2021/3/2328 規(guī)則規(guī)則 樁樁 123456789

15、C1:a,b,c構(gòu)成三角形構(gòu)成三角形?FTTTTTTTT C2:a=b? FFFFTTTT C3:a=c? FFTTFFTT C4:b=c? FTFTFTFT A1:非三角形非三角形 A2:一般三角形一般三角形 A3:等腰三角形等腰三角形 A4:等邊三角形等邊三角形 A5:不可能不可能 三角形問題的判定表 2021/3/2329 用例用例a ab bc c預(yù)期輸出預(yù)期輸出 1 11 12 24 4非三角形非三角形 2 23 34 45 5一般三角形一般三角形 3 33 34 44 4等腰三角形等腰三角形 4 44 43 34 4等腰三角形等腰三角形 5 5? 6 64 44 43 3等腰三角形

16、等腰三角形 7 7? 8 8? 9 93 33 33 3等邊三角形等邊三角形 (1)對每一條規(guī)則設(shè)計一個測試用例: 根據(jù)判定表設(shè)計測試用例 2021/3/2330 用例用例a ab bc c預(yù)期輸出預(yù)期輸出 1 11 12 24 4非三角形非三角形 2 23 34 45 5一般三角形一般三角形 3 33 34 44 4等腰三角形等腰三角形 4 44 43 34 4等腰三角形等腰三角形 5 54 44 43 3等腰三角形等腰三角形 6 63 33 33 3等邊三角形等邊三角形 (2)去掉不存在的情況: 根據(jù)判定表設(shè)計測試用例 2021/3/2331 案例2NextDate問題 對于NextDat

17、e問題,設(shè)計其判定表, 然后根據(jù)該判定表設(shè)計相應(yīng)的測試用例。 2021/3/2332 如何得到NextDate問題的“條件樁”和 “行動樁” ? 我們可以通過分析NextDate問題的處理過程(即“業(yè)務(wù)邏輯”)得到: 見下頁 2021/3/2333 為了獲得下一個日期,NextDate函數(shù)執(zhí)行如下操作: v 如果輸入日期不是當(dāng)月最后一天,則把day變量的值加1; v 如果輸入日期是111月份中某月的最后一天,則把day變量的值復(fù)位為1, month變量的值加1; v 如果輸入日期是12月的最后一天,則day變量和month變量的值都復(fù)位為 1,year變量的值加1。 關(guān)于最后一天的判斷: v

18、如果是有31天的月份(1,3,5,7,8,10,12),day=31為最后一天; v 如果是有30天的月份(4,6,9,11), day=30為最后一天; v 如果是有29天的月份(閏年的2月), day=29為最后一天; v 如果是有28天的月份(非閏年的2月), day=28為最后一天。 可見程序的動作主要是d,m,y的加1或復(fù)位,而這些操作又與d,m, y的特征有關(guān)。這樣我們可以把d,m,y的加1或復(fù)位作為動作 樁, d,m,y的特征作為條件樁。 2021/3/2334 條件樁: C1:月份在M1中 C2:月份在M2中 C3:月份在M3中 C4:月份在M3中 C5:日期在D1中 C6:日

19、期在D2中 C7:日期在D3中 C8:日期在D4中 C9:日期在D4中 C10:年是閏年 C11:年是平年 動作樁: A1:不可能 A2:日期增1 A3:日期復(fù)位(置1) A4:月份增1 A5:月份復(fù)位(置1) A6:年增1 等價類 M1=月份:每月有30天 M2=月份:每月有31 天,12月除外 M3=月份:此月是12月 M4=月份:此月是2月 D1=日期:1=日期 =27 D2=日期:日期=28 D3=日期:日期=29 D4=日期:日期=30 D5=日期:日期=31 Y1=年:年是閏年 Y2=年:年是平年 2021/3/2335 211=2048 太大! 規(guī)則數(shù)? 2021/3/2336

20、等價類 M1=月份:每月有30天 M2=月份:每月有31 天,12月除外 M3=月份:此月是12月 M4=月份:此月是2月 D1=日期:1=日期 =27 D2=日期:日期=28 D3=日期:日期=29 D4=日期:日期=30 D5=日期:日期=31 Y1=年:年是閏年 Y2=年:年是平年 動作樁: A1:不可能 A2:日期增1 A3:日期復(fù)位(置1) A4:月份增1 A5:月份復(fù)位(置1) A6:年增1 條件樁: C1:月份在M1,M2,M3,M4 中之一 C2:日期在 D1,D2,D3,D4 ,D5中 之一 C3:年在Y1,Y2中之一 2021/3/2337 452=40 規(guī)則數(shù)? 2021

21、/3/2338 規(guī)則規(guī)則 樁樁 12345678910 C1:月份在月份在M1M1M1M1M1M2M2M2M2M2 C2:日在日在D1D2D3D4D5D1D2D3D4D5 C3:年在年在- A1:不可能不可能 A2:日增日增1 A3:日復(fù)位日復(fù)位 A4:月增月增1 A5:月復(fù)位月復(fù)位 A6:年增年增1 2021/3/2339 規(guī)則規(guī)則 樁樁 111213141516171819202122 C1:月份在月份在M3M3M3M3M3M4M4M4M4M4M4M4 C2:日在日在D1D2D3D4D5D1D2D2D3D3D4D5 C3:年在年在-Y1Y2Y1Y2- A1:不可能不可能 A2:日增日增1

22、A3:日復(fù)位日復(fù)位 A4:月增月增1 A5:月復(fù)位月復(fù)位 A6:年增年增1 續(xù)表 2021/3/2340 課堂練習(xí)一 用例ID月份日期年預(yù)期輸出 1 2 3 4 5 6 7 8 9 根據(jù)判定表,請寫出NextDate函數(shù)的前9個測試用例: 2021/3/2341 用例用例ID月份月份日期日期年年預(yù)期輸出預(yù)期輸出 1-3412/28/2920012001年4月13/29/30日 443020012001年5月1日 54312001不可能 6-9115/28/29/3020012001年1月16/29/30/31日 1013120012001年2月1日 11-141215/28/29/302001

23、2001年12月16/29/30/31日 15123120012002年1月1日 1621520012001年2月16日 1722820042004年2月29日 1822820012001年3月1日 1922920042005年3月1日 202292001不可能 21,22230/312001不可能 根據(jù)判定表設(shè)計測試用例 2021/3/2342 課堂練習(xí)二 假設(shè)一個中國的航空公司規(guī)定: v中國去歐美的航線所有座位都有食物供應(yīng),每個座位都 可以播放電影。 v中國去非歐美的國外航線都有食物供應(yīng),只有商務(wù)倉可 以播放電影。 v中國國內(nèi)的航班的商務(wù)倉有食物供應(yīng),但是不可以播放 電影 v中國國內(nèi)的航班

24、的經(jīng)濟(jì)倉除非飛行時間大于2小時就有 食物供應(yīng),但是不可以播放電影。 請用判定表法設(shè)計測試用例。 2021/3/2343 條件樁: C1:航線為國外歐美航線 C2:航線為國外非歐美航線 C3:航線為國內(nèi)航線 C4:倉位為商務(wù)倉 C5:倉位為經(jīng)濟(jì)倉 C6:飛行時間小于2h C7:飛行時間大于等于2h 動作樁: A1:播放電影 A2:食物供應(yīng) 2021/3/2344 27=12 8 太大! 規(guī)則數(shù)? 2021/3/2345 等價類 M1=航線為國外歐 美航線 M2=航線為國外非 歐美航線 M3=航線為國內(nèi)航 線 D1=倉位為商務(wù)倉 D2=倉位為經(jīng)濟(jì)倉 Y1=飛行時間小于 2h Y2=飛行時間大于等 于2h 動作樁: A1:播放電影 A2:食物供應(yīng) 條件樁: C1:航線在M1,M2,M3中之 一 C2:倉位在D1,D

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論