黑盒測試-等價類_第1頁
黑盒測試-等價類_第2頁
黑盒測試-等價類_第3頁
黑盒測試-等價類_第4頁
黑盒測試-等價類_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

黑盒測試方法____等價類劃分測試2等價類劃分概述等價類的劃分原則等價類劃分法的測試用例設計常見等價類劃分測試形式使用等價類劃分法測試的實例3等價類劃分法:把程序的輸入域劃分為若干部分(子集),從每個部分中選取少數具有代表性的數據作為測試用例,從而保證設計出來的測試用例具有完整性和代表性。所謂等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的,它們具有等價特性。因此,可以合理的假定:

——測試某等價類的代表值就是等效于對于這一類其它值的測試。概述4概述舉例:設計這樣的測試用例,來實現一個對所有實數進行開平方運算(y=sqrt(x))的程序的測試。思考方向:由于開平方運算只對非負實數有效,要將所有的實數(輸入域x)進行劃分,可以分成:正實數、0和負實數。假設我們選定+1.4444代表正實數,-2.345代表負實數,則為該程序設計的測試用例的輸入為+1.4444、0和-2.345。5等價類的劃分原則等價類是輸入域的某個子集合,而所有等價類的并集就是整個輸入域。完備性:整個輸入域提供一種形式的完備性無冗余性:各區(qū)域互不相交,保證無冗余性6采用等價類劃分法設計測試用例通常分兩步進行:(1)確定等價類,列出等價類表。(2)確定測試用例。劃分等價類可分為兩種情況:(1)有效等價類指對軟件規(guī)格說明而言,那些有意義的、合理的輸入數據所組成的集合。利用有效等價類,能夠檢驗程序是否實現了規(guī)格說明中預先規(guī)定的功能和性能。等價類的劃分原則(續(xù))7等價類的劃分原則(續(xù))(2)無效等價類指對軟件規(guī)格說明而言,那些無意義的、不合理的輸入數據所構成的集合。利用無效等價類,可以鑒別程序異常處理的情況,檢查被測對象的功能和性能的實現是否有不符合規(guī)格說明要求的地方。設計測試用例時,要同時考慮這兩種等價類。因為,軟件不僅要能接收合理的數據,也要能經受意外的考驗。這樣的測試才能確保軟件具有更高的可靠性。8等價類的劃分原則(續(xù))劃分等價類的方法下面給確定等價類的原則①按照輸入區(qū)間劃分在輸入條件規(guī)定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,范圍是0~1000100

有效等價類0≤成績≤100無效等價類成績>100

無效等價類成績<09等價類的劃分原則(續(xù))②按照輸入限制劃分在輸入條件規(guī)定了“必須如何”的條件情況下,可確立一個有效等價類和一個無效等價類。如,規(guī)定程序輸入必須為數字,可確定一個有效等價類——數字和一個無效等價類——字母。10等價類的劃分原則(續(xù))③按照輸入數值劃分在規(guī)定了輸入數據的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類(每個值確定一個有效等價類)和一個無效等價類(所有不允許的輸入值的集合)。例:輸入條件說明學歷可為:???、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學歷之外的任何學歷作為無效等價類。11等價類的劃分原則(續(xù))④按照限制條件或規(guī)則劃分在規(guī)定了輸入數據必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。如,程序中,成績輸入為0~100的整數,可確立一個89為有效等價類,然后確定若干個無效等價類,如89.1,-1,101,X等。12等價類的劃分原則(續(xù))⑤細分等價類在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。如:輸入值是學生成績,范圍是0~100。程序對不同的分數進行優(yōu)、良、及格等的轉換。除按第一條原則劃分,還可進一步劃分為更小的等價類,如85~100(優(yōu)),75~85(良)等。13等價類劃分法的測試用例設計設計測試用例在確立了等價類后,可建立等價類表,列出所有劃分出的等價類。在設計測試用例時,應同時考慮有效等價類和無效等價類測試用例的設計。輸入條件有效等價類無效等價類………………14等價類劃分法的測試用例設計從劃分出的等價類中按以下三個原則設計測試用例:①為每一個等價類規(guī)定一個唯一的編號。②設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止。③設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。15常見等價類劃分測試形式針對缺陷相關性假設,可將等價類測試分為弱等價類測試(單缺陷假設)和強等價類測試(多缺陷假設)。針對是否對無效數據進行測試,可以將等價類測試分為:一般等價類測試和健壯等價類測試。一般等價類測試不考慮無效數據值,測試用例覆蓋每個等價類。健壯等價類測試主要的出發(fā)點是考慮了無效等價類。對有效輸入,測試用例覆蓋等價類;對無效輸入,一個無效等價類有一個測試用例,其他值均取有效值(多輸入情況下)。函數F的功能擴展有兩個變量x1和x2的函數F。如果函數F實現為一個程序,則輸入兩個變量x1和x2邊界:

