一種基于貪心算法的自動化測試用例選擇方法
【專利摘要】本發(fā)明公開了一種基于貪心算法的自動化測試用例選擇方法,在設計、編寫系統(tǒng)測試用例時,將系統(tǒng)測試用例與需求分解表中的需求關聯(lián),依據系統(tǒng)測試用例與需求分解表的關聯(lián)數據,創(chuàng)建系統(tǒng)測試用例-需求對應矩陣;使用貪心算法的思想,逐步選擇系統(tǒng)測試用例中覆蓋需求最多的用例作為自動化測試用例。本發(fā)明克服了傳統(tǒng)自動化測試用例選擇效率低、遺漏或者冗余、缺乏科學依據等缺點,利用貪心算法的局部最優(yōu)達到全局最優(yōu)的理念,提高自動化測試用例選擇的科學性、高效性和可靠性。
【專利說明】
一種基于貪心算法的自動化測試用例選擇方法
【技術領域】
[0001]本發(fā)明涉及軟件自動化測試領域,具體涉及一種基于貪心算法的自動化測試用例選擇方法。
【背景技術】
[0002]軟件測試是軟件工程的重要環(huán)節(jié),它直接關系到軟件的質量、開發(fā)進度和項目成本。隨著軟件技術和編碼技術的巨大發(fā)展,軟件設計和編碼的效率得到了極大的提高。軟件測試的工作量相比以前卻并未減少。相反的,在整個軟件開發(fā)的生命周期中,軟件測試工作所占的比例不斷提高。而統(tǒng)計表明,回歸測試所占的成本達到整個測試成本的一半以上。軟件自動化回歸測試的出現(xiàn)和發(fā)展使得軟件測試進入一個嶄新的時期。
[0003]自動化測試用例是軟件回歸自動化測試是否成功的關鍵因素之一。目前一般的做法是由軟件測試工程師手工從系統(tǒng)測試用例中挑選自動化測試用例,效率較低,遺漏需求、且缺乏科學依據。
[0004]貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解。貪心算法不是對所有問題都能得到整體最優(yōu)解,但對范圍相當廣泛的許多問題他能產生整體最優(yōu)解或者是整體最優(yōu)解的近似解。
【發(fā)明內容】
[0005]本發(fā)明要解決的技術問題是:傳統(tǒng)自動化測試用例選擇效率低、遺漏或者冗余、缺乏科學依據等缺點,利用貪心算法的局部最優(yōu)達到全局最優(yōu)的理念,本發(fā)明提出一種基于貪心算法的自動化測試用例選擇方法,提高自動化測試用例選擇的科學性、高效性和可靠性。
[0006]本發(fā)明所采用的技術方案為:
一種基于貪心算法的自動化測試用例選擇方法,在設計、編寫系統(tǒng)測試用例時,將系統(tǒng)測試用例與需求分解表中的需求關聯(lián),依據系統(tǒng)測試用例與需求分解表的關聯(lián)數據,創(chuàng)建系統(tǒng)測試用例-需求對應矩陣;使用貪心算法的思想,逐步選擇系統(tǒng)測試用例中覆蓋需求最多的用例作為自動化測試用例。
[0007]為了提高效率,將貪心算法程序化,將選擇自動化測試用例的過程自動化,自動逐步挑選最多覆蓋和未覆蓋需求的系統(tǒng)測試用例,剔除冗余系統(tǒng)測試用例,從而挑選出最少的自動化測試用例集。
[0008]所述方法步驟如下:
A)軟件系統(tǒng)測試用例設計、編寫時,要求與需求分解表對應,此操作可以借助成熟的軟件測試管理工具QC實現(xiàn);
B)建立系統(tǒng)測試用例與分解需求的對應矩陣,a(0)…a(n)為需求,b(O)-b (m)為系統(tǒng)測試用例,當第i個用例覆蓋了第j個需求的時候,b(i)a(j)=l,反之記錄b(i)a(j)=0 ; c)比較用例覆蓋的需求數,挑選覆蓋最多需求的測試用例作為自動化測試用例,然后剔除被挑選的用例及被覆蓋到的需求,重復建立系統(tǒng)測試用例-需求對應矩陣,逐步選擇當前覆蓋需求最多的用例,直至所有的需求被覆蓋;
D)將貪心算法程序化,自動實現(xiàn)自動化測試用力的選擇,提升測試效率。
[0009]所述貪心算法的步驟如下:
O計算用例覆蓋的需求數,求最大值
sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只計數值為 I 的數值,比較 sum ,記錄 i ;
2)將覆蓋到的需求j對應的a[0...1] [j]賦值為-1 ;
3)重復步驟I),直至所有的sum[i]=0。
[0010]直至所有的sum[i]=0的時候,輸出的所有i值即對應了覆蓋了所有需求的測試用例,由此,可以確定自動化測試的測試用例,代替了手工挑選自動化測試用例的傳統(tǒng)方式,提高了自動化測試的效率和可靠性。
[0011]本發(fā)明有益效果:本發(fā)明克服了傳統(tǒng)自動化測試用例選擇效率低、遺漏或者冗余、缺乏科學依據等缺點,利用貪心算法的局部最優(yōu)達到全局最優(yōu)的理念,提高自動化測試用例選擇的科學性、高效性和可靠性。
【專利附圖】
【附圖說明】
[0012]圖1為本發(fā)明系統(tǒng)測試用例-需求對應矩陣;
圖2為本發(fā)明貪心算法建模流程圖。
【具體實施方式】
[0013]下面根據說明書附圖,結合具體實施例,對本發(fā)明進一步說明:
一種基于貪心算法的自動化測試用例選擇方法,在設計、編寫系統(tǒng)測試用例時,將系統(tǒng)測試用例與需求分解表中的需求關聯(lián),依據系統(tǒng)測試用例與需求分解表的關聯(lián)數據,創(chuàng)建系統(tǒng)測試用例-需求對應矩陣;使用貪心算法的思想,逐步選擇系統(tǒng)測試用例中覆蓋需求最多的用例作為自動化測試用例。
[0014]為了提高效率,將貪心算法程序化,將選擇自動化測試用例的過程自動化,自動逐步挑選最多覆蓋和未覆蓋需求的系統(tǒng)測試用例,剔除冗余系統(tǒng)測試用例,從而挑選出最少的自動化測試用例集。
[0015]所述方法步驟如下:
A)軟件系統(tǒng)測試用例設計、編寫時,要求與需求分解表對應,此操作可以借助成熟的軟件測試管理工具QC實現(xiàn);
如圖1所示,B)建立系統(tǒng)測試用例與分解需求的對應矩陣,a (O)…a (η)為需求,b(0)...b(m)為系統(tǒng)測試用例,當第i個用例覆蓋了第j個需求的時候,b(i)a(j)=l,反之記錄b(i)a(j)=0 ;
O比較用例覆蓋的需求數,挑選覆蓋最多需求的測試用例作為自動化測試用例,然后剔除被挑選的用例及被覆蓋到的需求,重復建立系統(tǒng)測試用例-需求對應矩陣,逐步選擇當前覆蓋需求最多的用例,直至所有的需求被覆蓋;
D)將貪心算法程序化,自動實現(xiàn)自動化測試用力的選擇,提升測試效率。
[0016]如圖2所示,所述貪心算法的步驟如下:
O計算用例覆蓋的需求數,求最大值
sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只計數值為 I 的數值,比較 sum ,記錄 i ;
2)將覆蓋到的需求j對應的a[0...1] [j]賦值為-1 ;
3)重復步驟I),直至所有的sum[i]=0。
[0017]直至所有的sum[i]=0的時候,輸出的所有i值即對應了覆蓋了所有需求的測試用例,由此,可以確定自動化測試的測試用例,代替了手工挑選自動化測試用例的傳統(tǒng)方式,提高了自動化測試的效率和可靠性。
【權利要求】
1.一種基于貪心算法的自動化測試用例選擇方法,其特征在于:在設計、編寫系統(tǒng)測試用例時,將系統(tǒng)測試用例與需求分解表中的需求關聯(lián),依據系統(tǒng)測試用例與需求分解表的關聯(lián)數據,創(chuàng)建系統(tǒng)測試用例-需求對應矩陣;使用貪心算法的思想,逐步選擇系統(tǒng)測試用例中覆蓋需求最多的用例作為自動化測試用例。
2.根據權利要求1所述的一種基于貪心算法的自動化測試用例選擇方法,其特征在于:將貪心算法程序化,將選擇自動化測試用例的過程自動化,自動逐步挑選最多覆蓋和未覆蓋需求的系統(tǒng)測試用例,剔除冗余系統(tǒng)測試用例,從而挑選出最少的自動化測試用例集。
3.根據權利要求2所述的一種基于貪心算法的自動化測試用例選擇方法,其特征在于,所述方法步驟如下: A)軟件系統(tǒng)測試用例設計、編寫時,要求與需求分解表對應; B)建立系統(tǒng)測試用例與分解需求的對應矩陣,a(0)…a(n)為需求,b(O)-b (m)為系統(tǒng)測試用例,當第i個用例覆蓋了第j個需求的時候,b(i)a(j)=l,反之記錄b(i)a(j)=0 ; C)比較用例覆蓋的需求數,挑選覆蓋最多需求的測試用例作為自動化測試用例,然后剔除被挑選的用例及被覆蓋到的需求,重復建立系統(tǒng)測試用例-需求對應矩陣,逐步選擇當前覆蓋需求最多的用例,直至所有的需求被覆蓋; D)將貪心算法程序化,自動實現(xiàn)自動化測試用力的選擇,提升測試效率。
4.根據權利要求1、2或3所述的一種基于貪心算法的自動化測試用例選擇方法,其特征在于,所述貪心算法的步驟如下: O計算用例覆蓋的需求數,求最大值 sum[i]=a[i] [0]+a[i] [I]+…+a[i] [j-Ι]只計數值為 I 的數值,比較 sum ,記錄 i ; 2)將覆蓋到的需求j對應的a[0...1] [j]賦值為-1 ; 3)重復步驟I),直至所有的sum[i]=0。
【文檔編號】G06F11/36GK104391790SQ201410673332
【公開日】2015年3月4日 申請日期:2014年11月21日 優(yōu)先權日:2014年11月21日
【發(fā)明者】趙霞, 孫言弟, 張新玲 申請人:浪潮電子信息產業(yè)股份有限公司