黑盒測(cè)試-測(cè)試人員的數(shù)學(xué)知識(shí)_第1頁
黑盒測(cè)試-測(cè)試人員的數(shù)學(xué)知識(shí)_第2頁
黑盒測(cè)試-測(cè)試人員的數(shù)學(xué)知識(shí)_第3頁
黑盒測(cè)試-測(cè)試人員的數(shù)學(xué)知識(shí)_第4頁
黑盒測(cè)試-測(cè)試人員的數(shù)學(xué)知識(shí)_第5頁
已閱讀5頁,還剩95頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、黑盒測(cè)試 測(cè)試人員的數(shù)學(xué)知識(shí)黑盒測(cè)試的概念黑盒測(cè)試的實(shí)施過程黑盒測(cè)試的數(shù)學(xué)知識(shí) 測(cè)試用例設(shè)計(jì)技術(shù)黑盒測(cè)試黑盒測(cè)試的概念 什么是黑盒測(cè)試? 黑盒測(cè)試又稱功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于規(guī)格說明書的測(cè)試,是一種從用戶觀點(diǎn)出發(fā)的測(cè)試。 黑盒測(cè)試示意圖 測(cè)試人員把被測(cè)程序當(dāng)作一個(gè)黑盒子。黑盒測(cè)試黑盒測(cè)試主要測(cè)試的錯(cuò)誤類型有:不正確或遺漏的功能;接口、界面錯(cuò)誤; 性能錯(cuò)誤;數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)訪問錯(cuò)誤;初始化或終止條件錯(cuò)誤等等。黑盒測(cè)試黑盒測(cè)試用于回答以下問題:1)如何測(cè)試功能的有效性?2)何種類型的輸入會(huì)產(chǎn)生好的測(cè)試用例?3)系統(tǒng)是否對(duì)特定的輸入值尤其敏感?4)如何分隔數(shù)據(jù)類的邊界?5)系統(tǒng)能夠承受何種數(shù)據(jù)

2、率和數(shù)據(jù)量?6)特定類型的數(shù)據(jù)組合會(huì)對(duì)系統(tǒng)產(chǎn)生何種影響?黑盒測(cè)試運(yùn)用黑盒測(cè)試方法,可以導(dǎo)出滿足以下標(biāo)準(zhǔn)的測(cè)試用例集:1)所設(shè)計(jì)的測(cè)試用例能夠減少達(dá)到合理測(cè)試所需的附加測(cè)試用例數(shù);2)所設(shè)計(jì)的測(cè)試用例能夠告知某些類型錯(cuò)誤的存在或不存在,而不是僅僅與特定測(cè)試相關(guān)的錯(cuò)誤。 黑盒測(cè)試用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。但這是不可能的,因?yàn)楦F舉測(cè)試數(shù)量太大,無法完成。黑盒測(cè)試假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法進(jìn)行窮舉測(cè)試:可能采用的測(cè)試數(shù)據(jù)組: 232232264如果

3、測(cè)試一 組數(shù)據(jù)需要1毫秒,一年工作365 24小時(shí),完成所有測(cè)試需5億年。因此,我們只能在大量可能的數(shù)據(jù)中,選取其中一部分作為測(cè)試用例。黑盒測(cè)試黑盒測(cè)試的實(shí)施過程(1)測(cè)試計(jì)劃階段(2)測(cè)試設(shè)計(jì)階段依據(jù)程序需求規(guī)格說明書或用戶手冊(cè),按照一定規(guī)范化的方法進(jìn)行軟件功能劃分和設(shè)計(jì)測(cè)試用例。(3)測(cè)試執(zhí)行階段按照設(shè)計(jì)的測(cè)試用例執(zhí)行測(cè)試;自由測(cè)試(作為測(cè)試用例測(cè)試的補(bǔ)充)。(4)測(cè)試總結(jié)階段測(cè)試人員的數(shù)學(xué)知識(shí)集合論1 集合與成員 M30 = 4月,6月,9月,11月2 集合的定義 列出集合元素 如M30 給出集合元素判定規(guī)則 如 Y=年| 1900年100 無效等價(jià)類 成績(jī)0等價(jià)類劃分在輸入條件規(guī)定了輸