a≤x1≤d區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g區(qū)間為[e,f),[f,g]abegcdf等價類劃分舉例17輸入條件有效等價類無效等價類x11)a≤x1<b2)b≤x1<c3)c≤x1≤d6)x1<a7)x1>dx24)e≤x2<f5)f≤x2<g8)x2<e9)x2>g確立等價類,建立等價類表,列出所有劃分出的等價類。

a≤x1≤d區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g區(qū)間為[e,f),[f,g]弱一般等價類測試弱一般等價類測試是基于單缺陷假設的;弱一般等價類測試通過使用一個測試用例中的每個等價類(區(qū)間)的一個變量實現。

abegcdf覆蓋2,5覆蓋3,4覆蓋1,4有效等價類無效類x11)a≤x1<b2)b≤x1<c3)c≤x1≤d6)x1<a7)x1>dx24)e≤x2<f5)f≤x2<g8)x2<e9)x2>g測試用例的數量和含有最大子集數目的等價類中的數目相同

強一般等價類測試

強一般等價類測試是基于多缺陷假設的;等價類笛卡兒積的每個元素對應的測試用例;

abegcdf測試用例數量:各變量等價類數量的乘積

笛卡爾積可以保證兩種意義上的“完備性”:一是覆蓋所有的等價類,二是有可能的輸入組合中的一個。弱健壯等價類測試

1.對于有效輸入,使用每個有效類的一個值。

2.對于無效輸入,測試用例將擁有一個無效值,并保持其余的值都是有效的。abegcdf測試用例的數量:弱一般等價類測試用例數量+各變量無效等價類數量之和

健壯:考慮了無效值健壯等價類測試有兩個問題第一,規(guī)格說明常常并沒有定義無效測試用例所預期的輸出內容。因此,測試人員要花費大量時間定義這些測試用例的輸出。第二,強類型語言沒有必要考慮無效輸入。對于第二個問題,在實際的項目中,由于人的因素,即使編程語言本身再怎么完美,諸如Java、Python、C++這樣的強類型語言,錯誤也無法避免)。另外,業(yè)務的具體要求,無效輸入往往要考慮業(yè)務因素,所以任何時刻都必須考慮無效輸入。強健壯等價類測試

所有等價類笛卡兒積的每個元素中獲得測試用例。

abegcdf測試用例數量:各變量有效等價類和無效等價類數量和的乘積

舉例(三角形問題)輸入:三個變量(a、b、c);a、b和c都在1到100之間。輸出:是否為三角形或各類三角形?1、輸入3個整數變量a、b、c2、a、b和c均在1—100之間3、a、b和c任意2個加起來大于第三條邊24使用等價類劃分法測試的實例解法一:分析題目中給出和隱含的對輸入條件的要求:

