黑盒測試(ppt)_第1頁
黑盒測試(ppt)_第2頁
黑盒測試(ppt)_第3頁
黑盒測試(ppt)_第4頁
黑盒測試(ppt)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、引言 本章將開始講黑盒測試的基本概念與基本方法,介紹等價類劃分、邊界值分析、因果圖法,并通過實例來介紹測試技術(shù)的應(yīng)用。5.1 黑盒測試概述 黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。軟件輸入黑盒測試不深入代碼細(xì)節(jié)輸出5.1 黑盒測試概述 在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性,如圖所示。1黑盒測試主要用于發(fā)現(xiàn)以下情

2、況是否有不正確或遺漏了的功能在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確地輸出信息訪問外部信息是否有錯性能上是否滿足要求界面是否錯誤,是否不美觀初始化或終止錯誤2“黑盒”的兩種基本方法 黑盒測試有兩種基本方法,即通過測試和失敗測試。 在進(jìn)行通過測試時,實際上是確認(rèn)軟件能做什么,而不會去考驗其能力如何。軟件測試員只運用最簡單,最直觀的測試案例。 在設(shè)計和執(zhí)行測試案例時,總是先要進(jìn)行通過測試。在進(jìn)行破壞性試驗之前,看一看軟件基本功能是否能夠?qū)崿F(xiàn)。這一點很重要,否則在正常使用軟件時就會奇怪地發(fā)現(xiàn),為什么會有那么多的軟件缺陷出現(xiàn)? 在確信了軟件正確運行之后,就可以采取各種手段通過搞“垮”軟件來找出缺

3、陷。純粹為了破壞軟件而設(shè)計和執(zhí)行的測試案例,被稱為失敗測試或迫使出錯測試。3黑盒測試的優(yōu)、缺點黑盒測試的優(yōu)點有:1)比較簡單,不需要了解程序內(nèi)部的代碼及實現(xiàn);2)與軟件的內(nèi)部實現(xiàn)無關(guān);3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;4)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能;5)在做軟件自動化測試時較為方便。黑盒測試的缺點有:1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30%;2)自動化測試的復(fù)用性較低。4黑盒測試的測試用例設(shè)計方法 等價類劃分方法 邊界值分析方法 錯誤推測方法 因果圖方法 判定表驅(qū)動分析方法 功能圖分析方法5.2等價類劃

4、方法 為了保證軟件質(zhì)量,我們需要做盡量多的測試,但不可能用所有可能的輸入數(shù)據(jù)來測試程序,即窮盡測試是不可能的。我們可以選擇一些有代表性的數(shù)據(jù)來測試程序,但怎樣選擇呢?等價類劃分是解決這一問題的一個方法。5.2.1等價類劃方法的理論知識 等價類劃分是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。該方法是一種重要的,常用的黑盒測試用例設(shè)計方法。1.等價類 等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數(shù)據(jù)合

5、理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù),取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。 有效等價類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。 無效等價類:與有效等價類的定義恰巧相反。 設(shè)計測試用例時,要同時考慮這兩種等價類。因為,軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗。這樣的測試才能確保軟件具有更高的可靠性。2.劃分等價類的規(guī)則1.1.如果輸入條件規(guī)定了取值范圍,可定義一個有效等價類和兩個無效等價類。例: 輸入值是

6、學(xué)生成績,范圍是0100有效等價類:0成績100無效等價類:成績2.劃分等價類的規(guī)則(續(xù))(2)如果規(guī)定了輸入數(shù)據(jù)的個數(shù),則類似地可以劃分出一個有效等價類和兩個無效等價類。 例:一個學(xué)生每學(xué)期只能選修13門課 有效等價類:選修13門 無效等價類:不選 或 選修超過3門2.劃分等價類的規(guī)則(續(xù))(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚恚瑒t每個允許的輸入值是一個有效等價類,并有一個無效等價類(所有不允許的輸入值的集合)。例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一有效等價類:???、本科、碩士、博士無效等價類:其它任何學(xué)歷2.劃分等價類的規(guī)則(續(xù))(4)如果規(guī)定了輸入

7、數(shù)據(jù)必須遵循的規(guī)則,可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。例:校內(nèi)電話號碼撥外線為9開頭有效等價類: 9外線號碼無效等價類:非9開頭外線號碼 9非外線號碼,3. 等價類劃分法測試用例設(shè)計(1) 對每個輸入或外部條件進(jìn)行等價類劃分,形成等價類表,為每一等價類規(guī)定一個唯一的編號;(2)設(shè)計一測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù)這一步驟,直到所有有效等價類均被測試用例所覆蓋;(3)設(shè)計一新測試用例,使其只覆蓋一個無效等價類,重復(fù)這一步驟直到所有無效等價類均被覆蓋;例1:報表日期設(shè)某公司要打印20012005年的報表,其中報表日期為6位數(shù)字組成,其