4、入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。等價(jià)類劃分3)劃分等價(jià)類的方法在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例:輸入條件說明學(xué)歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個(gè)值作為四個(gè)有效等價(jià)類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類。等價(jià)類劃分在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。在確知已劃分的等價(jià)類中各元素

5、在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步的劃分為更小的等價(jià)類。等價(jià)類劃分4)設(shè)計(jì)測(cè)試用例在確立了等價(jià)類后,可建立等價(jià)類表,列出所有劃分出的等價(jià)類輸入條件 有效等價(jià)類 無效等價(jià)類. . . . .然后從劃分出的等價(jià)類中按以下三個(gè)原則設(shè)計(jì)測(cè)試用例:為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止。設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。等價(jià)類劃分舉例例1:某程序規(guī)定:“輸入三個(gè)整數(shù) a 、 b 、 c 分別作為三邊的邊長(zhǎng)構(gòu)成三

6、角形。通過程序判定所構(gòu)成的三角形的類型,當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時(shí),分別作計(jì)算 ”。用等價(jià)類劃分方法為該程序進(jìn)行測(cè)試用例設(shè)計(jì)。(三角形問題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。 )等價(jià)類劃分分析題目中給出和隱含的對(duì)輸入條件的要求: (1)整數(shù) (2)三個(gè)數(shù) (3)非零數(shù)(4)正數(shù) (5)兩邊之和大于第三邊 (6)等腰 (7)等邊 如果 a 、 b 、 c 滿足條件( 1 ) ( 4 ),則輸出下列四種情況之一:如果不滿足條件(5),則程序輸出為 “ 非三角形 ” 。如果三條邊相等即滿足條件(7),則程序輸出為 “ 等邊三角形 ” 。如果只有兩條邊相等、即滿足條件(6

7、),則程序輸出為 “ 等腰三角形 ” 。如果三條邊都不相等,則程序輸出為 “ 一般三角形 ” 。 列出等價(jià)類表并編號(hào) 等價(jià)類劃分等價(jià)類表并編號(hào)(續(xù)上表)邊等價(jià)類劃分覆蓋有效等價(jià)類的測(cè)試用例:a b c 覆蓋等價(jià)類號(hào)碼3 4 5 (1)-(7)4 4 5 (1)-(7),(8)4 5 5 (1)-(7),(9) 5 4 5 (1)-(7),(10)4 4 4 (1)-(7),(11)無效等價(jià)類覆蓋無效等價(jià)類的測(cè)試用例:等價(jià)類劃分例2:設(shè)有一個(gè)檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設(shè)日期限定在1990年1月2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價(jià)

8、類劃分法設(shè)計(jì)測(cè)試用例,來測(cè)試程序的“日期檢查功能”。等價(jià)類劃分1)劃分等價(jià)類并編號(hào)下表等價(jià)類劃分的結(jié)果輸入等價(jià)類有效等價(jià)類無效等價(jià)類日期的類型及長(zhǎng)度6位數(shù)字字符有非數(shù)字字符少于6位數(shù)字字符多于6位數(shù)字字符年份范圍在19902049之間小于1990大于2049月份范圍在0112之間等于00大于12等價(jià)類劃分2)設(shè)計(jì)測(cè)試用例,以便覆蓋所有的有效等價(jià)類在表中列出了3個(gè)有效等價(jià)類,編號(hào)分別為、,設(shè)計(jì)的測(cè)試用例如下:測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋的有效等價(jià)類200211 輸入有效 、無效等價(jià)類3)為每一個(gè)無效等價(jià)類設(shè)計(jì)一個(gè)測(cè)試用例,設(shè)計(jì)結(jié)果如下:測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋的無效等價(jià)類95June 無效輸入 20

