本發(fā)明涉及測試技術(shù)領(lǐng)域,特別涉及一種測試用例生成方法及裝置。
背景技術(shù):
在測試工作中,對基本功能的覆蓋驗證是基礎(chǔ)且重要的測試活動,且需要盡可能地提高測試覆蓋度,即最大程度地覆蓋基本功能測試點,避免測試點的遺漏。
進行測試之前,一般需要按照業(yè)務(wù)需求設(shè)計測試用例?,F(xiàn)有的測試用例設(shè)計方法所設(shè)計出來的測試用例的覆蓋度一般較低,且測試用例存在大量冗余,進而降低了測試質(zhì)量。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種測試用例生成方法及裝置,目的在于解決現(xiàn)有測試用例的覆蓋度低和大量冗余導致測試質(zhì)量低下的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種測試用例生成方法,該方法包括:
獲取測試維度項,所述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合;
利用笛卡爾乘積方法,根據(jù)各個所述測試維度項生成待選測試用例;
根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。
可選地,所述根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例包括:
根據(jù)包括無效等價類只需單個測試用例覆蓋、有效等價類互斥性及業(yè)務(wù)需求的精簡規(guī)則,去除所述冗余待選測試用例,得出所述最終測試用例。
可選地,所述獲取測試維度項包括:
獲取根據(jù)預(yù)設(shè)等價劃分規(guī)則對所述測試維度進行等價類劃分得出包括所述有效等價類和所述無效等價類的所述測試維度項;
其中,所述預(yù)設(shè)等價劃分規(guī)則為根據(jù)各個測試維度輸入條件確定各個所述測試維度項的有效等價類數(shù)量和無效等價類數(shù)量的規(guī)則。
此外,本發(fā)明還提供了一種測試用例生成裝置,該裝置包括:
獲取模塊,用于獲取測試維度項,所述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合;
測試用例生成模塊,用于利用笛卡爾乘積方法,根據(jù)各個所述測試維度項生成待選測試用例;
精簡模塊,用于根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。
可選地,所述精簡模塊包括:
去冗余單元,用于根據(jù)包括無效等價類只需單個測試用例覆蓋、有效等價類互斥性及業(yè)務(wù)需求的精簡規(guī)則,去除所述冗余待選測試用例,得出所述最終測試用例。
可選地,所述獲取模塊包括:
獲取單元,用于獲取根據(jù)預(yù)設(shè)等價劃分規(guī)則對所述測試維度進行等價類劃分得出包括所述有效等價類和所述無效等價類的所述測試維度項;
其中,所述預(yù)設(shè)等價劃分規(guī)則為根據(jù)各個測試維度輸入條件確定各個所述測試維度項的有效等價類數(shù)量和無效等價類數(shù)量的規(guī)則。
本發(fā)明所提供的一種測試用例生成方法及裝置,通過獲取測試維度項,上述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合;利用笛卡爾乘積方法,根據(jù)各個測試維度項生成待選測試用例;根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。本申請利用等效類劃分法對各個測試維度進行劃分,可以減少測試用例的大量冗余,且根據(jù)精簡規(guī)則進一步精簡待選測試用例,使得最終測試用例的冗余較少;利用笛卡爾乘積來生成待選測試用例集,可以保證測試用例的覆蓋度。測試用例的冗余較少和覆蓋度較高,可以在有限的用例成本基礎(chǔ)上提高測試覆蓋度和測試質(zhì)量。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的測試用例生成方法的一種具體實施方式的流程示意圖;
圖2為本發(fā)明實施例提供的測試用例生成裝置的結(jié)構(gòu)示意框圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1,圖1為本發(fā)明實施例提供的測試用例生成方法的一種具體實施方式的流程示意圖,該方法包括以下步驟:
步驟101:獲取測試維度項,上述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合。
可以理解,上述測試維度項有多個,其可以利用一定的等價劃分規(guī)則將各個測試維度劃分為包括有效等價類和無效等價類的集合。
作為一種具體實施方式,上述獲取測試維度項的過程可以具體為:獲取根據(jù)預(yù)設(shè)等價劃分規(guī)則對所述測試維度進行等價類劃分得出包括所述有效等價類和所述無效等價類的所述測試維度項;其中,所述預(yù)設(shè)等價劃分規(guī)則為根據(jù)各個測試維度輸入條件確定各個所述測試維度項的有效等價類數(shù)量和無效等價類數(shù)量的規(guī)則。
上述預(yù)設(shè)等價劃分規(guī)則具體可以包括:
當測試維度輸入條件規(guī)定了取值范圍或數(shù)值個數(shù)時,可以將該測試維度的等價類確定為一個有效等價類和兩個無效等價類。例如,當輸入值是學生成績,其范圍是0~100,此時,可以將學生成績這個測試維度的等價類確定為一個有效等價類和兩個無線等價類。
當測試維度輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件時,可以將該測試維度的等價類確定為一個有效等價類和一個無效等價類。
當測試維度輸入條件是一個布爾量時,可以將該測試維度的等價類確定為一個有效等價類和一個無效等價類。
當規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理時,可以將該測試維度的等價類確定為n個有效等價類和一個無效等價類。
當規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則時,可以將該測試維度的等價類確定為一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。
當確知已劃分的等價類中各元素在程序處理中的方式不同時,再將該等價類進一步的劃分為更小的等價類。
依據(jù)上述等價劃分規(guī)則對各個測試維度進行劃分后,可以得出包括有效等價類和無效等價類的測試維度項。為了更好地介紹等價劃分,下面將以io功能測試為例進行簡要說明。參見下表1:
表1
如表1所示,io功能測試包括5個測試維度,分別為控制器數(shù)量、擴展柜數(shù)量、擴展柜類型、磁盤數(shù)量及運行io時間。根據(jù)業(yè)務(wù)需求及各個測試維度的輸入條件,進行等價類劃分。具體地,對于控制器數(shù)量來說,其最大支持數(shù)量為2,即取值范圍為0至2,則可以分別取1、2作為有效等價類,3、4作為無效等價類。其它測試維度依次類推,在此不再贅述。
可以看出,利用等價類劃分測試維度,可以避免測試用例的無效膨脹,減少測試用例的大量冗余。且明確測試用例的測試維度以及業(yè)務(wù)約束,可以提供測試用例的設(shè)計效率。
步驟102:利用笛卡爾乘積方法,根據(jù)各個所述測試維度項生成待選測試用例。
將各個測試維度等效劃分為有效等價類和無效等價類后,可以基于笛卡爾乘積的原理,將各個測試維度項進行相乘,即將每一個測試維度項作為一個包括有效等價類和無效等價類的集合,利用笛卡爾乘積方法對多個集合進行相乘,得出大量的待選測試用例。
步驟103:根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。
需要說明,上述預(yù)設(shè)精簡規(guī)則可以包括但不限于無效等價類只需單個測試用例覆蓋、有效等價類的互斥性及業(yè)務(wù)需求等精簡規(guī)則。
無效等價類只需單個測試用例覆蓋具體是指一個無效等價類只需一個測試用例覆蓋即可,例如,對于表1控制器數(shù)量中的3個測試項,只需要從多個測試用例中任意保留一個測試用例即可。
有效等價類的互斥性具體是指對存在互斥的各個有效等價類進行篩選,例如,表1中的擴展柜數(shù)量為1時,磁盤數(shù)量無法達到96,故可以將磁盤數(shù)量為96的用例刪除。
業(yè)務(wù)需求具體是指對于一些無需重點關(guān)注、業(yè)務(wù)上沒有需求或測試成本較高的測試維度,有效等價類可以進行適當精簡,例如,表1中的io運行時間,24小時運行時間較長,故可以覆蓋較少用例,具體可以選擇1小時即可。
作為一種具體實施方式,上述根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例的過程可以具體為:根據(jù)包括無效等價類只需單個測試用例覆蓋、有效等價類互斥性及業(yè)務(wù)需求的精簡規(guī)則,去除所述冗余待選測試用例,得出所述最終測試用例。
可以理解,可以只根據(jù)其中的某一個精簡規(guī)則進行篩選,也可以根據(jù)對個精簡規(guī)則進行篩選,在此不作限定。
本實施例所提供的測試用例生成方法,通過獲取測試維度項,上述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合;利用笛卡爾乘積方法,根據(jù)各個測試維度項生成待選測試用例;根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。該方法利用等效類劃分法對各個測試維度進行劃分,可以減少測試用例的大量冗余,且根據(jù)精簡規(guī)則進一步精簡待選測試用例,使得最終測試用例的冗余較少;利用笛卡爾乘積來生成待選測試用例集,可以保證測試用例的覆蓋度。測試用例的冗余較少和覆蓋度較高,可以在有限的用例成本基礎(chǔ)上提高測試覆蓋度和測試質(zhì)量。
下面對本發(fā)明實施例提供的一種測試用例生成裝置進行介紹,下文描述的一種測試用例生成裝置與上文描述的一種測試用例生成方法可相互對應(yīng)參照。
請參考圖2,圖2為本發(fā)明實施例提供的測試用例生成裝置的結(jié)構(gòu)示意框圖,參見圖2該裝置可以包括:
獲取模塊21,用于獲取測試維度項,上述測試維度項為預(yù)先利用等價類劃分方法對測試維度進行劃分得出包括有效等價類和無效等價類的集合;
測試用例生成模塊22,用于利用笛卡爾乘積方法,根據(jù)各個測試維度項生成待選測試用例;
精簡模塊23,用于根據(jù)預(yù)設(shè)精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。
作為一種具體實施方式,上述精簡模塊可以包括:
去冗余單元,用于根據(jù)包括無效等價類只需單個測試用例覆蓋、有效等價類互斥性及業(yè)務(wù)需求的精簡規(guī)則,去除冗余待選測試用例,得出最終測試用例。
作為一種具體實施方式,上述獲取模塊可以包括:
獲取單元,用于獲取根據(jù)預(yù)設(shè)等價劃分規(guī)則對測試維度進行等價類劃分得出包括有效等價類和無效等價類的測試維度項;
其中,上述預(yù)設(shè)等價劃分規(guī)則為根據(jù)各個測試維度輸入條件確定各個測試維度項的有效等價類數(shù)量和無效等價類數(shù)量的規(guī)則。
本實施例所提供的測試用例生成裝置,該裝置利用等效類劃分法對各個測試維度進行劃分,可以減少測試用例的大量冗余,且根據(jù)精簡規(guī)則進一步精簡待選測試用例,使得最終測試用例的冗余較少;利用笛卡爾乘積來生成待選測試用例集,可以保證測試用例的覆蓋度。測試用例的冗余較少和覆蓋度較高,可以在有限的用例成本基礎(chǔ)上提高測試覆蓋度和測試質(zhì)量。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的測試用例生成方法及裝置進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。