8、中,前4位為年份,后兩位為月份。第一步:劃分等價類輸入及外部條件有效等價類無效等價類報表日期的報表日期的類型及長度類型及長度6 6位數(shù)字字符位數(shù)字字符有非數(shù)字字符有非數(shù)字字符 少于少于6 6個數(shù)字字符個數(shù)字字符 多于多于6 6個數(shù)字字符個數(shù)字字符 年份范圍年份范圍在在2001200120052005之間之間小于小于2001 2001 大于大于2005 2005 月份范圍月份范圍在在1 11212之間之間小于小于1 1 大于大于12 12 第二步:為有效等價類設(shè)計測試用例對表中編號為的3個有效等價類用一個測試用例覆蓋:測試數(shù)據(jù)期望結(jié)果覆蓋范圍200105200105輸入有效輸入有效等價類等價類第

9、三步:為每一個無效等價類至少設(shè)計一個測試用例測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍001001MAYMAY輸入無效輸入無效等價類等價類2001520015輸入無效輸入無效等價類等價類20010012001001輸入無效輸入無效等價類等價類200020000 0輸入無效輸入無效等價類等價類200820080 0輸入無效輸入無效等價類等價類200120010000輸入無效輸入無效等價類等價類200120011313輸入無效輸入無效等價類等價類本例的本例的1010個等價類至個等價類至少需要少需要8 8個測試用例個測試用例不能出現(xiàn)相同的測試用例不能出現(xiàn)相同的測試用例對招干考試系統(tǒng)“輸入學(xué)生成

10、績”子模塊設(shè)計測試用例 招干考試分三個專業(yè),準(zhǔn)考證號第一位為專業(yè)代號,如: 1-行政專業(yè), 2-法律專業(yè), 3-財經(jīng)專業(yè). 行政專業(yè)準(zhǔn)考證號碼為:110001111215法律專業(yè)準(zhǔn)考證號碼為:210001212006財經(jīng)專業(yè)準(zhǔn)考證號碼為:310001314015例:例2:準(zhǔn)考證號碼例:準(zhǔn)考證號碼的等價類劃分 有效等價類: (1) 110001 111215 (2) 210001 212006 (3) 310001 314015 無效等價類: (4) - 110000 (5) 111216 210000 (6) 212007 310000 (7) 314016 + 例3 電話號碼城市的電話號碼由

11、兩部分組成。這兩部分的名稱和內(nèi)容分別是: 地區(qū)碼:以0開頭的三位或者四位數(shù)字(包括0);電話號碼:以非0、非1開頭的七位或者八位數(shù)字。假定被調(diào)試的程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的號碼,就可用等價分類法來設(shè)計它的調(diào)試用例。劃分等價類并編號輸入數(shù)據(jù)有效等價類無效等價類地區(qū)碼1.以0開頭的3位數(shù)串2.以0開頭的4位數(shù)串3.以0開頭的含有非數(shù)字字符的串4.以0開頭的小于3位的數(shù)串5.以0開頭的大于4位的數(shù)串6.以非0開頭的數(shù)串電話號碼7.以非0、非1開頭的7位數(shù)串8.以非0、非1開頭的8位數(shù)串9.以0開頭的數(shù)串10.以1開頭的數(shù)串11.以非0、非1開頭的含有非法字符7或者8位

12、數(shù)串12.以非0、非1開頭的小于7位數(shù)串13.以非0、非1開頭的大于8位數(shù)串為有效等價類設(shè)計測試用例 測試數(shù)據(jù)期望結(jié)果覆蓋范圍010 23145678顯示有效輸入1、8023 2234567顯示有效輸入1、70851 3456789顯示有效輸入2、70851 23145678顯示有效輸入2、為每一個無效等價類至少設(shè)計一個測試用例 測試數(shù)據(jù)期望結(jié)果覆蓋范圍0a34 23456789顯示無效輸入305 23456789顯示無效輸入401234 23456789顯示無效輸入52341 23456789顯示無效輸入6028 01234567顯示無效輸入9028 12345678顯示無效輸入10028

13、qw123456顯示無效輸入11028 623456顯示無效輸入12028 886234569顯示無效輸入例4:回顧NextDate問題。 NextDate 函數(shù)包含三個變量 month、day和year,函數(shù)的輸出為輸入日期后一天的日期。 例如,輸入為1989年5月16日,則函數(shù)的輸出為1989年5月17日。 要求輸入變量 month、 day和year均為整數(shù)值,并且滿足下列條件,也就是有效等價類: 1 month12 1day31 例4:回顧NextDate問題續(xù)若條件(1)(3)中任何一個條件失效,則 NextDate 函數(shù)都會產(chǎn)生一個輸出,指明相應(yīng)的變量超出取值范圍,比如 “mont

14、h 的值不在 1-12 范圍當(dāng)中”。顯然還存在著大量的 year、month、day 的無效組合,我們可以給出下列無效等價類: month12day31year2012測試用例的設(shè)計這里就略過,請同學(xué)們根據(jù)劃分好的等價類自行設(shè)計。5.3邊界值分析法 長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。 5.3.1邊界值分析方法的理論知識 定義:邊界值分析法就是對輸入或輸出的邊界值進(jìn)行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。