9、036 無效輸入 2001006 無效輸入 198912 無效輸入 200401 無效輸入 200100 無效輸入 200113 無效輸入 NextDate 函數(shù)等價(jià)類測(cè)試用例NextDate 函數(shù)包含三個(gè)變量:month 、 day 和 year ,函數(shù)的輸出為輸入日期后一天的日期。 例如,輸入為 2006年3月 7日,則函數(shù)的輸出為 2006年3月8日 。要求輸入變量 month 、 day 和 year 均為整數(shù)值,并且滿足下列條件:(1)1month12(2)1day31(3)1920year2050 NextDate 函數(shù)等價(jià)類測(cè)試用例有效等價(jià)類為:M1月份:1月份12D1日期:1日

10、期31Y1年:1812年2012若條件( 1 ) ( 3 )中任何一個(gè)條件失效,則 NextDate 函數(shù)都會(huì)產(chǎn)生一個(gè)輸出,指明相應(yīng)的變量超出取值范圍,比如 “month 的值不在 1-12 范圍當(dāng)中 ” 。顯然還存在著大量的 year 、 month 、 day 的無效組合, NextDate 函數(shù)將這些組合作統(tǒng)一的輸出: “ 無效輸入日期 ” 。其無效等價(jià)類為:M2月份:月份12D2日期:日期31Y2年:年2012NextDate 函數(shù)等價(jià)類測(cè)試用例弱一般等價(jià)類測(cè)試用例月份 日期 年 預(yù)期輸出 6 15 1912 1912年6月16日強(qiáng)一般等價(jià)類測(cè)試用例同弱一般等價(jià)類測(cè)試用例注:弱有單缺陷

11、假設(shè) 健壯考慮了無效值 NextDate 函數(shù)等價(jià)類測(cè)試用例弱健壯等價(jià)類測(cè)試用例ID 月份 日期 年 預(yù)期輸出WR1 6 15 1912 1912年6月16日WR2 1 15 1912 月份不在112中WR3 13 15 1912 月份不在112中WR4 6 1 1912 日期不在131中WR5 6 32 1912 日期不在131中WR6 6 15 1811 年份不在18122012中WR7 6 15 2013 年份不在18122012中NextDate 函數(shù)等價(jià)類測(cè)試用例強(qiáng)健壯等價(jià)類測(cè)試用例ID 月份 日期 年 預(yù)期輸出SR1 1 15 1912 月份不在112中SR2 6 1 1912 日

12、期不在131中SR3 6 15 1811 年份不在18122012中SR4 1 1 1912 兩個(gè)無效一個(gè)有效SR5 6 1 1811 兩個(gè)無效一個(gè)有效SR6 1 15 1811 兩個(gè)無效一個(gè)有效SR7 1 1 1811 三個(gè)無效傭金問題等價(jià)類測(cè)試用例它是根據(jù)傭金函數(shù)的輸出值域定義等價(jià)類,來改進(jìn)測(cè)試用例集合輸出銷售額1000元 傭金1010001800 傭金=220+(銷售額-1800)*20%測(cè)試用例 槍機(jī)(45) 槍托(30) 槍管(25) 銷售額 傭金 1 5 5 5 500 50 2 15 15 15 1500 175 3 25 25 25 2500 360 根據(jù)輸出域選擇輸入值,使落

13、在輸出域等價(jià)類內(nèi),可以結(jié)合弱健壯測(cè)試用例結(jié)合。問題討論問題:給出下面的有效和無效等價(jià)類輸入條件:“統(tǒng)計(jì)全國(guó)各省、市、自治區(qū)的人口” 輸入條件:“標(biāo)識(shí)符應(yīng)以字母開頭” 輸入條件:長(zhǎng)度為1-20的字符串輸入條件:數(shù)據(jù)庫(kù)中的值域, CHAR(20), NOT NULL邊界值分析法 邊界值分析方法是對(duì)等價(jià)類劃分方法的補(bǔ)充. 1)邊界值分析方法的考慮:長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界

