日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
等價(jià)類分法新解

等價(jià)類分法是將測試空間劃分成若干個(gè)子集,并且滿足每個(gè)子集中的任一數(shù)據(jù)對揭露程序中的缺陷都是等價(jià)的,這些子集就叫做等價(jià)類或者叫等價(jià)子集。

比如一個(gè)程序的輸入數(shù)據(jù)滿足 0

1~99中的任一數(shù)據(jù)和其他數(shù)據(jù)都是等價(jià)的,比如使用了2來進(jìn)行測試,那么可以假定數(shù)據(jù)2測試通過的話,1~99中的其他數(shù)據(jù)也能測試通過。

等價(jià)類分法可以用來對一些不能窮舉的集合進(jìn)行合理分類,從各個(gè)等價(jià)類中選出有代表性的數(shù)據(jù)進(jìn)行測試,從而保證設(shè)計(jì)出來的設(shè)計(jì)用例具有一定的代表性和一定范圍內(nèi)的完整性,有效地縮減測試用例的數(shù)量。

等價(jià)類實(shí)際上是符合測試空間劃分原則的一種特殊劃分形式,即劃分完后的子集里的可測數(shù)據(jù)是等價(jià)的,而測試空間劃分原則則是要求里面有一個(gè)可測數(shù)據(jù)測試通過能夠代表其他測試數(shù)據(jù)在滿足選取概率條件下也都可以通過。等價(jià)類選取測試數(shù)據(jù)時(shí)可以選取等價(jià)類中的任意數(shù)據(jù)作為測試數(shù)據(jù),而測試空間劃分原則劃分的子集一般是選擇指定的數(shù)據(jù)作為測試數(shù)據(jù),如果按測試空間劃分原則劃分后的子集剛好成為了等價(jià)類才可以選擇里面的任一數(shù)據(jù)作為測試數(shù)據(jù)。

1、等價(jià)類的幾種類型

在現(xiàn)實(shí)情況中,由于缺陷的可能情況非常多,一個(gè)子集中的數(shù)據(jù)對某種缺陷是等價(jià)的,但對另外一種缺陷可能又是不等價(jià)的。所以把等價(jià)類分為弱等價(jià)類、強(qiáng)等價(jià)類、理想等價(jià)類三種類型。

1)弱等價(jià)類

弱等價(jià)類是考慮某個(gè)單一缺陷情況下的等價(jià)情況,子集里所有數(shù)據(jù)在這種缺陷假設(shè)下是等價(jià)的,并且劃分成的幾個(gè)等價(jià)類能夠覆蓋整個(gè)測試空間的單一缺陷。比如以下一段程序:

 
 
 
 
  1. void Func(unsigned int x)  
  2. {  
  3. if ( x > 10 )  
  4. {  
  5. Func1();  
  6. }   
  7. else 
  8. {  
  9. Func2();  
  10. }  

 

我們可以將數(shù)據(jù)劃分為兩個(gè)等價(jià)類,0~10為1個(gè)等價(jià)類,大于10的數(shù)據(jù)為1個(gè)等價(jià)類,在考慮“>”號誤寫成“<”號這種缺陷的情況下,這兩個(gè)等價(jià)集中的數(shù)據(jù)都是等價(jià)的,比如0~10這個(gè)等價(jià)類中,使用0或使用10來進(jìn)行測試都能發(fā)現(xiàn)缺陷。這兩個(gè)等價(jià)類中各自抽取一個(gè)測試數(shù)據(jù)進(jìn)行測試,都能代表其他數(shù)據(jù)揭示出“>”號誤寫成“<”號這種缺陷來,因此整個(gè)測試空間都被覆蓋了。

2)強(qiáng)等價(jià)類

強(qiáng)等價(jià)類是在多個(gè)缺陷假設(shè)前提下,各個(gè)等價(jià)類中的可測數(shù)據(jù)在單個(gè)或多個(gè)缺陷假設(shè)下是等價(jià)的,并且劃分的各個(gè)等價(jià)子集中各自取一個(gè)測試數(shù)據(jù)可以覆蓋整個(gè)測試空間的多個(gè)缺陷情況。