(1)整數(2)三個數(3)非零數(4)正數(5)兩邊之和大于第三邊(6)等腰(7)等邊如果a、b、c滿足條件(1)~(4),則輸出下列四種情況之一:如果不滿足條件(5),則程序輸出為“非三角形”。如果三條邊相等即滿足條件(7),則程序輸出為“等邊三角形”。如果只有兩條邊相等、即滿足條件(6),則程序輸出為“等腰三角形”。如果三條邊都不相等,則程序輸出為“一般三角形”。三角形問題的一種等價類劃分:按照輸入域劃分等價類的例子。

D1={<a,b,c>:

a=b=c}D2={<a,b,c>:

a=b,a≠c}D3={<a,b,c>:

a=c,a≠b}D4={<a,b,c>:

c=b,a≠c}D5={<a,b,c>:

b≠

a≠c}

D6={<a,b,c>:a>b+c}D7={<a,b,c>:b>

a+c}D8={<a,b,c>:c>

a+b}測試用例Test1=(3,4,5)覆蓋有效等價類1-328使用等價類劃分法測試的實例解法2:從被測程序的輸出域來定義等價類。在三角形問題中,有四種可能的輸出:等邊三角形、等腰三角形、一般三角形和非三角形。利用這些信息能夠確定下列輸出(值域)等價類。

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不能組成三角形}輸出域有效等價類等邊三角形(1)等腰三角形(2)一般三角形(3)非三角形(4)a無效等價類<1(5)>100(6)b無效等價類<1(7)>100(8)c無效等價類<1(9)>100(10)增加的測試用例

三角形問題的等價類測試用例弱一般等價類測試

測試用例abc預期輸出WN1555等邊三角形WN2223等腰三角形WN3345三角形WN4412非三角形由于變量a,b,c沒有定義有效子區(qū)間,則強一般等價類測試用例與弱一般等價類測試用例相同。三角形問題的弱健壯等價類測試用例測試用例abc預期輸出WR1-155a取值不在允許的范圍內WR25-15b取值不在允許的范圍內WR355-1c取值不在允許的范圍內WR420155a取值不在允許的范圍內WR552015b取值不在允許的范圍內WR655201c取值不在允許的范圍內考慮a,b,c的無效值產生的以下弱健壯等價類測試用例。三角形問題的強健壯等價類測試用例測試用例abc預期輸出SR1-1-15a、b取值不在允許的范圍內SR25-1-1b、c取值不在允許的范圍內SR3-15-1a、c取值不在允許的范圍內SR4-1-1-1a、b、c取值不在允許的范圍內健壯是指要考慮無效值,強是指多缺陷假設。33NextDate函數等價類測試用例例:NextDate函數包含三個變量:month、day和year,函數的輸出為輸入日期后一天的日期。例如,輸入為2006年3月7日,則函數的輸出為2006年3月8日。要求輸入變量month、day和year均為整數值,并且滿足下列條件:(1)1≤month≤12(2)1≤day≤31(3)1912≤year≤201234NextDate函數等價類測試用例NextDate函數中有兩種復雜性來源:1)輸入域的復雜性2)確定哪一年是閏年年數可以被4整除則為閏年一百整數年是400的倍數時為閏年1992,1996,2000為閏年1900不是閏年案例分析-NextDate函數的等價類測試用例確定等價類(方法一)有效等價類:M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1912≤年≤2012}無效等價類:M2={月份:月份<1}M3={月份:月份>12}D2={日期:日期<1}D3={日期:日期>31}Y2={年:年<1912}Y3={年:年>2012}弱一般等價類測試三個獨立變量的有效等價類都只有一個,因此弱一般等價類測試與強一般等價類測試相同測試用例月份日期年預期輸出WN1,SN161519121912年6月16日弱健壯等價類測試測試用例月份日期年預期輸出WR161519121912年6月16日WR2-1151912月份不在有效值內WR313151811月份不在有效值內WR46-11912日期不在有效值內WR56321912日期不在有效值內WR66151811年不在有效值內WR76152013年不在有效值內強健壯等價類測試測試用例月份日期年預期輸出SR1-1151912月份不在有效值內SR26-11912日期不在有效值內SR36151811年不在有效值內SR4-1-11912月份和日期不在有效值內SR56-11811日期和年不在有效值內SR6-1151811月份和年不在有效值內SR7-1-11811月份,日期和年不在有效值內案例分析-NextDate函數的等價類測試用例確定等價類(方法二)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}