14、情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù).邊界值分析法與等價(jià)劃分的區(qū)別邊界值分析不是從某等價(jià)類中隨便挑一個(gè)作為代表,而是使這個(gè)等價(jià)類的每個(gè)邊界都要作為測(cè)試條件。邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測(cè)試情況。邊界值分析法(2)基于邊界值分析方法選擇測(cè)試用例的原則1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。例如,如果程序的規(guī)格說明中規(guī)定:“重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為”。作為測(cè)試用例,我們應(yīng)取10及50,還應(yīng)取10.01,4

15、9.99,9.99及50.01等。邊界值分析法2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)。比如,一個(gè)輸入文件應(yīng)包括1255個(gè)記錄,則測(cè)試用例可取1和255,還應(yīng)取0及256等。邊界值分析法3)將規(guī)則1)和2)應(yīng)用于輸出條件,即設(shè)計(jì)測(cè)試用例使輸出值達(dá)到邊界值及其左右的值。 例如,某程序的規(guī)格說明要求計(jì)算出“每月保險(xiǎn)金扣除額為0至1165.25元”,其測(cè)試用例可取0.00及1165.24、還可取一0.01及116526等。再如一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次”最少顯示1條、最多顯示4條情報(bào)摘要”,這時(shí)我們應(yīng)考慮的測(cè)試用例包括1和4,還應(yīng)包

16、括0和5等。 邊界值分析法5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。7)分析規(guī)格說明,找出其它可能的邊界條件。邊界值分析法 - 舉例(3)例3現(xiàn)有一個(gè)學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,產(chǎn)生成績(jī)報(bào)告的程序。其規(guī)格說明如下:程序的輸入文件由一些有80個(gè)字符的記錄組成,如右圖所示,所有記錄分為3組:邊界值分析法 - 舉例 標(biāo)題: 這一組只有一個(gè)記錄,其內(nèi)容為輸出成績(jī)報(bào)告的名字。邊界值分析法 - 舉例試卷各題標(biāo)準(zhǔn)答案記錄: 每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字“

17、2”。該組的第一個(gè)記錄的第1至第3個(gè)字符為題目編號(hào)(取值為1一999)。第10至第59個(gè)字符給出第1至第50題的答案(每個(gè)合法字符表示一個(gè)答案)。該組的第2,第3個(gè)記錄相應(yīng)為第51至第100,第101至第150,題的答案。邊界值分析法 - 舉例每個(gè)學(xué)生的答卷描述: 該組中每個(gè)記錄的第80個(gè)字符均為數(shù)字“3”。每個(gè)學(xué)生的答卷在若干個(gè)記錄中給出。如甲的首記錄第1至第9字符給出學(xué)生姓名及學(xué)號(hào),第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數(shù)超過50,則第2,第3紀(jì)錄分別給出他的第51至第100,第101至第150題的解答。然后是學(xué)生乙的答卷記錄。學(xué)生人數(shù)不超過200,試題數(shù)不超過99

18、9。 邊界值分析法 - 舉例程序的輸出有4個(gè)報(bào)告:a)按學(xué)號(hào)排列的成績(jī)單,列出每個(gè)學(xué)生的成績(jī)、名次。b)按學(xué)生成績(jī)排序的成績(jī)單。c)平均分?jǐn)?shù)及標(biāo)準(zhǔn)偏差的報(bào)告。d)試題分析報(bào)告。按試題號(hào)排序,列出各題學(xué)生答對(duì)的百分比。 解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應(yīng)的測(cè)試用例。邊界值分析法 - 舉例邊界值分析法 - 舉例邊界值分析法 - 舉例右表為輸出條件及相應(yīng)的測(cè)試用例表。 錯(cuò)誤推測(cè)法 錯(cuò)誤推測(cè)法: 基于經(jīng)驗(yàn)和直覺推測(cè)程序中所有可能存在的各種錯(cuò)誤, 從而有針對(duì)性的設(shè)計(jì)測(cè)試用例的方法。錯(cuò)誤推測(cè)方法的基本思想: 列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根