再考慮前面弱等價(jià)類中的例子程序,出錯(cuò)的可能性有那些呢?除了大于號會錯(cuò)寫成小于號外,實(shí)際上還有可能寫成大于等于號,10有可能寫成1或100等大于10或小于10的數(shù),為方便描述以錯(cuò)寫成1和100為例,事實(shí)上錯(cuò)誤成其他數(shù)和錯(cuò)寫成1和100是等價(jià)的。這樣將各種可能出錯(cuò)的情況組合起來,程序中的判斷條件有可能有以下12種情況:

考慮0~10這個(gè)集合,在誤寫成中間一列條件中情況下,里面的數(shù)據(jù)并不等價(jià),比如誤寫成x>1的情況下,使用1做測試和使用2做測試揭示缺陷是不同的,使用1做測試發(fā)現(xiàn)不了缺陷,但使用2測試就能發(fā)現(xiàn)缺陷。

在判斷條件誤寫成x>=10條件下,10和0~9中的任一數(shù)據(jù)也不等價(jià),并且使用大于10的數(shù)據(jù)也無法揭示出條件錯(cuò)寫成x>=10這個(gè)缺陷,因此整個(gè)測試空間的多個(gè)缺陷無法被已劃分的兩個(gè)等價(jià)類來覆蓋,10需要單獨(dú)劃分成一個(gè)等價(jià)類。

這樣將數(shù)據(jù)劃分成三個(gè)等價(jià)類{0~9}、{10}、{大于10的數(shù)據(jù)},再看看這三個(gè)等價(jià)類是否可以覆蓋表中各種出錯(cuò)情況,顯然在x>100和x>=100兩種情況下,大于10的數(shù)據(jù)集合中的數(shù)據(jù)是不等價(jià)的,使用大于100的數(shù)據(jù)不能揭示出缺陷,但使用大于10小于100的數(shù)據(jù)卻能揭示出缺陷,因此需要對大于10的數(shù)據(jù)再劃分等價(jià)類,實(shí)際上只要將邊界值{11}劃一個(gè)單獨(dú)的等價(jià)類就可以了。

這樣總共得到四個(gè)等價(jià)類{0~9}、{10}、{11}、{大于11的數(shù)據(jù)},從這四個(gè)等價(jià)類中各取一個(gè)數(shù)據(jù)的話就可以將以上列出的所有可能的缺陷情況都揭示出來,但是各個(gè)等價(jià)類并不是對所有缺陷都等價(jià)的,這種劃分的等價(jià)類由于可以將各種缺陷情況覆蓋到,把它叫叫做強(qiáng)等價(jià)類。

3)理想等價(jià)類

這種等價(jià)類是嚴(yán)格按照等價(jià)類的定義來劃分的,即劃分的各個(gè)等價(jià)類中,每個(gè)等價(jià)類都滿足每個(gè)可測數(shù)據(jù)對揭示所有可能的缺陷都是等價(jià)的,并且劃分的各個(gè)等價(jià)類中各自任意取一個(gè)可測數(shù)據(jù)做為測試數(shù)據(jù)可以將全部的缺陷都揭示出來。

理想等價(jià)類在實(shí)際情況中是很罕見的,除非只有很少的一兩種可能的出錯(cuò)情況,否則很難劃分成對揭示所有可能缺陷都等價(jià)的子集。所以在實(shí)際使用時(shí),沒有必要去尋找理想等價(jià)類,否則徒然浪費(fèi)時(shí)間,一般采用強(qiáng)等價(jià)類或弱等價(jià)類進(jìn)行測試就足夠了。

2、等價(jià)類的判定方法

當(dāng)將一個(gè)輸入域進(jìn)行等價(jià)類劃分后,劃分出來的子集是否是等價(jià)的基本上靠經(jīng)驗(yàn)判斷,這給使用等價(jià)類分法帶來很大的難度,憑經(jīng)驗(yàn)劃分出來的等價(jià)類也許并不是真的等價(jià)類,如何才能確定劃分的類是等價(jià)類呢?