D4={日期:日期=31}Y1={年:年是閏年}Y2={年:年是平年}弱等價類測試測試用例月份日期年預期輸出WR161420002000年6月15日WR272919961996年7月30日WR32302002無效輸入日期WR46312000無效輸入日期自動生成測試用例問題之一:機械地從對應等價類中選擇輸入值而不考慮相關領域的只是,產生無效輸入。等價類測試用例弱一般等價類測試用例應該有4個強一般等價類測試用例應該有 3個(月份類)x4個(日期類)x2(年類)=24個強健壯等價類測試用例對每個變量加上2個無效類測試用例數為:5x6x4=120個請同學自己思考各測試用例。案例分析-NextDate函數的等價類測試用例確定等價類(方法三)M1={月份:每月有30天}M2={月份:每月有31天}M3={月份:此月是2月}D1={日期:1≤日期≤28}D2={日期:日期=29}D3={日期:日期=30}

D4={日期:日期=31}Y1={年:年為2000}Y2={年:年是閏年,而且是非世紀年份}Y3={年:年是平年}傭金問題某制造商制造的步槍機(lock),槍托(stock)和槍管(barrel).槍機賣45美元,槍托賣30美元,槍管賣25美元。銷售商每月至少售出一支完整的步槍,且生產限額是大多數銷售商在一個月內可銷售70個槍機,80個槍托和90個槍管。到月末,銷售商發(fā)短電報,通知-1個槍機被售出,則制造商計算銷售商傭金。銷售含量不到(含)1000美元的部分為10%,1000(不含)-1800(含)的部分為15%,超過1800美元部分為20%。傭金程序生成月份銷售報告,匯總售出的槍機,槍托和槍管總數,銷售商的總銷售額和傭金。傭金問題的等價類劃分測試用例設計傭金問題的輸入定義域,由于受槍機、槍托、槍管的限制,被劃分為3類,每一類有一個有效等價類和兩個無效等價類。有效等價類為:L1={槍機:1≤槍機≤70}L2={槍機=-1}S1={槍托:1≤槍托≤80}B1={槍管:1≤槍管≤90}輸入變量對應的無效等價類如下:L3={槍機:槍機=0或槍機<-1}L2={槍機>70}S2={槍托:槍托<1}S3={槍托:槍托>80}B2={槍管:槍管<1}B2={槍管:槍管>90}根據有效等價類,可以設計一個標準等價類劃分測試用例:TEST1:槍機=4,槍托=5,槍管=9傭金問題的強健壯等價類測試用例用例ID槍機槍托槍管預期輸出SR1-14045槍機值不在允許的范圍內SR235-145槍托值不在允許的范圍內SR33540-1槍管值不在允許的范圍內SR4-1-145槍托值不在允許的范圍內槍機值不在允許的范圍內SR5-140-1槍管值不在允許的范圍內槍機值不在允許的范圍內SR63515-1槍管值不在允許的范圍內槍托值不在允許的范圍內SR7-1-1-1槍管值不在允許的范圍內槍托值不在允許的范圍內槍機值不在允許的范圍內問題:無法判斷傭金問題的計算部分有沒有問題因此,輸入域等價類不能產生令人滿意的測試用例集合。對傭金問題的輸出值域定義等價類可以改進測試用例集合。銷售額是已售槍機、槍托、槍管的函數,即Sales=45*槍機+30*槍托+25*槍管可以在傭金值域上定義3個等價類S1={<槍機、槍托、槍管>:銷售額≤1000}S2={<槍機、槍托、槍管>:1000<銷售額≤1800}S3={<槍機、槍托、槍管>:銷售額>1800}傭金問題的輸出域等價類測試用例用例ID槍機槍托槍管銷售額傭金OR155550050OR21515151500175OR3252525250036048等價類劃分舉例例:設有一個檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設日期限定在1990年1月-2049年12月,并規(guī)定日期由6位數字字符組成,前4位表示年,后2位表示月?,F用等價類劃分法設計測試用例,來測試程序的“日期檢查功能”。49等價類劃分舉例1)劃分等價類并編號下表等價類劃分的結果輸入等價類有效等價類無效等價類日期的類型及長度①6位數字字符②有非數字字符③少于6位數字字符④多于6位數字字符年份范圍⑤在1990-2049之間⑥小于1990⑦大于2049月份范圍⑧在01-12之間⑨等于00⑩大于1250等價類劃分舉例2)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:測試數據期望結果覆蓋的有效等價類200211輸入有效①、⑤、⑧51等價類劃分舉例3)為每一個無效等價類設計一個測試用例,設計結果如下:測試數據期望結果覆蓋的無效等價類95June無效輸入②20036無效輸入③2001006無效輸入④198912無效輸入⑥200401無效輸入⑦200100無效輸入⑨200113無效輸入⑩52等價類劃分舉例例

