軟件工程第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 取值為真為T1 取值為假為F1條件b 0 取值為真為T2 取值為假為F2對(duì)于判定N 條件a 1 取值為真為T3 取值為假為F3條件c 1 取值為真為T4 取值為假為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 取值為真為T1 取值為假為F1條件b 0 取值為真為T2 取值為假為F2對(duì)于第二個(gè)判定條件 條件a 0 取值為真為T3 取值為假為F3條件c 1 取值為真為T4 取值為假為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ù) 引言 本章將開始講黑盒測(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ī)格書 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開頭有效等價(jià)類 9 外線號(hào)碼無(wú)效等價(jià)類 非9開頭 外線號(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 常見的邊界值 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 畫出程序流程圖 盒圖 2 按照不同的覆蓋準(zhǔn)則 確定測(cè)試用例的數(shù)量 并設(shè)計(jì)測(cè)試用例 語(yǔ)句覆蓋判定覆蓋條件覆蓋路徑覆蓋 3 畫出控制流圖 用基本路徑法設(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ō)明書包含這樣的要求 第一列字符必須是A或B 第二列字符必須是一個(gè)數(shù)字 在此情況下進(jìn)行文件的修改 但如果第一列字符不正確 則給出信息L 如果第二列字符不是數(shù)字 則給出信息M 請(qǐng)畫出因果圖 生成判定表和測(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è)試人員按照一定的步驟 高效率的開發(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)在棋盤外 則不移動(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)在棋盤上 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è)試用例填寫姓名 填寫身份證號(hào) 填寫手機(jī)號(hào)填寫姓名 不填身份證號(hào) 不填手機(jī)號(hào)不填姓名 填寫身份證號(hào) 不填手機(jī)號(hào)不填姓名 不填身份證號(hào) 填寫手機(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ù)具有開發(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)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 軟件工程 實(shí)現(xiàn) 測(cè)試 方法
鏈接地址:http://kudomayuko.com/p-6051758.html