19、據(jù)他們選擇測(cè)試用例。例如, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯(cuò)誤的情況。可選擇這些情況下的例子作為測(cè)試用例。錯(cuò)誤推測(cè)法例如,針對(duì)例3,采用錯(cuò)誤推測(cè)法還可補(bǔ)充設(shè)計(jì)一些測(cè)試用例:1、 程序是否把空格作為回答2、 在回答記錄中混有標(biāo)準(zhǔn)答案記錄3、 除了標(biāo)題記錄外,還有一些的記錄最后一個(gè)字符即不是2也不是34、 有兩個(gè)學(xué)生的學(xué)號(hào)相同5、試題數(shù)是負(fù)數(shù)。 錯(cuò)誤推測(cè)法再如,測(cè)試一個(gè)對(duì)線性表(比如數(shù)組)進(jìn)行排序的程序,可推測(cè)列出以下幾項(xiàng)需要特別測(cè)試的情況:1)輸入的線性表為空表;2)表中只含有一個(gè)元素;3)輸入表中所有元素已排好序;4)輸入表已按逆序排好;5)

20、輸入表中部分或全部元素相同。因果圖方法 前面介紹的等價(jià)類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等。考慮輸入條件之間的相互組合,可能會(huì)產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價(jià)類,他們之間的組合情況也相當(dāng)多. 因此必須考慮采用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來考慮設(shè)計(jì)測(cè)試用例。這就需要利用因果圖( Cause一Effect Graphics )方法。采用因果圖方法能夠幫助我們按一定步驟,高效率地選擇測(cè)試用例,同時(shí)還能為我們指出,程序規(guī)格說明描述中存在著什么問題。 因果圖介紹4

21、種符號(hào)分別表示了規(guī)格說明中向4種因果關(guān)系。因果圖介紹因果圖中使用了簡(jiǎn)單的邏輯符號(hào),以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。 Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。 因果圖概念關(guān)系恒等:若ci是1,則ei也是1;否則ei為0。非:若ci是1,則ei是0;否則ei是1?;颍喝鬰1或c2或c3是1,則ei是1;否則ei為0?!盎颉笨捎腥我鈧€(gè)輸入。與:若c1和c2都是1,則ei為1;否則ei為0?!芭c”也可有任意個(gè)輸入。因果圖概念約束輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系

22、,稱為約束。例如, 某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。因果圖概念因果圖概念輸入條件的約束有以下4類: E約束(異):a和b中至多有一個(gè)可能為1,即a和b不能同時(shí)為1。 I約束(或):a、b和c中至少有一個(gè)必須是1,即 a、b 和c不能同時(shí)為0。 O約束(唯一);a和b必須有一個(gè),且僅有1個(gè)為1。R約束(要求):a是1時(shí),b必須是1,即不可能a是1時(shí)b是0。輸出條件約束類型輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。因果圖方法因果圖方法最終生成的是判定表。它適合于檢查程序輸入條件的各種組合情況。利用因果圖生成測(cè)

23、試用例的基本步驟:(1) 分析軟件規(guī)格說明描述中, 那些是原因(即輸入條件或輸入條件的等價(jià)類),那些是結(jié)果(即輸出條件), 并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。(2) 分析軟件規(guī)格說明描述中的語義.找出原因與結(jié)果之間, 原因與原因之間對(duì)應(yīng)的關(guān)系. 根據(jù)這些關(guān)系,畫出因果圖。(3) 由于語法或環(huán)境限制, 有些原因與原因之間,原因與結(jié)果之間的組合情況不不可能出現(xiàn). 為表明這些特殊情況, 在因果圖上用一些記號(hào)表明約束或限制條件。(4) 把因果圖轉(zhuǎn)換為判定表。(5) 把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例。因果圖方法舉例例4:某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是

