《某科技大學(xué)軟件測試技術(shù)》由會員分享,可在線閱讀,更多相關(guān)《某科技大學(xué)軟件測試技術(shù)(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,Software Testing,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,軟件測試技術(shù),問題引入,例:,某個軟件需求文檔中有這樣的說明:第一列字符必須是,A,或,B,,第二列字符必須是一個數(shù)字,在此情況下進(jìn)行文件的修改。但如果第
2、一列字符不正確,則給出信息,L,;如果第二列字符不是數(shù)字,則給出信息,M,。,邊界值測試,等價類測試,4.3,基于判定表的測試,判定表,基于判定表的測試,案例:三角形問題,,NextDate,問題,練習(xí):隔一日問題,4.3.1,判定表,判定表的原理,判定表的組成,判定,表建立的步驟,1.,判定表的原理,判定表,判定表(,Decision Table,),又叫決策表,判定表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的工具。,在程序設(shè)計發(fā)展的初期,判定表被當(dāng)作編寫程序的輔助工具。,2.,判定表的組成,條件樁(,Condition Stub,),列出問題的所有條件,動作樁(,Action Stub,),列
3、出可能采取的操作,條件項(,Condition Entity,),列出條件樁的取值,動作項(,Action Entity,),列出條件項各種取值下應(yīng)該采取的動作,判定表的組成,規(guī)則,任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則;,在判定表中貫穿,條件項和動作項,的一列就是一條規(guī)則;,判定表中列出多少組條件取值,也就有多少條規(guī)則,即條件項和動作項有多少列。,規(guī)則示例:三角形問題,規(guī)則(,續(xù),),規(guī)則合并,規(guī)則合并就是判定表的,簡化,。,有兩條或多條規(guī)則具有,相同的動作,,并且其條件項之間存在著極為,相似的關(guān)系,,就可以將規(guī)則合并。,(,1,)兩條規(guī)則合并成一條,條件項“,”,表示與取值
4、無關(guān)。,條件項“,”,在邏輯上包含其它的條件。,(,2,)兩條規(guī)則的進(jìn)一步合并,3.,判定表建立步驟,根據(jù)軟件規(guī)格說明,列出所有的條件樁和動作樁;,確定規(guī)則的個數(shù);,假如有,n,個條件,每個條件有兩個取值(,0,1,),則有,2,n,種規(guī)則;,填入條件項;,填入動作項,得到初始決策表;,簡化,合并相似規(guī)則(相同動作)。,例:,維修機器問題,問題描述:,“,對于功率大于,50,馬力的機器,并且維修記錄不全或已運行,10,年以上的機器,應(yīng)給予優(yōu)先的維修處理,”,請建立決策表。,例:,維修機器問題(續(xù)),(,1,)列出所有的條件樁和動作樁,條件樁,C1,:功率大于,50,馬力嗎?,C2,:維修記錄不
5、全嗎?,C3,:運行超過,10,年嗎?,動作樁,A1,:進(jìn)行優(yōu)先處理,A2,:作其他處理,例:,維修機器問題(續(xù)),(,2,)確定規(guī)則個數(shù),輸入條件個數(shù):,3,;,每個條件的取值:,“,是,”,或,“,否,”,;,規(guī)則個數(shù),:,2*2*2=8,;,功率大于,50,馬力嗎,維修記錄不全嗎,運行超過,10,年嗎,例:,維修機器問題(續(xù)),(,3,)填入條件項;,利用集合的笛卡爾積計算條件項的取值,例:,維修機器問題(續(xù)),(,4,)填入動作項;,1,,,2,合并,,5,,,7,合并,,6,,,8,合并,例:,維修機器問題(續(xù)),(,5,)化簡;,4.3.2,基于判定表的測試,根據(jù)輸入輸出繪制判定表
6、;,設(shè)計測試用例覆蓋判定表中每條規(guī)則;,4.3.3,案例:三角形問題,問題描述,輸入三個正整數(shù),a,、,b,、,c,,分別作為三角形的三條邊,通過程序判斷三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。,請用基于判定表的方法設(shè)計測試用例。,(,1,)條件樁,C1,:,a,b,c,構(gòu)成三角形?,C2,:,a=b?,C3,:,a=c,?,C4,:,b=c,?,(,2,)規(guī)則數(shù),共有四個條件,每個條件的取值為“是”或“否”,因此有,2,4,=16,條規(guī)則。,一、設(shè)計判定表,(,3,)動作樁,A1,:非三角形;,A2,:不等邊三角形;,A3,:等腰三角
7、形;,A4,:等邊三角形;,A5,:不可能;,(,4,)判定表,注意:,條件的選擇可以大大擴展判定表的規(guī)模;,例如,a,b,c,構(gòu)成三角形嗎?可以擴展為三個條件:,a b+c?,b a+c?,c a+b?,條件樁修改后的判定表,a=b,a=c,bc,二、設(shè)計測試用例,課堂練習(xí),隔一天的日期,程序有三個輸入變量,month,、,day,、,year,,分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。例如,輸入為,2004,年,11,月,29,日,則該程序的輸出為,2000,年,12,月,1,日。,課后練習(xí),登陸功能說明書:(用戶輸入和密碼輸入),1,)管理員用戶
8、名為“,admin”,密碼為“,123456”,,正常登陸,2,)用戶名和密碼輸入為空,提示“用戶和密碼不允許為空”,在用戶名和密碼非空的情況下:,3,)要求用戶名必須輸入字母,否則提示“輸入非法”,4,)要求密碼必須輸入數(shù)字,否則提示“輸入非法”,在輸入合法的情況下:,5,)用戶名錯誤,提示“用戶名和密碼輸入錯誤”,用戶名和密碼清空,6,)用戶名正確,密碼錯誤,提示“用戶名和密碼輸入錯誤”,用戶名保留,密碼清空,4.3.4,案例:,NextDate,函數(shù),問題描述,程序有三個輸入變量,month,、,day,、,year,,并且滿足:,1month12,、,1day31,、,1900 yea
9、r 2050,。它們分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上下一天的日期。例如,輸入為,2005,年,11,月,29,日,則該程序的輸出為,2005,年,11,月,30,日。,第一次嘗試,M1=,月份:每月有,30,天,M2=,月份:每月有,31,天,M3=,月份:此月是,2,月,D1=,日期:,1,日期,28,D2=,日期:日期,=29,D3=,日期:日期,=30,D4=,日期:日期,=31,Y1=,年:年是閏年,Y2=,年:年是平年,有,256,條規(guī)則的第一次嘗試,年變量對應(yīng)的等價類收縮為表中的一個條件,第二次嘗試(重點考慮閏年),M1=,月份:每月有,30,天
10、,M2=,月份:每月有,31,天,M3=,月份:此月是,2,月,D1=,日期:,1,日期,28,D2=,日期:日期,=29,D3=,日期:日期,=30,D4=,日期:日期,=31,Y1=,年:年是平年,Y2=,年:年是閏年,第三次嘗試(關(guān)注日期和月份),M1=,月份:每月有,30,天,M2=,月份:每月有,31,天,,12,月除外,M3=,月份:此月是,12,月,M4=,月份:此月是,2,月,D1=,日期:,1,日期,27,D2=,日期:日期,=28,D3=,日期:日期,=29,D4=,日期:日期,=30,D5=,日期:日期,=31,Y1=,年:年是閏年,Y2=,年:年不是閏年,NextDat
11、e,函數(shù)的判定表,每月,30,天,每月,31,天,12,月除外,續(xù),此月是,12,月,此月是,2,月,此年是閏年,NextDate,函數(shù)的精簡判定表,續(xù),NextDate,函數(shù)的測試用例,指導(dǎo)方針和觀察,判定表技術(shù)適用的應(yīng)用程序的特征:,if-then-else,邏輯很突出,輸入變量之間存在邏輯關(guān)系,涉及輸入變量子集的計算,輸入與輸出之間存在因果關(guān)系,很高的,McCabe,圈復(fù)雜度,判定表的優(yōu)點,能把復(fù)雜的問題按各種可能的情況一一列舉出來,簡明而易于理解,可避免遺漏,判定表的缺點,不能表達(dá)重復(fù)執(zhí)行的動作,例如循環(huán)結(jié)構(gòu),判定表不能很好地伸縮,有,n,個條件的決策表有,2,n,個規(guī)則。,解決方法,使用擴展條目判定表、代數(shù)簡化表,將大表“分解”為小表,查找條件項的判定表式,小 結(jié),判定表(決策表)測試的原理,三角形問題的測試用例,NextDate,函數(shù)測試用例,判定表測試的討論,作業(yè):,教材,87,頁:,9,題,、,10,題,、,11,題,問題與討論,