按照前面講過的弱等價(jià)類與強(qiáng)等價(jià)類的定義,要知道劃分的子集是否等價(jià)類先要知道又那些種類的可能缺陷,然后將劃分的等價(jià)類對照可能的缺陷進(jìn)行驗(yàn)證看是否能揭示出那些可能發(fā)生的缺陷。

這種判定方法的缺點(diǎn)是必須先知道會發(fā)生那些可能的缺陷,實(shí)際情況中往往并不知道所有可能的缺陷,那么在實(shí)際情況中如何采取一些簡單方法來判定一個(gè)子集是否是等價(jià)類呢?

當(dāng)一個(gè)子集的處理過程與輸出完全一致時(shí),基本上可以認(rèn)為是等價(jià)類,處理過程是否相同很容易從需求和設(shè)計(jì)中得出。但是現(xiàn)實(shí)情況中往往同一個(gè)等價(jià)類中的不同數(shù)據(jù)對應(yīng)的輸出結(jié)果并不相同,所以這種方法并不能對所有的情況都適用。

其實(shí)沒有什么特別好的辦法可以用來判斷一個(gè)子集中的任一數(shù)據(jù)對揭露程序中的缺陷都是等價(jià)的,除非將所有數(shù)據(jù)測試一遍。但是有一些條件可以協(xié)助判斷出某個(gè)子集不是等價(jià)類。

1)路徑判定法

最容易判定一個(gè)子集是否是等價(jià)類的方法就是路徑判定法,路徑判定法的基本思想是:對于子集中的任一數(shù)據(jù),如果執(zhí)行路徑并不完全相同,那么這個(gè)子集不是等價(jià)類。

需要注意的是,路徑判定法的反命題并不成立,即不能由執(zhí)行路徑相同就推斷出子集中的數(shù)據(jù)是等價(jià)類。因?yàn)閳?zhí)行路徑相同情況下得到的結(jié)果不一定相同,舉例如下:

 
 
 
 
  1. int mul(int a)  
  2. {  
  3. return (a*10000);  

 

在mul()函數(shù)中,不論a輸入多少,執(zhí)行路徑都只有一條,但是當(dāng)a超過一定大小時(shí),會出現(xiàn)整數(shù)乘法溢出,顯然不能將a的任意取值都作為等價(jià)類。

路徑相同之所以不能認(rèn)為是等價(jià)類的根本原因在于程序設(shè)計(jì)中本身可能存在缺陷和遺漏,設(shè)計(jì)或編碼后的程序中的路徑本身就可能不正確,測試用例設(shè)計(jì)時(shí)不能假定程序中的路徑一定是正確的。

2)概率判定法

概率判定法是通過計(jì)算等價(jià)子集中的數(shù)據(jù)揭示某個(gè)缺陷的概率來進(jìn)行判斷的方法。如果在一個(gè)等價(jià)子集中,所有數(shù)據(jù)的揭示缺陷的概率不相同并有一定差距,那么可以認(rèn)為不是等價(jià)類。

這個(gè)判定法的使用并不是說事先需要知道所有可能發(fā)生的缺陷,它只需要找到一個(gè)缺陷來證明在這種缺陷情況下,子集中的數(shù)據(jù)在揭示這個(gè)缺陷方面的概率是不相同的,那么就可以認(rèn)為在這種缺陷條件下不是等價(jià)類,至少可以認(rèn)為不是強(qiáng)等價(jià)類。

比如前面講的x>10的劃分,{0~10}這個(gè)集合中,在寫成x>=10的情況下,10和子集中其他數(shù)據(jù)揭示缺陷的概率是不同的,0~9都不能發(fā)現(xiàn)缺陷,測試會通過,也就是說揭示出這個(gè)缺陷的概率為0,而10則能揭示出這個(gè)缺陷,所以它們不能劃分到同一個(gè)等價(jià)類里面。


新聞標(biāo)題:等價(jià)類分法新解
文章起源:http://m.5511xx.com/article/djpijdh.html