15、與等價劃分的區(qū)別 1)邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。 2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況。常見的邊界值1)對16-bit 的整數(shù)而言 32767 和 -32768 是邊界 2)屏幕上光標(biāo)在最左上、最右下位置 3)報表的第一行和最后一行 4)數(shù)組元素的第一個和最后一個 5)循環(huán)的第 0 次、第 1 次和倒數(shù)第 2 次、最后一次邊界值分析方法選擇測試用例原則 1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。 例如,如果程序的規(guī)格說明中規(guī)定:重量在10

16、公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為。作為測試用例,我們應(yīng)取10及50,還應(yīng)取10.01,49.99,9.99及50.01等。邊界值分析方法選擇測試用例原則 2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。 比如,一個輸入文件應(yīng)包括1255個記錄,則測試用例可取1和255,還應(yīng)取0及256等。邊界值分析方法選擇測試用例原則3)將規(guī)則1)和2)應(yīng)用于輸出條件,即設(shè)計測試用例使輸出值達(dá)到邊界值及其左右的值。例如,某程序的規(guī)格說明要求計算出每月保險金扣除額為0至1165.25元,其測試用例可取0.00及1165.24、還可取一0.01及

17、116526等。再如一程序?qū)儆谇閳髾z索系統(tǒng),要求每次最少顯示1條、最多顯示4條情報摘要,這時我們應(yīng)考慮的測試用例包括1和4,還應(yīng)包括0和5等。 邊界值分析方法選擇測試用例原則4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。5)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。6)分析規(guī)格說明,找出其它可能的邊界條件。int a10;for(i=1;i=10;i+)ai=0;很明顯,這段代碼的目的是創(chuàng)建包含10個元素的數(shù)組,并為數(shù)組中的每一個元素賦初值0??纯从惺裁磫栴}?例1:分析以下代碼段5.4因果圖

18、方法 前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等??紤]輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況。但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當(dāng)多。因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例。這就需要利用因果圖(邏輯模型)。 因果圖方法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。 5.4.1因果圖介紹 因果圖中使用了簡單的邏輯符號,以直線聯(lián)接左右結(jié)點。左結(jié)點表示輸入狀態(tài)(或稱原因),右結(jié)點表示輸出狀態(tài)(或稱結(jié)果)

19、。 ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。 因果圖概念關(guān)系4種符號分別表示了規(guī)格說明中向4種因果關(guān)系。如上圖所示。恒等:若ci是1,則ei也是1;否則ei為0。非:若ci是1,則ei是0;否則ei是1?;颍喝鬰1或c2或c3是1,則ei是1;否則ei為0?!盎颉笨捎腥我鈧€輸入。與:若c1和c2都是1,則ei為1;否則ei為0?!芭c”也可有任意個輸入。因果圖概念-約束 輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,稱為約束。例如, 某些輸入條件本身不可能同時出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號

20、標(biāo)明這些約束。 因果圖概念-約束A.輸入條件的約束有以下4類: E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。 I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時為0。 O約束(唯一);a和b必須有一個,且僅有1個為1。 R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。B.輸出條件約束類型 輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。利用因果圖生成測試用例的步驟 (1) 分析軟件規(guī)格說明描述中,那些是原因(即輸入條件或輸入條件的等價類),那些是結(jié)果(即輸出條件), 并給每個原因和結(jié)果賦予一個標(biāo)識符。(2) 分析軟件規(guī)格說

21、明描述中的語義。找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系。根據(jù)這些關(guān)系,畫出因果圖。(3) 由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不不可能出現(xiàn)。 為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。(4) 把因果圖轉(zhuǎn)換為判定表。5.4.2 因果圖舉例 例1: 某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。例1解答:1) 根據(jù)題意,原因和結(jié)果如下: 原因: 1第一列字符是A; 2第一列字符是B; 3第二列字符是一數(shù)字。 結(jié)

22、果: 21修改文件; 22 給出信息L; 23給出信息M。對應(yīng)的因果圖其對應(yīng)的因果圖如下: 11為中間節(jié)點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束,如圖所示。根據(jù)因果圖建立判定表 12345678原因(條件)11111000021100110031010101011111100動作(結(jié)果)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例 12345678原因(條件)11111000021100110031010101011111100動作(結(jié)果)220000112110100023010101測試用例A6AaB9BPC5HYA0AB1B*H4E%5.5錯誤推測法1. 定義:基

23、于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法。2. 錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。1) 例如, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。 這些都是容易發(fā)生錯誤的情況。可選擇這些情況下的例子作為測試用例。2) 再如,測試一個對線性表(比如數(shù)組)進(jìn)行排序的程序,可推測列出以下幾項需要特別測試的情況:輸入的線性表為空表;表中只含有一個元素;輸入表中所有元素已排好序;輸入表已按逆序排好;輸入表中部分或全部元素相同。5.6功能圖分析方法 功能圖方法是用功能圖FD形式化地表示程序的功能說明,并機(jī)械地生成功能圖的測試用例。 功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成。狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù),在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)。 1.功能圖 功能圖由狀態(tài)遷移圖和布爾函數(shù)組成。狀態(tài)遷移圖用狀態(tài)和遷移來描述,一

溫馨提示

  • 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

提交評論