24、一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。解答:根據(jù)題意,原因和結(jié)果如下:因果圖方法舉例原因: 1第一列字符是A; 2第一列字符是B; 3第二列字符是一數(shù)字。結(jié)果: 21修改文件; 22 給出信息L; 23給出信息M。因果圖方法舉例其對(duì)應(yīng)的因果圖如下: 11為中間節(jié)點(diǎn);考慮到原因1和原因2不可能同時(shí)為1,因此在因果圖上施加E約束。原因: 1第一列字符是A; 2第一列字符是B; 3第二列字符是一數(shù)字。結(jié)果: 21修改文件; 22 給出信息L; 23給出信息M。根據(jù)因果圖建立判定表。 表中8種情況的左面兩列情況中,原因和原因同時(shí)

25、為1,這是不可能出現(xiàn)的,故應(yīng)排除這兩種情況。表的最下一欄給出了6種情況的測(cè)試用例,這是我們所需要的數(shù)據(jù)。 因果圖方法舉例例5:有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。 其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,押下橙汁或啤酒的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個(gè)顯示零錢找完的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示零錢找完的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。因果圖方法舉例分析這一段說明,列出原因和結(jié)果原因:1.售貨機(jī)有零錢找2.投入1元硬幣3.投入5角硬幣 4.押下橙汁按鈕5.押下啤酒按鈕 結(jié)果:

26、21. 售貨機(jī)零錢找完燈亮 22. 退還1元硬幣23. 退還5角硬幣 24. 送出橙汁飲料25. 送出啤酒飲料畫出因果圖,如圖所示。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處理的中間狀態(tài)。中間結(jié)點(diǎn): 11. 投入1元硬幣且押下飲料按鈕 12. 押下橙汁或啤酒的按鈕 13. 應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找 14. 錢已付清轉(zhuǎn)換成判定表: 因果圖方法舉例在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,刪去。第16列與第32列因什么動(dòng)作也沒做,也刪去。最后可根據(jù)剩下的16列作為確定測(cè)試用例的依據(jù)。因果圖方法小結(jié)因果圖方法是一個(gè)非常有效的黑盒測(cè)試方法,它能夠生成沒有重

27、復(fù)性的且發(fā)現(xiàn)錯(cuò)誤能力強(qiáng)的測(cè)試用例,而且對(duì)輸入、輸出同時(shí)進(jìn)行了分析。從因果圖生成的測(cè)試用例(局部,組合關(guān)系下的)包括了所有輸入數(shù)據(jù)的取TRUE與取FALSE的情況,構(gòu)成的測(cè)試用例數(shù)目達(dá)到最少,且測(cè)試用例數(shù)目隨輸入數(shù)據(jù)數(shù)目的增加而線性地增加。如果哪個(gè)開發(fā)項(xiàng)目在設(shè)計(jì)階段就采用了判定表,也就不必再畫因果圖,而是可以直接利用判定表設(shè)計(jì)測(cè)試用例了。判定表驅(qū)動(dòng)測(cè)試方法前面因果圖方法中已經(jīng)用到了判定表。判定表(Decision Table)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的工具。在程序設(shè)計(jì)發(fā)展的初期,判定表就已被當(dāng)作編寫程序的輔助工具了,因?yàn)樗梢园褟?fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確。判

