下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章黑盒測試及其用例設(shè)計軟件質(zhì)量保證與
軟件測試
REVIEW軟件缺陷的定義(1)軟件未達(dá)到產(chǎn)品說明書中已經(jīng)標(biāo)明的功能;(2)軟件出現(xiàn)了產(chǎn)品說明書中指明不會出現(xiàn)的錯誤;(3)軟件未達(dá)到產(chǎn)品說明書中雖未指出但應(yīng)當(dāng)達(dá)到的目標(biāo);(4)軟件功能超出了產(chǎn)品說明書中指明的范圍;(5)軟件測試人員認(rèn)為軟件難以理解、不易使用,或者最終用戶認(rèn)為該軟件使用效果不良。軟件測試的定義使用人工或自動手段運(yùn)行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。2REVIEW測試:所謂測試的含義,首先是一項活動,在這項活動中某個系統(tǒng)或組成的部分將在特定的條件下運(yùn)行,結(jié)果將被觀察和記錄,并對系統(tǒng)或組成部分進(jìn)行評價。測試活動有兩種結(jié)果:找出缺陷和故障,或顯示軟件執(zhí)行正確。測試是一個或多個測試用例的集合。測試用例:所謂測試用例是為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果;測試用例是執(zhí)行測試的最小實(shí)體。測試步驟:測試步驟詳細(xì)規(guī)定了如何設(shè)置、執(zhí)行、評估特定的測試用例。3REVIEW軟件測試的基本問題軟件生命周期:一個軟件生命周期包括制定計劃、需求分析定義、軟件設(shè)計、程序編碼、軟件測試、軟件運(yùn)行、軟件維護(hù)、軟件停用等8個階段。軟件測試的對象:
——軟件測試不等于程序測試。
——軟件測試貫串于軟件定義和開發(fā)的整個過程。
——軟件開發(fā)過程中所產(chǎn)生的需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細(xì)設(shè)計規(guī)格說明以及源程序都是軟件測試的對象。軟件測試在軟件生命周期中橫跨兩個階段:
第一個階段:單元測試階段,即在每個模塊編寫出以后所做的必要測試。第二個階段:綜合測試階段,即在完成單元測試后進(jìn)行的測試,如集成測試、系統(tǒng)測試、驗收測試。4REVIEW軟件開發(fā)過程軟件產(chǎn)品的組成軟件開發(fā)項目組軟件開發(fā)和測試的歷史軟件開發(fā)模式軟件開發(fā)與軟件測試的關(guān)系1、測試與開發(fā)各階段的關(guān)系2、測試與開發(fā)的并行性3、完整的軟件開發(fā)流程5REVIEW軟件測試過程制定測試計劃1、制定計劃2、測試大綱(用例)3、軟件測試報告測試執(zhí)行過程1、測試執(zhí)行過程的三個階段2、集成測試過程中的兩個重要里程碑6REVIEW軟件測試的分類軟件測試按照不同的劃分方法,有不同的分類:按照軟件測試用例的設(shè)計方法而論,軟件測試可以分為白盒測試法和黑盒測試法。按照軟件測試的策略和過程來分類,軟件測試可分為單元測試、集成測試、系統(tǒng)測試、驗證測試和確認(rèn)測試。78第3章黑盒測試及其用例的設(shè)計3.1測試用例設(shè)計概述3.2黑盒測試法的概念3.3三角形問題與NextDate函數(shù)3.4等價類劃分法3.5邊界值分析法3.6決策表法3.7因果圖法3.8錯誤推測法3.9測試方法的選擇3.10功能測試回顧9本章教學(xué)目標(biāo)理論環(huán)節(jié)學(xué)習(xí)理解黑盒測試方法的基本概念學(xué)習(xí)理解黑盒測試的兩個典型問題學(xué)習(xí)掌握黑盒測試的等價類劃分法學(xué)習(xí)掌握黑盒測試的邊界值分析法學(xué)習(xí)掌握黑盒測試的因果圖測試法和決策表法實(shí)踐環(huán)節(jié)通過案例運(yùn)用學(xué)習(xí)掌握運(yùn)用方法解決實(shí)際問題的能力運(yùn)用等價類劃分法與邊界值分析法進(jìn)行實(shí)際程序測試運(yùn)用因果圖測試法與決策表法進(jìn)行實(shí)際程序測試103.1測試用例設(shè)計概述測試用例的定義和特征測試用例的基本準(zhǔn)則設(shè)計測試用例的著眼點(diǎn)測試用例設(shè)計書寫標(biāo)準(zhǔn)11測試用例的定義和特征測試用例的定義:(1)測試用例是為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果。(2)測試用例是執(zhí)行的最小實(shí)體。測試用例的特征:(1)最有可能抓住錯誤的;(2)不是重復(fù)的、多余的;(3)一組相似測試用例中最有效的;(4)既不是太簡單,也不是太復(fù)雜。設(shè)計測試用例的唯一規(guī)則:覆蓋所有特征,但并不創(chuàng)建太多的測試用例。---TsuneoYamaura12設(shè)計測試用例的基本準(zhǔn)則測試用例的代表性能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。測試結(jié)果的可判定性即測試執(zhí)行結(jié)果的正確性是可判定的,每一個測試用例都應(yīng)有相應(yīng)的期望結(jié)果。測試結(jié)果的可再現(xiàn)性即對同樣的測試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。13設(shè)計測試用例的著眼點(diǎn)根據(jù)產(chǎn)品規(guī)格,測試基本功能;考慮設(shè)計一般用戶(非專業(yè)人員)的使用方案;考慮設(shè)計稀有或特殊的使用方案;與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM,測試中考慮對設(shè)備的共享);考慮特殊情況(如內(nèi)存和硬件的沖突等);設(shè)計極端情況(如內(nèi)存泄漏、破壞性測試等);好的測試用例集能花費(fèi)最小的代價(人力、物力、財力、時間)做最好的測試。14測試用例設(shè)計書寫標(biāo)準(zhǔn)
在ANSI/IEEE829-1983標(biāo)準(zhǔn)中列出了和測試設(shè)計相關(guān)的測試用例編寫規(guī)范和模板。標(biāo)準(zhǔn)模板中主要元素如下:標(biāo)識符——惟一標(biāo)識每一個測試用例測試項——準(zhǔn)確的描述所需要測試的項及其特征測試環(huán)境要求——表征執(zhí)行該測試用例需要的測試環(huán)境輸入標(biāo)準(zhǔn)——執(zhí)行測試用例的輸入需求(這些輸入可能包括數(shù)據(jù)、文件或者操作)輸出標(biāo)準(zhǔn)——按照指定的環(huán)境和輸入標(biāo)準(zhǔn)得到的期望輸出結(jié)果測試用例之間的關(guān)聯(lián)——標(biāo)識該測試用例與其它的測試(或其它測試用例)之間的依賴關(guān)系15
3.2黑盒測試法的概念黑盒測試被稱為功能測試或數(shù)據(jù)驅(qū)動測試。在測試時,把被測程序視為一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下進(jìn)行。軟件輸入輸出黑盒測試法的概念(續(xù))采用黑盒測試的目的主要是在已知軟件產(chǎn)品所應(yīng)具有的功能的基礎(chǔ)上,進(jìn)行:(1)檢查程序功能能否按需求規(guī)格說明書的規(guī)定正常使用,測試各個功能是否有遺漏,檢測性能等特性要求是否滿足。(2)檢測人機(jī)交互是否錯誤,檢測數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問是否錯誤,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出結(jié)果,并保持外部信息(如數(shù)據(jù)庫或文件)的完整性。(3)檢測程序初始化和終止方面的錯誤。173.3三角形問題與NextDate函數(shù)1、三角形問題輸入三個整數(shù)a、b、c,分別作為三角形的三條邊,現(xiàn)通過程序判斷由三條邊構(gòu)成的三角形的類型為等邊三角形、等腰三角形、一般三角形(特殊的還有直角三角形),以及構(gòu)不成三角形。
現(xiàn)在要求輸入三個整數(shù)a、b、c,必須滿足以下條件:
條件11≤a≤100條件4a<b+c
條件21≤b≤100條件5b<a+c
條件31≤c≤100條件6c<a+b
18三角形問題與NextDate函數(shù)(續(xù))如果輸入值a、b、c不滿足條件1、條件2和條件3,程序給出“邊的取值超出允許范圍”的信息。如果輸入值a、b、c滿足條件1、條件2和條件3,則輸出下列四種情況之一:(1)如果不滿足條件4、條件5和條件6中的一個,則程序輸出為“非三角形”。(2)如果三條邊相等,則程序輸出為“等邊三角形”。(3)如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。(4)如果三條邊都不相等,則程序輸出為“一般三角形”。結(jié)論:三角形問題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。19三角形問題與NextDate函數(shù)(續(xù))2、NextDate函數(shù)NextDate函數(shù)說明另一種復(fù)雜的關(guān)系,即輸入變量之間邏輯關(guān)系的復(fù)雜性。NextDate函數(shù)包含三個變量month、day和year,函數(shù)的輸出為輸入日期后一天的日期。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:
條件11≤month≤12
條件21≤day≤31
條件31912≤year≤2050結(jié)論:在NextDate函數(shù)中有兩種復(fù)雜性的輸入來源,一是輸入域的復(fù)雜性,二是確定閏年的規(guī)則并要增加“額外天”。203.4等價類劃分法精心挑選的測試用例還應(yīng)具備另外兩個特性:嚴(yán)格控制測試用例的增加,減少為達(dá)到“合理測試”的某些既定日標(biāo)而必須設(shè)計的其他測試用例的數(shù)量。2.它覆蓋了大部分其他可能的測試用例。也就是說,它會告訴我們,使用或不使用這個特定的輸入集合,哪些錯誤會被發(fā)現(xiàn),哪些會被遺漏掉??梢杂脕碓O(shè)計一個“令人感興趣的”輸入條件集合以供測試用來設(shè)計涵蓋這些狀態(tài)的一個最小測試用例集等價類劃分法(續(xù))等價類的劃分原則等價類劃分法的測試用例設(shè)計常見等價類劃分測試形式使用等價類劃分法測試的實(shí)例22等價類劃分法(續(xù))等價類劃分法是一種重要的、常用的黑盒測試方法,它將不能窮舉的測試過程進(jìn)行合理分類,從而保證設(shè)計出來的測試用例具有完整性和代表性。例子1:開平方運(yùn)算設(shè)計這樣的測試用例,來實(shí)現(xiàn)一個對所有實(shí)數(shù)進(jìn)行開平方運(yùn)算(y=sqrt(x))的程序的測試。思考方向:由于開平方運(yùn)算只對非負(fù)實(shí)數(shù)有效,這時需要將所有的實(shí)數(shù)(輸入域x)進(jìn)行劃分,可以分成:正實(shí)數(shù)、0
和負(fù)實(shí)數(shù)。假設(shè)我們選定+1.4444代表正實(shí)數(shù),-2.345代表負(fù)實(shí)數(shù),則為該程序設(shè)計的測試用例的輸入為+1.4444、0和-2.345。例子2:乘法器例子#include<iostream.h>usingnamespacestd;intmain(){inta;intb;intc;cout<<“請輸入兩個1到100之間的整數(shù):”<<endl;cin>>a>>b;if((a>=1&&a<=100)&&(b>=1)&&b<=100)){c=a*b;cout<<“兩個數(shù)的乘積為:”<<c<<endl;}return0;}25等價類劃分法(續(xù))等價類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。所謂等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,它們具有等價特性,即每一類的代表性數(shù)據(jù)在測試中的作用都等價于這一類中的其它數(shù)據(jù)。這樣,對于表征該類的數(shù)據(jù)輸入將能代表整個子集合的輸入。因此,可以合理的假定:——測試某等價類的代表值就是等效于對于這一類其它值的測試。26等價類的劃分原則等價類是輸入域的某個子集合,而所有等價類的并集就是整個輸入域。因此,等價類對于測試有兩個重要的意義:完備性——整個輸入域提供一種形式的完備性無冗余性——若互不相交則可保證一種形式的無冗余性如何劃分?——先從程序的規(guī)格說明書中找出各個輸入條件,再為每個輸入條件劃分兩個或多個等價類,形成若干的互不相交的子集。采用等價類劃分法設(shè)計測試用例通常分兩步進(jìn)行:
(1)確定等價類,列出等價類表。(2)確定測試用例。27等價類的劃分原則(續(xù))劃分等價類可分為兩種情況:(1)有效等價類
——是指對軟件規(guī)格說明而言,是有意義的、合理的輸入數(shù)據(jù)所組成的集合。利用有效等價類,能夠檢驗程序是否實(shí)現(xiàn)了規(guī)格說明中預(yù)先規(guī)定的功能和性能。(2)無效等價類
——是指對軟件規(guī)格說明而言,是無意義的、不合理的輸入數(shù)據(jù)所構(gòu)成的集合。利用無效等價類,可以鑒別程序異常處理的情況,檢查被測對象的功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說明要求的地方。
28等價類的劃分原則(續(xù))進(jìn)行等價類劃分的依據(jù):(1)按照區(qū)間劃分在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,可以確定一個有效等價類和兩個無效等價類。例:程序輸入條件為小于100大于10的整數(shù)x,則有效等價類為10<x<100,兩個無效等價類為x≤10和x≥100等價類的劃分原則(續(xù))例:程序輸入x取值于一個固定的枚舉類型{1,3,7,15},且程序中對這4個數(shù)值分別進(jìn)行了處理,則有效等價類為x=1、x=3、x=7、x=15,無效等價類為x≠1,3,7,15的值的集合。(2)按照數(shù)值劃分在規(guī)定了一組輸入數(shù)據(jù)(假設(shè)包括n個輸入值),并且程序要對每一個輸入值分別進(jìn)行處理的情況下,可確定n個有效等價類(每個值確定一個有效等價類)和一個無效等價類(所有不允許的輸入值的集合)。30(3)按照數(shù)值集合劃分在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下,可以確定一個有效等價類和一個無效等價類(該集合有效值之外)。例:程序輸入條件為取值為奇數(shù)的整數(shù)x,則有效等價類為x的值為奇數(shù)的整數(shù),無效等價類為x的值不為奇數(shù)的整數(shù)。例:程序輸入條件為以字符‘a(chǎn)’開頭、長度為8的字符串,并且字符串不包含‘a(chǎn)’~‘z’之外的其它字符,則有效等價類為滿足了上述所有條件的字符串,無效等價類為不以‘a(chǎn)’開頭的字符串、長度不為8的字符串和包含了‘a(chǎn)’~‘z’之外其它字符的字符串。(5)細(xì)分等價類在確知已劃分的等價類中各元素在程序中的處理方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步劃分為更小的等價類,并建立等價類表。(4)按照限制條件或規(guī)則劃分在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或限制條件的情況下,可確定一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。等價類的劃分原則(續(xù))等價類表示例輸入條件有效等價類無效等價類輸入條件有效等價類無效等價類………………<11~100>1001.無效等價類2.有效等價類3.無效等價類乘法器的等價類32等價類劃分法的測試用例設(shè)計在設(shè)計測試用例時,應(yīng)同時考慮有效等價類和無效等價類測試用例的設(shè)計。根據(jù)已列出的等價類表可確定測試用例,具體過程如下:(1)首先為等價類表中的每一個等價類分別規(guī)定一個唯一的編號。(2)設(shè)計一個新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價類。重復(fù)這個步驟,直到所有的有效等價類均被測試用例所覆蓋。(3)設(shè)計一個新的測試用例,使它僅覆蓋一個尚未覆蓋的無效等價類。重復(fù)這一步驟,直到所有的無效等價類均被測試用例所覆蓋。乘法器測試用例(等價類劃分)用例編號所屬等價類乘數(shù)1乘數(shù)2乘積123206021-102提示33200-3提示小數(shù)?字母?溢出?34常見等價類劃分測試形式針對是否對無效數(shù)據(jù)進(jìn)行測試,可以將等價類測試分為標(biāo)準(zhǔn)等價類測試和健壯等價類測試。標(biāo)準(zhǔn)等價類測試——不考慮無效數(shù)據(jù)值,測試用例使用每個等價類中的一個值。健壯等價類測試——主要的出發(fā)點(diǎn)是考慮了無效等價類。對有效輸入,測試用例從每個有效等價類中取一個值;對無效輸入,一個測試用例有一個無效值,其他值均取有效值。
健壯等價類測試存在兩個問題:(1)需要花費(fèi)精力定義無效測試用例的期望輸出(2)對強(qiáng)類型的語言沒有必要考慮無效的輸入35常見等價類劃分測試形式假設(shè)有一個函數(shù)F,輸入變量x1和x2,取值區(qū)間如下:
a<=x1<=d,區(qū)間為[a,b),[b,c),[c,d]
e<=x2<=g,區(qū)間為[e,f),[f,g]其中方括號和圓括號分別表示閉區(qū)間和開區(qū)間的端點(diǎn).x1和x2無效值是:x1<a,x1>d,x2<e,x2>g標(biāo)準(zhǔn)等價類測試用例健壯等價類測試用例36標(biāo)準(zhǔn)等價類測試用例gfeabcdx1x237健壯等價類測試用例gfeabcdx1x238使用等價類劃分法測試的實(shí)例實(shí)例1三角形問題分析:在多數(shù)情況下,是從輸入域劃分等價類的,但并非不能從被測程序的輸出域反過來定義等價類,事實(shí)上,這對于三角形問題卻是最簡單的劃分方法。在三角形問題中,有四種可能的輸出:等邊三角形、等腰三角形、一般三角形和非三角形。利用這些信息能夠確定下列輸出(值域)等價類。R1={<a,b,c>:邊為a,b,c的等邊三角形}R2={<a,b,c>:邊為a,b,c的等腰三角形}R3={<a,b,c>:邊為a,b,c的一般三角形}R4={<a,b,c>:邊為a,b,c不能組成三角形}標(biāo)準(zhǔn)等價類測試用例健壯等價類測試用例39三角形問題測試用例abc預(yù)期輸出Test1101010等邊三角形Test210105等腰三角形Test3345一般三角形Test4412非三角形三角形問題的4個標(biāo)準(zhǔn)等價類測試用例40測試用例abc預(yù)期輸出Test1567一般三角形Test2-155a值超出輸入值定義域Test35-15b值超出輸入值定義域Test455-1c值超出輸入值定義域Test510155a值超出輸入值定義域Test651015b值超出輸入值定義域Test755101c值超出輸入值定義域三角形問題的7個健壯等價類測試用例三角形問題三角形(等價類劃分)輸入條件有效等價類無效等價類是否三角形的3條邊(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B)(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B)(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A),(16)是否等邊三角形(A=B)and(B=C)and(C=A),(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)三角形測試用例(等價類劃分)用例編號【A,B,C】
覆蓋等價類輸出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能構(gòu)成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等邊三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等邊三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)黑盒測試用例設(shè)計練習(xí)題-等價類法1、準(zhǔn)考證號碼對招干考試系統(tǒng)“輸入學(xué)生成績”子模塊設(shè)計測試用例。招干考試分三個專業(yè),準(zhǔn)考證號第一位為專業(yè)代號,如:
1-行政專業(yè),2-法律專業(yè),3-財經(jīng)專業(yè)。行政專業(yè)準(zhǔn)考證號碼為:110001~111215法律專業(yè)準(zhǔn)考證號碼為:210001~212006財經(jīng)專業(yè)準(zhǔn)考證號碼為:310001~314015請劃分準(zhǔn)考證號碼的等價類。黑盒測試用例設(shè)計練習(xí)題-等價類法(續(xù))輸入條件有效等價類編號無效等價類編號行政專業(yè)準(zhǔn)考證號碼110001~111215數(shù)字串(1)負(fù)無窮~110000(4)法律專業(yè)準(zhǔn)考證號碼210001~212006數(shù)字串(2)111216~210000212007~310000(5)(6)財經(jīng)專業(yè)準(zhǔn)考證號碼310001~314015數(shù)字串(3)314016~正無窮(7)黑盒測試用例設(shè)計練習(xí)題-等價類法(續(xù))序號輸入?yún)?shù)覆蓋等價類輸出參數(shù)1110002(1)輸入正確2210012(2)輸入正確3310022(3)輸入正確410000(4)輸入錯誤5200000(5)輸入錯誤6300000(6)輸入錯誤7340000(7)輸入錯誤黑盒測試用例設(shè)計練習(xí)題-等價類法(續(xù))2、電話號碼城市的電話號碼由兩部分組成。這兩部分的名稱和內(nèi)容分別是:1)地區(qū)碼:以0開頭的三位或者四位數(shù)字(包括0);2)電話號碼:以非0、非1開頭的七位或者八位數(shù)字。假定被調(diào)試的程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的號碼,請使用等價分類法來設(shè)計它的測試用例。等價類表輸入條件有效等價類編號無效等價類編號地區(qū)碼0開頭(1)非0開頭(7)三位數(shù)字串(2)<三位數(shù)字串(8)四位數(shù)字串(3)>四位數(shù)字串(9)電話號碼非0and非1開頭(4)以0開頭(10)以1開頭(11)七位數(shù)字串(5)<七位數(shù)字串(12)八位數(shù)字串(6)>八位數(shù)字串(13)測試用例序號輸入?yún)?shù)覆蓋等價類輸出參數(shù)1
(1)(2)(4)(5)輸入正確2
(1)(3)(4)(5)輸入正確3
(1)(2)(4)(6)輸入正確4110-6845316(7)輸入錯誤501-5645642(8)輸入錯誤601111-4552135(9)輸入錯誤7
(1)(2)(10)輸入錯誤8
(1)(2)(11)輸入錯誤9012-15454(1)(2)(12)輸入錯誤10
(1)(3)(13)輸入錯誤作業(yè)保險公司計算保費(fèi)費(fèi)率的程序:某保險公司的人壽保險的保費(fèi)計算方式為:投保額×保險費(fèi)率.其中,保險費(fèi)率依點(diǎn)數(shù)不同而有別,10點(diǎn)及10點(diǎn)以上保險費(fèi)率為0.6%,10點(diǎn)以下保險費(fèi)率為0.1%;而點(diǎn)數(shù)又是由投保人的年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)來決定,具體規(guī)則如表1所示。表1保險公司計算保費(fèi)費(fèi)率的規(guī)則年齡性別婚姻撫養(yǎng)人數(shù)20~3940~59其它MF已婚未婚1人扣0.5點(diǎn)最多扣3點(diǎn)(四舍五入取整)6點(diǎn)4點(diǎn)2點(diǎn)5點(diǎn)3點(diǎn)3點(diǎn)5點(diǎn)分析程序規(guī)格說明中給出和隱含的對輸入條件的要求,列出等價類表(包括有效等價類和無效等價類),設(shè)計能覆蓋所有等價類的測試用例。50幾個概念的解析強(qiáng)等價類是基于多缺陷的假設(shè),因此需要等價類笛卡兒積的每個元素對應(yīng)的測試用例.單缺陷假設(shè):失效極少是由兩個或多個缺陷的同時發(fā)生引起的.多缺陷假設(shè)與單缺陷假設(shè)相反.健壯與標(biāo)準(zhǔn)如果測試考慮了無效值,則稱為健壯,否則稱為一般(標(biāo)準(zhǔn)).51強(qiáng)等價類劃分樣例假設(shè)有一個函數(shù)F,輸入變量x1和x2,取值區(qū)間如下:a<=x1<=d,區(qū)間為[a,b),[b,c),[c,d]e<=x2<=g,區(qū)間為[e,f),[f,g]其中方括號和圓括號分別表示閉區(qū)間和開區(qū)間的端點(diǎn).x1和x2無效值是:x1<a,x1>d,x2<e,x2>g強(qiáng)標(biāo)準(zhǔn)等價類測試用例強(qiáng)健壯等價類測試用例52強(qiáng)標(biāo)準(zhǔn)等價類測試用例gfeabcdx1x253強(qiáng)健壯性等價類測試用例gfeabcdx1x254作業(yè)NextDate函數(shù)請使用等價類劃分法為NextDate函數(shù)列出輸入域等價類表,并設(shè)計相應(yīng)的測試用例。
55NextDate函數(shù)NextDate函數(shù)NextDate函數(shù)包含三個變量month、day和year,函數(shù)的輸出為輸入日期后一天的日期。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:
條件11≤month≤12
條件21≤day≤31
條件31912≤year≤2050
考慮輸入域的復(fù)雜性;閏年的規(guī)則并要增加“額外天”。563.5邊界值分析法邊界值分析法概要邊界值分析法測試用例邊界值分析法測試舉例我們可以想象一下,如果在懸崖峭壁邊可以自信地安全行走,平地就不在話下了。如果軟件在能力達(dá)到極限時能夠運(yùn)行,那么在正常情況下一般也就不會有什么問題。邊界條件是特殊情況,因為編程從根本上說不懷疑邊界有問題。奇怪的是,程序在處理大量中間數(shù)值時都是對的,但是可能在邊界處出現(xiàn)錯誤。57邊界值分析法概要邊界值分析法就是對輸入或輸出的邊界值進(jìn)行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補(bǔ)充,這種情況下,其測試用例來自等價類的邊界。為什么使用邊界值分析法?無數(shù)的測試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。因此,針對各種邊界情況設(shè)計測試用例,通常會取得很好的測試效果。怎樣用邊界值分析法設(shè)計測試用例?(1)首先確定邊界情況。通常輸入或輸出等價類的邊界就是應(yīng)該著重測試的邊界情況。(2)選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值。58舉例——常見的邊界值16-bit的整數(shù)邊界
32767和-32768屏幕上光標(biāo)位置最左上、最右下位置報表第一行和最后一行數(shù)組元素的第一個和最后一個循環(huán)第0次、第1次和倒數(shù)第2次、最后一次59邊界值分析邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側(cè)的情況設(shè)計測試用例。例:測試計算平方根的函數(shù)
——輸入:實(shí)數(shù)
——輸出:實(shí)數(shù)——規(guī)格說明:當(dāng)輸入一個0或比0大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。60等價類劃分:可以考慮作出如下劃分:輸入(i)<0和(ii)>=0輸出(a)>=0和(b)Error測試用例有兩個:輸入4,輸出2。對應(yīng)于(ii)
和(a)
。輸入-10,輸出0和錯誤提示。對應(yīng)于(i)
和(b)。邊界值分析:劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測試用例:輸入{最小負(fù)實(shí)數(shù)}輸入{絕對值很小的負(fù)數(shù)}輸入0輸入{絕對值很小的正數(shù)}輸入{最大正實(shí)數(shù)}61邊界值分析(續(xù))通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下實(shí)例分析62舉例——
利用邊界值作為測試數(shù)據(jù)項邊界值測試用例的設(shè)計思路字符起始-1個字符/結(jié)束+1個字符假設(shè)一個文本輸入?yún)^(qū)域允許輸入1個到255個字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的數(shù)值來作為邊界條件。空間小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤存儲數(shù)據(jù)時,使用比剩余磁盤空間大一點(diǎn)(幾KB)的文件作為邊界條件。63內(nèi)部邊界值分析在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而,在測試用例設(shè)計過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但同時確實(shí)屬于檢驗范疇內(nèi)的邊界條件,稱為內(nèi)部邊界值條件或子邊界值條件。內(nèi)部邊界值條件主要有下面幾種:數(shù)值的邊界值檢驗字符的邊界值檢驗其它邊界值檢驗
小結(jié):在實(shí)際的測試用例設(shè)計中,需要將基本的軟件設(shè)計要求和程序定義的要求結(jié)合起來,即結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設(shè)計有效的測試用例。64數(shù)值的邊界值檢驗計算機(jī)是基于二進(jìn)制進(jìn)行工作的,因此,軟件的任何數(shù)值運(yùn)算都有一定的范圍限制。項范圍或值位(bit)0或1字節(jié)(byte)0~255字(word)0~65535(單字)或0~(雙字)千(K)1024兆(M)1048576吉(G)1073741824計算機(jī)數(shù)值運(yùn)算的范圍65字符的邊界值檢驗在計算機(jī)軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字符對應(yīng)的ASCII碼值。字符ASCII碼值字符ASCII碼值空(null)0A65空格(space)32a97斜杠(/)47Z90048z122冒號(:)58單引號(‘)96@6466選擇測試用例的原則(1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。(2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)和比最大個數(shù)多1個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據(jù)。(3)根據(jù)程序規(guī)格說明的每個輸出條件,使用原則(1)。(4)根據(jù)程序規(guī)格說明的每個輸出條件,使用原則(2)。(5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合中的第一個和最后一個元素作為測試用例。(6)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。(7)分析程序規(guī)格說明,找出其它可能的邊界條件。67
邊界值分析法測試用例采用邊界值分析測試的基本思想是:故障往往出現(xiàn)在輸入變量的邊界值附近?!虼?,邊界值分析法利用輸入變量的最小值(min)、略大于最小值(min+)、輸入值域內(nèi)的任意值(nom)、略小于最大值(max-)和最大值(max)來設(shè)計測試用例。邊界值分析法是基于可靠性理論中稱為“單故障”的假設(shè),即有兩個或兩個以上故障同時出現(xiàn)而導(dǎo)致軟件失效的情況很少,也就是說,軟件失效基本上是由單故障引起的?!虼?,在邊界值分析法中獲取測試用例的方法是:(1)每次保留程序中一個變量,讓其余的變量取正常值,被保留的變量依次取min、min+、nom、max-和max。
(2)對程序中的每個變量重復(fù)(1)
。68邊界值分析法測試用例(續(xù))例1:有兩個輸入變量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的邊界值分析測試用例如下:
{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max>,<x1nom,x2max->,<x1min,x2nom>,<x1min+,x2nom>,<x1max,x2nom>,<x1max-,x2nom>}x1x2abcd69邊界值分析法測試用例(續(xù))例2:有二元函數(shù)f(x,y),其中x∈[1,12],y∈[1,31]。則采用邊界值分析法設(shè)計的測試用例是:{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}推論:對于一個含有n個變量的程序,采用邊界值分析法測試程序會產(chǎn)生4n+1個測試用例。練習(xí):有函數(shù)f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。請寫出該函數(shù)采用邊界值分析法設(shè)計的測試用例。{<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>,<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>}70健壯性測試健壯性測試是作為邊界值分析的一個簡單的擴(kuò)充,它除了對變量的5個邊界值分析取值外,還需要增加一個略大于最大值(max+)以及略小于最小值(min-)的取值,檢查超過極限值時系統(tǒng)的情況。因此,對于有n個變量的函數(shù)采用健壯性測試需要6n+1個測試用例。前面例1中的程序F的健壯性測試如下圖所示:x1x2abcd練習(xí):請為例2中的函數(shù)f(x,y)寫出相應(yīng)的健壯性測試用例。71實(shí)例1三角形問題的邊界值分析測試用例在三角形問題描述中,除了要求邊長是整數(shù)外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取范圍值設(shè)值為[1,100]。說明:如果程序規(guī)格說明中沒有顯式地給出邊界值,則可以在設(shè)計測試用例前先設(shè)定取值的下限值和上限值。實(shí)例2NextDate函數(shù)的邊界值分析測試用例在NextDate函數(shù)中,隱含規(guī)定了變量month和變量day的取值范圍為1≤month≤12和1≤day≤31,并設(shè)定變量year的取值范圍為1912≤year≤2050。測試用例測試用例邊界值分析法測試舉例72測試用例abc預(yù)期輸出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形73測試用例monthdayyear預(yù)期輸出Test1Test2Test3Test4Test5Test6Test76666666151515151515151911191219131975204920502051Year超出[1912…2050]1912.6.161913.6.161975.6.162049.6.162050.6.16Year超出[1912…2050]Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出[1…31]2001.6.22001.6.32001.7.1輸入日期超界day超出[1…31]Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Month超出[1…12]2001.1.162001.2.162001.11.162001.12.16Month超出[1…12]743.6決策表法決策表決策表應(yīng)用決策表測試應(yīng)用案例75決策表在所有的黑盒測試方法中,基于決策表(也稱判定表)的測試是最為嚴(yán)格、最具有邏輯性的測試方法。決策表的概念:決策表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具。決策表的優(yōu)點(diǎn):能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用決策表能夠設(shè)計出完整的測試用例集合。在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實(shí)施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。決策表很適合于處理這類問題。決策表實(shí)例76“閱讀指南”決策表樣例77決策表的組成決策表通常由以下4部分組成:條件樁—列出問題的所有條件條件項—針對條件樁給出的條件列出所有可能的取值動作樁—列出問題規(guī)定的可能采取的操作動作項—指出在條件項的各組取值情況下應(yīng)采取的動作條件樁動作樁條件項動作項規(guī)則將任何一個條件組合的特定取值及相應(yīng)要執(zhí)行的動作稱為一條規(guī)則。在決策表中貫穿條件項和動作項的一列就是一條規(guī)則。78“閱讀指南”決策表動作樁條件樁條件項動作規(guī)則79決策表的生成構(gòu)造決策表的5個步驟:(1)
確定規(guī)則的個數(shù)。有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。(2)
列出所有的條件樁和動作樁。(3)
填入條件項。(4)
填入動作項,得到初始決策表。(5)
簡化決策表,合并相似規(guī)則。若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關(guān)系,便可以合并。合并后的條件項用符號“-”表示,說明執(zhí)行的動作與該條件的取值無關(guān),稱為無關(guān)條件。三角形問題的決策表80三角形問題的決策表規(guī)則選項規(guī)則1-8規(guī)則9規(guī)則10規(guī)則11規(guī)則12規(guī)則13規(guī)則14規(guī)則15規(guī)則16條件:c1:a,b,c構(gòu)成三角形?c2:a=b?c3:a=c?c4:b=c?
N---
YYYY
YYYN
YYNY
YYNN
YNYY
YNYN
YNNY
YNNN動作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能
√
√
√
√√√√√√81判定表的化簡在實(shí)際使用判定表時,由于規(guī)則往往過多,并且相似的很多,所以需要對其進(jìn)行化簡,方法就是“合并同類項”若表中有兩條或多條規(guī)則具有相同的動作,并且其條件項之間存在著極為相似的關(guān)系,則設(shè)法將其合并82化簡中的兩種情況生成無關(guān)條件項無關(guān)條件項包含其他條件取值83讀書指南判定表84簡化后的讀書指南判定表85決策表應(yīng)用NextDate函數(shù)的決策表測試用例設(shè)計問題分析:NextDate函數(shù)的三個變量之間在輸入定義域中存在一定的邏輯依賴關(guān)系,由于等價類劃分和邊界值分析測試都假設(shè)了變量是獨(dú)立的,如果采用上述兩種方法設(shè)計測試用例,那么這些依賴關(guān)系在機(jī)械的選取輸入值時可能會丟失。而采用決策表法則可以通過使用“不可能動作”的概念表示條件的不可能組合,來強(qiáng)調(diào)這種依賴關(guān)系。說明:當(dāng)決策表規(guī)模(指規(guī)則的數(shù)目,n個條件的決策表有2n個規(guī)則)較大時,可以通過擴(kuò)展條目決策表(條件使用等價類)、代數(shù)簡化表、將大表“分解”為小表等方法。實(shí)例分析NextDate函數(shù)的決策表測試用例設(shè)計
1)構(gòu)造決策表等價類M1={月份:每月有30天}M2={月份:每月有31天,12月除外}M3={月份:此月是12月}M4={月份:此月是2月}D1={日期:1<=日期<=27}D2={日期:日期=28}D3={日期:日期=29}D4={日期:日期=30}D5={日期:日期=31}Y1={年:年是閏年}Y2={年:年是平年}條件樁:C1:月份在{M1,M2,M3,M4}中之一C2:日期在{D1,D2,D3,D4,D5}中之一C3:年在{Y1,Y2}中之一動作樁:A1:不可能A2:日期增1A3:日期復(fù)位(置1)A4:月份增1A5:月份復(fù)位(置1)A6:年增112345678910C1:月份在M1M1M1M1M1M2M2M2M2M2C2:日期在D1D2D3D4D5D1D2D3D4D5C3:年在A1:不可能√A2√√√√√√√A3√√A4√√A5A6111213141516171819202122C1:月份在M3M3M3M3M3M4M4M4M4M4M4M4C2:日期在D1D2D3D4D5D1D2D2D3D3D4D5C3:年在Y1Y2Y1Y2A1:不可能√√√A2√√√√√√A3√√√A4√√A5√A6√化簡后的決策表2)根據(jù)決策表設(shè)計測試用例,得到測試用例表用例ID月份日期年預(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/3020012001年12月16/29/30/31日15123120012002年1月1日1621520012001年2月16日1722820042004年2月29日1822820012001年3月1日1922920052005年3月1日202292001不可能21,22230/312001不可能作業(yè):例子2:假設(shè)中國某航空公司規(guī)定:中國去歐美的航線所有座位都有食物供應(yīng)。每個座位都可以播放電影。中國去非歐美的國外航線都有食物供應(yīng),只有商務(wù)倉可以播放電影。中國國內(nèi)的航班的商務(wù)倉有食物供應(yīng),但是不可以播放電影
。中國國內(nèi)的航班的經(jīng)濟(jì)倉除非飛行時間大于2小時就有食物供應(yīng),但是不可以播放電影。
使用決策表法設(shè)計測試用例。93決策表應(yīng)用(續(xù))決策表測試法適用于具有以下特征的應(yīng)用程序:if-then-else邏輯突出;輸入變量之間存在邏輯關(guān)系;涉及輸入變量子集的計算;輸入與輸出之間存在因果關(guān)系。適用于使用決策表設(shè)計測試用例的條件:規(guī)格說明以決策表形式給出,或較容易轉(zhuǎn)換為決策表。條件的排列順序不會也不應(yīng)影響執(zhí)行的操作。規(guī)則的排列順序不會也不應(yīng)影響執(zhí)行的操作。當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。如果某一規(guī)則的條件要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要。943.7因果圖法
因果圖法的簡介因果圖因果圖法測試舉例95因果圖法的簡介因果圖法產(chǎn)生的背景:等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個動作的形式來進(jìn)行測試用例的設(shè)計,這就需要利用因果圖(邏輯模型)。
96因果圖法的簡介(續(xù))因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱決策表)的形式來表示,并根據(jù)輸入條件的組合情況規(guī)定相應(yīng)的操作。因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。采用因果圖法設(shè)計測試用例的步驟:(1)根據(jù)程序規(guī)格說明書描述,分析并確定因(輸入條件)和果(輸出結(jié)果或程序狀態(tài)的改變),畫出因果圖。(2)將得到的因果圖轉(zhuǎn)換為判定表。(3)為判定表中每一列所表示的情況設(shè)計一個測試用例。97因果圖法的簡介(續(xù))使用因果圖法的優(yōu)點(diǎn):(1)考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關(guān)系。(2)能夠幫助測試人員按照一定的步驟,高效率的開發(fā)測試用例。(3)因果圖法是將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種嚴(yán)格的方法,可以指出規(guī)格說明存在的不完整性和二義性。98因果圖因果圖中用來表示4種因果關(guān)系的基本符號:c1e1恒等c1e1非~c1e1或c2c3∨c1e1與c2∧99因果圖(續(xù))因果圖中的4種基本關(guān)系在因果圖的基本符號中,圖中的左結(jié)點(diǎn)ci表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)ei表示輸出狀態(tài)(或稱結(jié)果)。ci與ei取值0或1,0表示某狀態(tài)不出現(xiàn),1則表示某狀態(tài)出現(xiàn)。恒等:若c1是1,則e1也為1,否則e1為0。非:若c1是1,則e1為0,否則e1為1。或:若c1或c2或c3是1,則e1為1,否則e1為0。與:若c1和c2都是1,則e1為1,否則e1為0。100因果圖(續(xù))因果圖中的約束在實(shí)際問題中輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴關(guān)系,稱為“約束”。對于輸入條件的約束有E、I、O、R四種約束,對于輸出條件的約束只有M約束。E約束(異):a和b中最多有一個可能為1,即a和b不能同時為1。I約束(或):a、b、c中至少有一個必須為1,即a、b、c不能同時為0。O約束(唯一):a和b必須有一個且僅有一個為1。R約束(要求):a是1時,b必須是1,即a為1時,b不能為0。M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。101因果圖(續(xù))ab異Eab或Icab唯一ORab要求Mab強(qiáng)制因果圖中用來表示約束關(guān)系的約束符號:102因果圖(續(xù))因果圖法最終生成的是決策表。利用因果圖生成測試用例的基本步驟如下:(1)分析軟件規(guī)格說明中哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。(2)分析軟件規(guī)格說明中的語義,找出原因與結(jié)果之間、原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系畫出因果圖。(3)由于語法或環(huán)境的限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。(4)把因果圖轉(zhuǎn)換為決策表。(5)根據(jù)決策表中的每一列設(shè)計測試用例。103因果圖法測試舉例實(shí)例
用因果圖法測試以下程序。程序的規(guī)格說明要求:輸入的第一個字符必須是#或*,第二個字符必須是一個數(shù)字,此情況下進(jìn)行文件的修改;如果第一個字符不是#或*,則給出信息N,如果第二個字符不是數(shù)字,則給出信息M。解題步驟:(1)分析程序的規(guī)格說明,列出原因和結(jié)果。(2)找出原因與結(jié)果之間的因果關(guān)系、原因與原因之間的約束關(guān)系,畫出因果圖。(3)將因果圖轉(zhuǎn)換成決策表。(4)根據(jù)(3)中的決策表,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出。104因果圖法測試舉例(續(xù))(1)分析程序規(guī)格說明中的原因和結(jié)果:(2)畫出因果圖(編號為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因):原因結(jié)果c1:第一個字符是#e1:給出信息Nc2:第一個字符是*e2:修改文件c3:第二個字符是一個數(shù)字e3:給出信息Mc1c2c3e110e2e3~∨E~∧105因果圖法測試舉例(續(xù))(3)將因果圖轉(zhuǎn)換成如下所示的決策表:12345678條件:C1C2C310111110101110010111010100100000動作:e1e2e3不可能√√√√√√√√√規(guī)則選項106因果圖法測試舉例(續(xù))(4)根據(jù)決策表中的每一列設(shè)計測試用例:測試用例編號輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M因果圖法測試舉例(續(xù))有一個處理單價為5角錢的飲料的自動售貨機(jī)軟件測試用例的設(shè)計。其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,按下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時再投入1元硬幣并按下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣。”(1)分析這一段說明,列出原因和結(jié)果
原因:1.
售貨機(jī)有零錢找
2.
投入1元硬幣
3.
投入5角硬幣
4.
按下橙汁按鈕
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教職工培訓(xùn)管理制度
- 肯德基培訓(xùn)日常管理制度
- 培訓(xùn)人員就業(yè)跟蹤服務(wù)制度
- 實(shí)驗室學(xué)生培訓(xùn)制度
- 少兒街舞培訓(xùn)中心管理制度
- 護(hù)理人員培訓(xùn)相關(guān)制度
- 拍賣業(yè)務(wù)學(xué)習(xí)培訓(xùn)制度
- 搶險隊集結(jié)培訓(xùn)制度
- 小學(xué)j教師校本培訓(xùn)獎懲制度
- 老年科相關(guān)培訓(xùn)制度
- 無人機(jī)吊運(yùn)培訓(xùn)課件
- 學(xué)堂在線 雨課堂 學(xué)堂云 積極心理學(xué)(上)厚德載物篇 章節(jié)測試答案
- T∕CECS 21-2024 超聲法檢測混凝土缺陷技術(shù)規(guī)程
- 義務(wù)消防員培訓(xùn)課件的課件
- 市政施工圍擋施工圍擋方案
- 病原生物與免疫學(xué)試題(含答案)
- 尼帕病毒專題知識宣講
- 液化石油氣重大危險源事故專項應(yīng)急救援預(yù)案
- 現(xiàn)代企業(yè)管理制度
- GB/T 24312-2022水泥刨花板
- YS/T 3014-2013載金炭
評論
0/150
提交評論