某城市的電話號碼由三部分組成,這三部分的名稱和內容分別是:地區(qū)碼:空白或3位數字;前綴:非“0”和非“1”開頭的3位數字;后綴:4位數字假定被測程序接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合的號碼,現用等價分類法來設計它的測試用例。53等價類劃分舉例第一步劃分等價類。包括4個有效等價類,11個無效等價類。輸入條件有效等價類無效等價類地區(qū)碼空白①,3位數字②有非數字字符⑤,少于三位數字⑥,多于三位數字⑦前綴200-999之間的三位數字③有非數字字符⑧,起始位為0⑨,起始位為1⑩,少于三位數字(11),多于三位數字(12),后綴4位數字④有非數字字符(13),少于4位數字(14),多于4位數字(15),54等價類劃分舉例第二步設計測試用例測試數據測試范圍期望結果()276-2345等價類①,③,④有效(635)805-9321等價類②,③,④有效55等價類劃分舉例測試數據測試范圍期望結果(20A)423-4567無效等價類⑤無效(33)234-5678無效等價類⑥無效(7777)345-6789無效等價類⑦無效(111)P12-9876無效等價類⑧無效(111)021-5432無效等價類⑨無效(222)121-1378無效等價類⑩無效(333)52-1378無效等價類11無效(333)6751-1378無效等價類12無效(027)345-6B01無效等價類13無效(020)345-601無效等價類14無效(031)478-23452無效等價類15無效對11個無效等價類,選擇11個測試用例如下:等價類法舉例保險費率計算某保險公司承擔人壽保險已有多年歷史,該公司保費計算方式為投保額*保險率,保險率又依點數不同而有別,10點以上費率為0.6%,10點以下費率為0.1%:等價類法舉例輸入數據說明20~39歲6點40~59歲4點年齡60歲以上20歲以下2點MALE5點性別FEMALE3點已婚3點婚姻未婚5點扶養(yǎng)人數一

0.5點

3點

)計算保費費率的程序(1)分析程序規(guī)格說明中給出和隱含的對輸入條件的要求,列出等價類表(包括有效等價類和無效等價類)。年齡:一位或兩位非零整數,值的有效范圍為1~99性別:一位英文字符,只能取值‘M’或’F’婚姻:字符,只能取值‘已婚’或‘未婚’撫養(yǎng)人數:空白或一位非零整數(1~9)點數

溫馨提示

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

評論

0/150

提交評論