軟件工程第7章:實(shí)現(xiàn)3測(cè)試方法.ppt
《軟件工程第7章:實(shí)現(xiàn)3測(cè)試方法.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件工程第7章:實(shí)現(xiàn)3測(cè)試方法.ppt(147頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
7 6白盒測(cè)試技術(shù) 白盒測(cè)試的原則 迪杰斯特拉定律 窮盡測(cè)試永遠(yuǎn)不可能 執(zhí)行路徑 520個(gè) 如果1ms完成一個(gè)測(cè)試 近似為1014個(gè) 需3170年 一 邏輯覆蓋 語(yǔ)句覆蓋判定覆蓋條件覆蓋判定 條件覆蓋條件組合覆蓋路徑覆蓋 1 語(yǔ)句覆蓋 設(shè)計(jì)測(cè)試用例 使被測(cè)程序中的每個(gè)可執(zhí)行語(yǔ)句至少被執(zhí)行一次 inta b doublec if a 0 例題 M N M T 且N T Case1 a 2 b 0 c 3 此語(yǔ)句未覆蓋 Case2輸入 a 2 b 1 c 3 Case2輸出 c 3 5 思考 如果M為 a 0 b 0 N為 a 1 c 1 測(cè)試用例與測(cè)試結(jié)果有設(shè)么變化 Case2 a 2 b 1 c 3 Case2輸出 c 3 5 語(yǔ)句覆蓋是弱覆蓋標(biāo)準(zhǔn) M N Bug Bug 2 判定覆蓋準(zhǔn)則 設(shè)計(jì)測(cè)試用例 使被測(cè)程序中的每個(gè)判斷的取真分支和取假分支都被測(cè)試用例至少執(zhí)行一次 例題 inta b doublecif a 0 M N M N M T 且N T M F 且N F 設(shè)計(jì)測(cè)試用例及預(yù)期結(jié)果 測(cè)試用例 條件中的取值有被忽略的情況 a 2 b 1 c 3a 2 b 1 c 3 輸出 3 5 2 判定覆蓋仍是弱覆蓋標(biāo)準(zhǔn) Bug 3 條件覆蓋準(zhǔn)則 設(shè)計(jì)測(cè)試用例 使得每個(gè)判斷中每個(gè)條件的可能取值至少滿足一次 例題 inta b doublecif a 0 M N P1 1 2 4P2 1 2 5P3 1 3 4P4 1 3 5 測(cè)試用例集 對(duì)于判定M 條件a 0 取值為真為T(mén)1 取值為假為F1條件b 0 取值為真為T(mén)2 取值為假為F2對(duì)于判定N 條件a 1 取值為真為T(mén)3 取值為假為F3條件c 1 取值為真為T(mén)4 取值為假為F4 雖然覆蓋了所有條件 但不能保證多個(gè)判定分支均被覆蓋到 4 判定 條件覆蓋準(zhǔn)則 設(shè)計(jì)足夠測(cè)試用例 使得判定中的所有條件可能取值至少執(zhí)行一次 同時(shí) 所有判定的可能結(jié)果至少執(zhí)行一次 判定 條件覆蓋能同時(shí)滿足判定 條件兩種覆蓋標(biāo)準(zhǔn) 例題 inta b doublecif a 0 M N 測(cè)試用例集 為了使被測(cè)程序得到充分測(cè)試 不僅每個(gè)條件需要被覆蓋 而且每個(gè)條件的組合也應(yīng)該被覆蓋到 判定 條件覆蓋準(zhǔn)則的不足 inta b doublec1if a 0 Bug a 2 b 1 c 3a 2 b 1 c 3 輸出 3 5 2 5 條件組合覆蓋準(zhǔn)則 設(shè)計(jì)足夠的測(cè)試用例 使得判定中每個(gè)條件的所有可能組合至少出現(xiàn)一次 并且每個(gè)判定結(jié)果也至少出現(xiàn)一次 與條件覆蓋準(zhǔn)則的區(qū)別不是簡(jiǎn)單的要求每個(gè)條件都出現(xiàn) 真 與 假 兩種結(jié)果 而是要求所有可能組合都至少被覆蓋一次 例題 對(duì)于第一個(gè)判定 條件a 0 取值為真為T(mén)1 取值為假為F1條件b 0 取值為真為T(mén)2 取值為假為F2對(duì)于第二個(gè)判定條件 條件a 0 取值為真為T(mén)3 取值為假為F3條件c 1 取值為真為T(mén)4 取值為假為F4 所有的組合條件 測(cè)試用例集 不能保證所有路徑被覆蓋到 6 路徑覆蓋 設(shè)計(jì)測(cè)試用例 來(lái)覆蓋被測(cè)程序中的所有可能的執(zhí)行路徑 P1 1 2 4P2 1 2 5P3 1 3 4P4 1 3 5 M N 路徑覆蓋測(cè)試用例集 不滿足條件組合覆蓋準(zhǔn)則 完全覆蓋測(cè)試用例集 小結(jié) 7 覆蓋準(zhǔn)則間的層次關(guān)系 如果滿足準(zhǔn)則A的測(cè)試用例集一定滿足準(zhǔn)則B 那么我們就認(rèn)為準(zhǔn)則A包含準(zhǔn)則B 例如 判定覆蓋準(zhǔn)則包含語(yǔ)句覆蓋準(zhǔn)則 語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定 條件覆蓋 條件組合覆蓋 路徑覆蓋 作業(yè) 為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例 要求分別滿足語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定 條件覆蓋 組合覆蓋和路徑覆蓋 X 8 Y 5 X 0 Y 0 Z 1 Z 2 F T F T X 16 Y 10 Z 3 F T 四基本路徑測(cè)試法 基本路徑 保證被測(cè)程序的每個(gè)可執(zhí)行語(yǔ)句至少被執(zhí)行一次的最小路徑集 基本路徑測(cè)試法通過(guò)以下4個(gè)步驟來(lái)實(shí)現(xiàn)繪制程序控制流圖分析環(huán)路復(fù)雜度導(dǎo)出基本可執(zhí)行路徑集設(shè)計(jì)測(cè)試用例 39 流程圖 inta b doublec if a 0 步驟1 構(gòu)造程序的控制流圖 步驟2 計(jì)算程序環(huán)路復(fù)雜度 環(huán)路復(fù)雜度又稱圈復(fù)雜度或復(fù)雜度程序邏輯復(fù)雜性的度量值環(huán)路復(fù)雜度 基本路徑數(shù)目經(jīng)驗(yàn)表明 程序的可能存在的BUG數(shù)與環(huán)路復(fù)雜度有著很大的相關(guān)性 計(jì)算程序環(huán)路復(fù)雜度V G 1 2 3 V G 區(qū)域數(shù)目V G 邊的數(shù)目 節(jié)點(diǎn)數(shù)目 2V G 判斷節(jié)點(diǎn)數(shù)目 1 步驟3 確定基本路徑集 存在多個(gè)可行的基本路徑集其中一個(gè)可行的基本路徑集包含如下基本路徑A C EA B C EA B C D E 程序流程圖 步驟4 設(shè)計(jì)測(cè)試用例 例題1 確定圖示控制流流圖的基本路徑集 環(huán)路復(fù)雜度 方法1 4方法2 11 9 2 4方法3 3 1 4 基本路徑集 1 91 2 3 4 6 8 1 91 2 3 5 6 8 1 91 2 7 8 1 9 環(huán)路復(fù)雜度 方法1 3方法2 8 7 2 3方法3 2 1 3 基本路徑集 12712346271235627 例題2 確定圖示控制流流圖的基本路徑集 例題3 確定圖示控制流流圖的基本路徑集 環(huán)路復(fù)雜度 方法1 5方法2 10 7 2 5方法3 4 1 3 基本路徑集 ADFGADEFGABEFGABCBEFG 第六講黑盒測(cè)試技術(shù) 引言 本章將開(kāi)始講黑盒測(cè)試的基本概念與基本方法 介紹等價(jià)類劃分 邊界值分析 決策表法 因果圖法等方法 并通過(guò)實(shí)例來(lái)介紹測(cè)試技術(shù)的應(yīng)用 一 黑盒測(cè)試概述 功能測(cè)試 基于規(guī)格說(shuō)明的測(cè)試 數(shù)據(jù)驅(qū)動(dòng)測(cè)試依據(jù)設(shè)計(jì)規(guī)格書(shū) Specification 需求文檔 Requirement 設(shè)計(jì)文檔 Design 軟件 輸入 黑盒測(cè)試不深入代碼細(xì)節(jié) 輸出 測(cè)試對(duì)象描述類比 黑盒測(cè)試的內(nèi)容 黑盒測(cè)試 失敗測(cè)試 負(fù)面測(cè)試 迫使出錯(cuò) 黑盒測(cè)試的兩種基本思路 正面測(cè)試 負(fù)面測(cè)試 等價(jià)類 EquivalenceClassPartitioning ECP 對(duì)于某個(gè)輸入域的集合 如果用集合中的一個(gè)輸入條件作為測(cè)試數(shù)據(jù)進(jìn)行測(cè)試不能發(fā)現(xiàn)程序中的錯(cuò)誤 那么使用集合中的其他輸入條件進(jìn)行測(cè)試也不可能發(fā)現(xiàn)錯(cuò)誤 對(duì)于檢測(cè)程序中的錯(cuò)誤來(lái)說(shuō) 集合中每個(gè)輸入條件都是等價(jià)的 就稱該集合中的條件為等價(jià)類 1 概念 二等價(jià)類劃分法 有效等價(jià)類是合理的 有意義的輸入數(shù)據(jù)所構(gòu)成的集合驗(yàn)證預(yù)期的功能和性能的實(shí)現(xiàn)無(wú)效等價(jià)類是不合理的 沒(méi)有意義的輸入數(shù)據(jù)構(gòu)成的集合對(duì)無(wú)效數(shù)據(jù)的處理能力 如果輸入條件規(guī)定了取值范圍 則可以劃分一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類 2 等價(jià)類的劃分規(guī)則 例 輸入值是學(xué)生成績(jī) 范圍是0 100有效等價(jià)類 0 成績(jī) 100無(wú)效等價(jià)類 成績(jī)100 如果輸入數(shù)據(jù)是給定值或布爾值 則可以劃分出一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類 例 程序輸入條件x 10有效等價(jià)類 x 10無(wú)效等價(jià)類 x 10程序輸入性別 男有效等價(jià)類 男無(wú)效等價(jià)類 女 如果輸入數(shù)據(jù)是一個(gè)數(shù)組 包括n個(gè)輸入 且程序?qū)Σ煌斎胫底霾煌幚?則有n個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類 例 輸入條件說(shuō)明學(xué)歷可為 ???本科 碩士 博士四種之一有效等價(jià)類 ???本科 碩士 博士無(wú)效等價(jià)類 其它任何學(xué)歷 如果輸入數(shù)據(jù)必須遵循某種規(guī)則 可確定一個(gè)有效等價(jià)類 符合規(guī)則 和若干個(gè)無(wú)效等價(jià)類 從不同角度違反規(guī)則 例 校內(nèi)電話號(hào)碼撥外線為9開(kāi)頭有效等價(jià)類 9 外線號(hào)碼無(wú)效等價(jià)類 非9開(kāi)頭 外線號(hào)碼 9 非外線號(hào)碼 3 測(cè)試用例的設(shè)計(jì)步驟 1 對(duì)輸入或外部條件進(jìn)行等價(jià)類劃分 形成等價(jià)類表并編號(hào) 2 設(shè)計(jì)用例 盡可能多地覆蓋尚未覆蓋的有效等價(jià)類 重復(fù) 3 設(shè)計(jì)新用例 只覆蓋一個(gè)無(wú)效等價(jià)類 重復(fù) 思考 3的順序是否可以和2顛倒 例1 報(bào)表日期 設(shè)某公司要打印2001 2005年的報(bào)表 其中報(bào)表日期為6位數(shù)字組成 其中 前4位為年份 后兩位為月份 第一步 劃分等價(jià)類 編號(hào) 第二步 為有效等價(jià)類設(shè)計(jì)測(cè)試用例 對(duì)表中編號(hào)為 的3個(gè)有效等價(jià)類用一個(gè)測(cè)試用例覆蓋 第三步 為每一個(gè)無(wú)效等價(jià)類至少設(shè)計(jì)一個(gè)測(cè)試用例 本例的10個(gè)等價(jià)類至少需要8個(gè)測(cè)試用例 不能出現(xiàn)相同的測(cè)試用例 4 等價(jià)類劃分法的特點(diǎn) 優(yōu)點(diǎn) 較少的用例 較完整的覆蓋 缺點(diǎn) 缺乏特殊用例的考慮 需要有深入的系統(tǒng)知識(shí) 才能合理的劃分等價(jià)類 對(duì)考試系統(tǒng) 成績(jī)查詢模塊 子模塊 輸入準(zhǔn)考證號(hào)查詢成績(jī)行政專業(yè)準(zhǔn)考證號(hào)碼為 110001 111215法律專業(yè)準(zhǔn)考證號(hào)碼為 210001 212006財(cái)經(jīng)專業(yè)準(zhǔn)考證號(hào)碼為 310001 314015 例2 準(zhǔn)考證號(hào)碼 例 準(zhǔn)考證號(hào)碼的等價(jià)類劃分有效等價(jià)類 1 110001 111215 2 210001 212006 3 310001 314015無(wú)效等價(jià)類 4 110000 5 111216 210000 6 212007 310000 7 314016 等價(jià)類的劃分規(guī)則 四邊界值分析法 BoundaryValueAnalysis BVA理論提出 長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)表明 大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上 而不是發(fā)生在輸入輸出范圍的內(nèi)部 因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例 可以查出更多的錯(cuò)誤 定義 邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法 通常邊界值分析法是作為對(duì)等價(jià)類劃分法的補(bǔ)充 這種情況下 其測(cè)試用例來(lái)自等價(jià)類的邊界 1 常見(jiàn)的邊界值 1 對(duì)16 bit的整數(shù)而言32767和 32768是邊界2 屏幕上光標(biāo)在最左上 最右下位置3 報(bào)表的第一行和最后一行4 數(shù)組元素的第一個(gè)和最后一個(gè)5 循環(huán)的第0次 第1次和倒數(shù)第2次 最后一次 邊界值分析的基礎(chǔ)思想是在輸入變量的取值區(qū)間內(nèi)取最小值 略高于最小值 正常值 略低于最大值和最大值5個(gè)值 邊界值分析 健壯性邊界值分析 2 用例設(shè)計(jì)思想 例1 一個(gè)輸入年份的輸入框 其限制條件是1900年至2012年 那么選擇測(cè)試用例為 1900 1901 1950 2011 20121899 1900 1901 1950 2011 2012 2013 例2 銀行取款機(jī) 取款金額是100 10000 提款的顆粒度為100元 那么選擇測(cè)試用例為 0 100 200 5000 9900 10000 10100 3 選擇測(cè)試用例技巧 1 輸入條件 范圍 剛剛達(dá)到這個(gè)范圍的邊界的值 以及剛剛超越這個(gè)范圍邊界的值 例如 如果程序的規(guī)格說(shuō)明中規(guī)定 重量在10公斤至50公斤范圍內(nèi)的郵件 其郵費(fèi)計(jì)算公式為 測(cè)試用例 9 99 10 10 01 25 49 99 50 50 01 2 輸入條件 值的個(gè)數(shù) 最大個(gè)數(shù) 最小個(gè)數(shù) 比最小個(gè)數(shù)少一 比最大個(gè)數(shù)多一 例如 一個(gè)輸入文件應(yīng)包括1 255個(gè)記錄 則測(cè)試用 0 1 122 255 256等 3 1 2 應(yīng)用于輸出條件 例如 某程序的規(guī)格說(shuō)明要求計(jì)算出 每月保險(xiǎn)金扣除額為0至1165 25元 測(cè)試用例選取應(yīng)能使計(jì)算結(jié)果為0 00和1165 25 以及 0 01及1165 26等 例如 檢索系統(tǒng)程序 要求每次 最少顯示1條 最多顯示4條檢索信息 測(cè)試用例應(yīng)能使輸出結(jié)果為 1 4 還應(yīng)包括0 5等 4 輸入 輸出域是有序集合 集合的第一個(gè)元素和最后一個(gè)元素 5 內(nèi)部數(shù)據(jù)結(jié)構(gòu) 內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值 6 分析規(guī)格說(shuō)明 找出其它可能的邊界條件 7 正常值 接近取值范圍中間值即可 例 輸入3個(gè)值 輸出三角形的類型 測(cè)試用例 邊界值是特殊的等價(jià)類邊界值分析不僅考慮輸入 還要考慮輸出 4 邊界值與等價(jià)類的區(qū)別 5 邊界值的弱點(diǎn) 單缺陷 假設(shè) 即由于缺陷導(dǎo)致的程序失效極少是由兩個(gè) 或多個(gè) 缺陷的同時(shí)作用引起 程序輸入是多個(gè)獨(dú)立的變量 比較適合邊界值變量之間相互影響時(shí) 效果不好 人的身高體重 邊界值分析與等價(jià)類劃分效果與測(cè)試人員的經(jīng)驗(yàn)密切相關(guān) 組合分析法 考慮思想 錯(cuò)誤的主要來(lái)源來(lái)自于各種因素的組合 而非一個(gè)因素 優(yōu)點(diǎn) 實(shí)現(xiàn)成本低 維護(hù)成本低 容易自動(dòng)化 錯(cuò)誤發(fā)現(xiàn)效率高 測(cè)試方式靈活 作業(yè) 1 閱讀偽代碼 完成下列任務(wù) 1 畫(huà)出程序流程圖 盒圖 2 按照不同的覆蓋準(zhǔn)則 確定測(cè)試用例的數(shù)量 并設(shè)計(jì)測(cè)試用例 語(yǔ)句覆蓋判定覆蓋條件覆蓋路徑覆蓋 3 畫(huà)出控制流圖 用基本路徑法設(shè)計(jì)測(cè)試用例 IfX 8andY 5thenifX 16orY 10thenZ 3endifElseIfX 0orY 0thenZ 2ElseZ 1endifendif 2 用邊界值法設(shè)計(jì)以下函數(shù)的測(cè)試用例 1 y ABS x 2 y sin x 3 用等價(jià)類劃分法測(cè)試成績(jī)輸入文本框設(shè)計(jì)測(cè)試用例 1 百分制 2 五級(jí)制 4 需要測(cè)試學(xué)號(hào)輸入文本框 學(xué)號(hào)結(jié)構(gòu)為8位數(shù)字字符組成 前兩位是年代后兩位 3 4兩位是專業(yè)編號(hào) 1 50 5 6位為班級(jí)編號(hào) 1 20 7 8位為50以內(nèi)的流水號(hào) 作業(yè) 1 為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例 要求分別滿足語(yǔ)句覆蓋 判定覆蓋 條件覆蓋和路徑覆蓋設(shè)計(jì)測(cè)試用例 2 用基本路徑法設(shè)計(jì)測(cè)試用例 X 8 Y 5 X 0 Y 0 Z 1 Z 2 F T F T X 16 Y 10 Z 3 F T 劃分等價(jià)類 編號(hào) 判定表又稱決策表定義 把輸入條件各種組合以及對(duì)應(yīng)輸出值都羅列出來(lái)而形成的表格 是一個(gè)典型的組合分析方法把問(wèn)題的各種可能都列舉出來(lái) 簡(jiǎn)明且不會(huì)遺漏 是最嚴(yán)格 最具有邏輯性的黑盒測(cè)試方法 五判定表方法 DecisionTable 判定表的結(jié)構(gòu) 1 基本概念 電力公司將用戶分為兩類 單費(fèi)率用戶 實(shí)行單一電價(jià)復(fù)費(fèi)率用戶 在規(guī)定時(shí)間內(nèi)實(shí)行優(yōu)惠電價(jià) 在其他時(shí)間內(nèi)實(shí)行普通電價(jià) 條件樁 問(wèn)題的所有條件 動(dòng)作樁 所有可能采取的操作 規(guī)則 一個(gè)條件組合的取值及其執(zhí)行的操作 動(dòng)作 通常使用 0 和 1 表示不執(zhí)行動(dòng)作和執(zhí)行動(dòng)作條件 通常使用 0 和 1 表示條件不滿足和條件滿足 判定表的結(jié)構(gòu) 條件樁 動(dòng)作樁 行動(dòng)項(xiàng) 在條件條目下采取的動(dòng)作或操作 在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一個(gè)規(guī)則 條件項(xiàng) 條件樁的所有可能取值 真 假 或其它 測(cè)試用例集 1 判定表中條件的組合方式有多少 就有多少條規(guī)則 就有多少列 每列對(duì)應(yīng)一個(gè)測(cè)試用例 2 如果條件都是二叉條件 稱為有限條目判定表 如果條件有多個(gè)值 甚至對(duì)應(yīng)于變量的等價(jià)類 稱為擴(kuò)展條目判定表 如條件 ATM交易類型 可以取 存款 查詢 和 取款 三種值 3 由于判定表是機(jī)械地強(qiáng)制完備的 因此具有測(cè)試用例的完整性 2 判定表的特點(diǎn) 輸入 輸出 輸入的等價(jià)類 功能處理 測(cè)試用例 3 判定表的應(yīng)用 測(cè)試用例 構(gòu)造判定表可采用以下5個(gè)步驟 1 列出條件樁和動(dòng)作樁 2 確定規(guī)則的個(gè)數(shù) 3 填入條件項(xiàng) 4 填入動(dòng)作項(xiàng) 得到初始判定表 5 簡(jiǎn)化判定表 合并相似規(guī)則 4 判定表的構(gòu)造及化簡(jiǎn) 判定表的化簡(jiǎn)對(duì)于n個(gè)條件的判定表 相應(yīng)有2n個(gè)規(guī)則 每個(gè)條件分別取真 假值 判定表的化簡(jiǎn)是以合并相似規(guī)則為目標(biāo)若表中有兩條以上規(guī)則具有相同的動(dòng)作 并且在條件項(xiàng)之間存在極為相似的關(guān)系 便可以合并 例題 打印機(jī)能否打印出正確的內(nèi)容有多個(gè)影響因素 包括驅(qū)動(dòng)程序 紙張 墨粉等 打印機(jī)會(huì)自動(dòng)提示 驅(qū)動(dòng)是否正確 提示沒(méi)有紙張 提示沒(méi)有墨粉 根據(jù)這些信息決定決定是否打印內(nèi)容 請(qǐng)?jiān)O(shè)計(jì)出影響條件與動(dòng)作的判定表并化簡(jiǎn) 為了簡(jiǎn)化問(wèn)題 不考慮中途斷電 卡紙等因素 假定優(yōu)先警告缺紙 然后警告沒(méi)有墨粉 最后警告驅(qū)動(dòng)程序不正確 規(guī)則數(shù) 8 構(gòu)造判定表 簡(jiǎn)化判定表 例題 某商場(chǎng)舉行一次假日商品促銷活動(dòng) 在活動(dòng)期間 對(duì)持會(huì)員卡的顧客 實(shí)行8 5折優(yōu)惠 滿1000元實(shí)行7折優(yōu)惠 對(duì)其他顧客 消費(fèi)滿1000元的 實(shí)行9折優(yōu)惠 并免費(fèi)辦理會(huì)員卡 請(qǐng)給出相應(yīng)的判定表及測(cè)試用例集 1 規(guī)則 4 判定表 測(cè)試用例集 什么是因果關(guān)系 拿破侖說(shuō) 六 因果圖方法 失一個(gè)釘子 壞了一只蹄鐵 壞了一只蹄鐵 折了一匹戰(zhàn)馬 折了一匹戰(zhàn)馬 傷了一位騎士 傷了一位騎士 輸了一場(chǎng)戰(zhàn)斗 輸了一場(chǎng)戰(zhàn)斗 亡了一個(gè)帝國(guó) 這就是因果關(guān)系 因果圖方法 Cause effectDiagram 是借助圖形 分析輸入條件的各種組合 每種組合是 因 必然有一個(gè)輸出為 果 因果圖方法最終生成判定表 適用檢查程序輸入條件的各種組合情況 因果圖中使用了簡(jiǎn)單的邏輯符號(hào) 以直線聯(lián)接左右結(jié)點(diǎn) 左結(jié)點(diǎn)表示輸入狀態(tài) 或稱原因 右結(jié)點(diǎn)表示輸出狀態(tài) 或稱結(jié)果 1 因果圖 ci表示原因 通常置于圖的左部 ei表示結(jié)果 通常在圖的右部 ci和ei均可取值0或1 0表示某狀態(tài)不出現(xiàn) 1表示某狀態(tài)出現(xiàn) c1 e1 恒等 c1 e1 非 恒等 若ci是1 則ei也是1 否則ei為0 非 若ci是1 則ei是0 否則ei是1 c2 e1 或or c1 c3 c2 e1 與and c1 c3 或 若c1或c2或c3是1 則ei是1 否則ei為0 或 可有任意個(gè)輸入 與 若c1 c2和c2都是1 則ei為1 否則ei為0 與 也可有任意個(gè)輸入 因果圖 2 狀態(tài)約束 狀態(tài)相互之間存在依賴關(guān)系 稱為約束 輸入 輸出狀態(tài)之間都存在約束 在因果圖中 用特定的符號(hào)標(biāo)明這些約束 1 輸入條件之間的約束有以下4類 E約束 異 A B至多有一個(gè)為1 即A和B不能同時(shí)為1 I約束 或 A B至少有一個(gè)必須是1 即A B不能同時(shí)為0 A B I 異 或 O約束 唯一 A B中有且僅有1個(gè)為1 R約束 要求 A是1時(shí) B必須是1 即A B必須相同 A B R 唯一 要求 2 輸出條件約束類型輸出條件的約束只有M約束 強(qiáng)制 若結(jié)果E是1 則結(jié)果F強(qiáng)制為1 E F M 強(qiáng)制 約束條件 3 利用因果圖生成測(cè)試用例的步驟 分析 分析 關(guān)聯(lián) 原因與原因之間 原因與結(jié)果之間的組合有不可能出現(xiàn)的情況 找出這些約束或限制條件 3 利用因果圖生成測(cè)試用例的步驟 分析 轉(zhuǎn)換 關(guān)聯(lián) 因果圖轉(zhuǎn)換為判定表 3 利用因果圖生成測(cè)試用例的步驟 分析 轉(zhuǎn)換 輸出 關(guān)聯(lián) 判定表的每一列轉(zhuǎn)化成一個(gè)測(cè)試用例 3 利用因果圖生成測(cè)試用例的步驟 例1 某軟件規(guī)格說(shuō)明書(shū)包含這樣的要求 第一列字符必須是A或B 第二列字符必須是一個(gè)數(shù)字 在此情況下進(jìn)行文件的修改 但如果第一列字符不正確 則給出信息L 如果第二列字符不是數(shù)字 則給出信息M 請(qǐng)畫(huà)出因果圖 生成判定表和測(cè)試用例 原因 1 第一列字符是A 2 第一列字符是B 3 第二列字符是一數(shù)字 結(jié)果 21 修改文件 22 給出信息L 23 給出信息M 1 分析 對(duì)應(yīng)的因果圖 其對(duì)應(yīng)的因果圖如下 11為中間節(jié)點(diǎn) 考慮到原因1和原因2不可能同時(shí)為1 因此在因果圖上施加E約束 如圖所示 根據(jù)因果圖建立判定表 把判定表的每一列拿出來(lái)作為依據(jù) 設(shè)計(jì)測(cè)試用例 4 使用因果圖法的優(yōu)點(diǎn) 1 充分考慮了輸入的各種組合以及它們之間的相互制約關(guān)系 2 可以幫助測(cè)試人員按照一定的步驟 高效率的開(kāi)發(fā)測(cè)試用例 3 因果圖法將自然語(yǔ)言規(guī)格說(shuō)明轉(zhuǎn)化成形式語(yǔ)言規(guī)格說(shuō)明的一種方法 可以找出規(guī)格說(shuō)明存在的不完整性和二義性 案例分析 有一個(gè)處理單價(jià)為1元5角的盒裝飲料的自動(dòng)售貨機(jī)軟件 若投入1元5角硬幣 按下 可樂(lè) 雪碧 或 紅茶 按鈕 相應(yīng)的飲料就送出來(lái) 若投入的是兩元硬幣 在送出飲料的同時(shí)退還5角硬幣 1 分析 2 因果圖 3 判定表 4 設(shè)計(jì)測(cè)試用例 案例分析 中國(guó)象棋中走馬的測(cè)試用例設(shè)計(jì)為例學(xué)習(xí)因果圖的使用方法 下面未注明的均指的是對(duì)馬的說(shuō)明 一 分析中國(guó)象棋中走馬的實(shí)際情況 如果落點(diǎn)在棋盤(pán)外 則不移動(dòng)棋子 如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型 則不移動(dòng)棋子 如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子 絆馬腿 則不移動(dòng)棋子 如果不屬于1 3條 落點(diǎn)處有己方棋子 則不移動(dòng)棋子 如果不屬于1 3條 落點(diǎn)處無(wú)棋子 則移動(dòng)棋子 如果不屬于1 3條 落點(diǎn)處為對(duì)方棋子 非老將 則移動(dòng)棋子并除去對(duì)方棋子 如果不屬于1 3條 且落點(diǎn)處為對(duì)方老將 則移動(dòng)棋子 并提示戰(zhàn)勝對(duì)方 游戲結(jié)束 二 根據(jù)分析明確原因和結(jié)果 原因 C1 落點(diǎn)在棋盤(pán)上 C2 落點(diǎn)與起點(diǎn)構(gòu)成日字 C3 落點(diǎn)方向的鄰近交叉點(diǎn)無(wú)棋子 C4 落點(diǎn)處為自己方棋子 C5 落點(diǎn)處無(wú)棋子 C6 落點(diǎn)處為對(duì)方棋子 非老將 C7 落點(diǎn)處為對(duì)方老將 結(jié)果 E1 不移動(dòng)棋子E2 移動(dòng)棋子E3 移動(dòng)棋子 并除去對(duì)方棋子E4 移動(dòng)棋子 并提示戰(zhàn)勝對(duì)方 結(jié)束游戲 中間狀態(tài) 11 落點(diǎn)合理且無(wú)半馬腿 可以前進(jìn) 添加中間節(jié)點(diǎn)11 目的是作為導(dǎo)出結(jié)果的進(jìn)一步原因 簡(jiǎn)化因果圖導(dǎo)出的判定表一 判定表分解 七 正交試驗(yàn)法 正交試驗(yàn)法在各個(gè)領(lǐng)域都有廣泛的應(yīng)用 是一種高效 快速 經(jīng)濟(jì)的試驗(yàn)設(shè)計(jì)方法 在應(yīng)用系統(tǒng)測(cè)試中 如果對(duì)系統(tǒng)采用組合測(cè)試 工作量非常大 這就需要從大量的數(shù)據(jù)中選出適量的具有代表性的測(cè)試用例 正交試驗(yàn)法可以解決用例選擇這一問(wèn)題 如圖是個(gè)人信息查詢系統(tǒng)中的一個(gè)窗口 要測(cè)試的控件有三個(gè) 姓名 身份證號(hào)碼 手機(jī)號(hào)碼 而每個(gè)因素的狀態(tài)有兩個(gè) 填與不填 請(qǐng)用正交試驗(yàn)法選擇測(cè)試用例 1 確定影響因子表中的因素?cái)?shù) 3 即至少有3個(gè)因素?cái)?shù) 行數(shù)最少為3 2 1 1 4 2 選擇正交表從正交表中查找 結(jié)果為L(zhǎng)4 23 3 變量映射 4 測(cè)試用例填寫(xiě)姓名 填寫(xiě)身份證號(hào) 填寫(xiě)手機(jī)號(hào)填寫(xiě)姓名 不填身份證號(hào) 不填手機(jī)號(hào)不填姓名 填寫(xiě)身份證號(hào) 不填手機(jī)號(hào)不填姓名 不填身份證號(hào) 填寫(xiě)手機(jī)號(hào)根據(jù)其他測(cè)試方法增補(bǔ)以下測(cè)試用例作為補(bǔ)充 不填姓名 不填身份證號(hào) 不填手機(jī)號(hào)從測(cè)試用例可以看出 如果按每個(gè)因素兩個(gè)水平數(shù)來(lái)考慮的話 需要8個(gè)測(cè)試用例 而通過(guò)正交實(shí)驗(yàn)法只需要5個(gè) 減少了測(cè)試用例個(gè)數(shù) 用最小的測(cè)試用例集獲得最大的測(cè)試覆蓋率 八功能圖法 使用功能圖形式化的方式表示程序的功能 并機(jī)械地生成功能圖的測(cè)試用例 功能圖模型 狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù) 由輸入和當(dāng)前的狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài) 邏輯功能模型用于表示狀態(tài)輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系 只適合于描述靜態(tài)說(shuō)明 輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定 實(shí)例 Windows的屏幕保護(hù)程序測(cè)試 空閑狀態(tài) 等待輸入密碼 ESC鍵按下顯示密碼輸入框 初始化屏幕 不正確的密碼清空密碼輸入框 正確的密碼屏幕初始化 程序流程圖 1 狀態(tài)遷移圖 空閑狀態(tài) 等待輸入密碼 初始化屏幕 ESC鍵按下 正確的密碼輸入 錯(cuò)誤的密碼輸入 2 邏輯功能表 3 根據(jù)邏輯功能表 按照輸入輸出信息及狀態(tài)來(lái)生成所需的節(jié)點(diǎn)和路徑 形成基本路徑組合 4 利用基本路徑測(cè)試法來(lái)設(shè)計(jì)測(cè)試用例 九錯(cuò)誤推測(cè)法 有經(jīng)驗(yàn)的測(cè)試人員根據(jù)自己的經(jīng)驗(yàn)和直覺(jué)推測(cè)出程序可能存在的錯(cuò)誤 進(jìn)行針對(duì)性測(cè)試 基于如下思想 某處發(fā)現(xiàn)缺陷 則可能會(huì)隱藏更多的缺陷 列出所有可能出現(xiàn)的錯(cuò)誤和容易發(fā)現(xiàn)錯(cuò)誤的地方 然后依據(jù)測(cè)試人員經(jīng)驗(yàn)做出選擇 該方法不是一個(gè)系統(tǒng)方法 可以作為其他方法的輔助 具體實(shí)施 如果軟件要求輸入數(shù)字 就輸入字母 如果軟件只接受正數(shù) 就輸入負(fù)數(shù) 如果輸入時(shí)間 就輸入五位數(shù)以上的年份等等 用好錯(cuò)誤推測(cè)法應(yīng)具備如下條件 充分了解業(yè)務(wù)具有開(kāi)發(fā)和測(cè)試的實(shí)際經(jīng)驗(yàn)掌握全面測(cè)試技術(shù)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 軟件工程 實(shí)現(xiàn) 測(cè)試 方法
鏈接地址:http://www.hcyjhs8.com/p-6051758.html