28、定表驅(qū)動(dòng)測(cè)試方法下表是一張關(guān)于科技書閱讀指南的判定驅(qū)動(dòng)表:3個(gè)問題8種情況判定表組成判定表通常由四個(gè)部分組成:條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)判定表組成判定表通常由四個(gè)部分組成:條件樁(Condition Stub):列出了問題的所有條件,通常認(rèn)為列出得條件的次序無關(guān)緊要。動(dòng)作樁(Action Stub):列出了問題規(guī)定可能采取的操作,這些操作的排列順序沒有約束。條件項(xiàng)(Condition Entry):列出針對(duì)它左列條件的取值,在所有可能情況下的真假值。動(dòng)作項(xiàng)(Action Entry):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則及規(guī)則合并規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱

29、為規(guī)則。在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項(xiàng)和動(dòng)作項(xiàng)有多少列?;?jiǎn):就是規(guī)則合并有兩條或多條規(guī)則具有相同的動(dòng)作,并且其條件項(xiàng)之間存在著極為相似的關(guān)系。規(guī)則及規(guī)則合并舉例如右圖左端,兩規(guī)則動(dòng)作項(xiàng)一樣,條件項(xiàng)類似,在1、2條件項(xiàng)分別取Y、N時(shí),無論條件3取何值,都執(zhí)行同一操作。即要執(zhí)行的動(dòng)作與條件3無關(guān)。于是可合并?!?”表示與取值無關(guān)。規(guī)則及規(guī)則合并舉例與上類似,右圖中,無關(guān)條件項(xiàng)“-”可包含其他條件項(xiàng)取值,具有相同動(dòng)作的規(guī)則可合并判定表驅(qū)動(dòng)測(cè)試方法判定表的建立步驟:(根據(jù)軟件規(guī)格說明)確定規(guī)則的個(gè)數(shù).假如有n個(gè)條件。每個(gè)條

30、件有兩個(gè)取值(0,1),故有2n種規(guī)則。列出所有的條件樁和動(dòng)作樁。填入條件項(xiàng)。填入動(dòng)作項(xiàng)。等到初始判定表。簡(jiǎn)化.合并相似規(guī)則(相同動(dòng)作)。建立判定表舉例例5:?jiǎn)栴}要求:”對(duì)功率大于50馬力的機(jī)器、維修記錄不全或已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理” 。這里假定,“維修記錄不全”和“優(yōu)先維修處理”均已在別處有更嚴(yán)格的定義 。請(qǐng)建立判定表。建立判定表舉例解答:確定規(guī)則的個(gè)數(shù):這里有3個(gè)條件,每個(gè)條件有兩個(gè)取值,故應(yīng)有2*2*2=8種規(guī)則。列出所有的條件茬和動(dòng)作茬:建立判定表舉例填人條件項(xiàng)??蓮淖詈?行條件項(xiàng)開始,逐行向上填滿。如第三行是: Y N Y N Y N Y N第二行是: Y Y

31、N N Y Y N N等等。 填人動(dòng)作樁和動(dòng)作頂。這樣便得到形如圖的初始判定表?;?jiǎn)。合并相似規(guī)則后得到圖。NextData函數(shù)的精簡(jiǎn)決策表NextData函數(shù)的精簡(jiǎn)決策表M1月份, 每月有30天M2月份, 每月有31天M3月份, 2月 有29512條規(guī)則D1日期,128 12月末31日和其它31D2日期,29 日月份的31日處理不同D3日期,30 平年2月28日處理不同D4日期,31 于2月27日Y1 年:年是閏年Y2 年:年不是閏年改進(jìn)為M1月份: 每月有30天M2月份: 每月有31天, 12月除外M4月份:12月M3月份: 2月 D1日期:1=日期=27D2日期:28D3日期:29D4日期:30D5日期:31Y1 年:年是閏年Y2 年:年不是閏年輸入變量間存在大量邏輯關(guān)系的NextData決策表 13 4 5 69 10 1114 15 16 17 18 19 20 2122C1月份在 M1 M1 M1 M2 M2 M3 M3 M4 M4 M4 M4 M4 M4C2日期在 D1 D1 D1 D4 D2 D4 D5 D2 D5 D2 D5 D1 D2 D2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論