一種兩兩覆蓋組合軟體測試用例集生成方法
2023-05-30 17:43:21 2
專利名稱:一種兩兩覆蓋組合軟體測試用例集生成方法
技術領域:
本發明屬於軟體測試技術領域,具體涉及到組合軟體測試中測試用例集的生成問 題,提供一種兩兩覆蓋組合軟體測試用例集生成方法,主要解決在軟體測試中如何根據實 際需要,用儘可能少的測試用例來儘可能多地覆蓋軟體系統中的各因素及相應兩兩覆蓋組 合,系統地檢測它們之間的相互作用對系統所產生的影響,從而在保證測試用例集錯誤檢 測能力的基礎上儘可能地減少測試用例數量,提高軟體測試效率,減低測試成本。
背景技術:
軟體測試作為保證軟體質量和可靠性的重要手段,貫穿於軟體生命周期的整個過 程,在整個軟體生命周期中佔有重要的地位,大約佔整個開發成本的60 %以上。特別對於 航空航天,軍事國防等性命攸關的系統,其測試費用甚至高達其工程開發階段費用總和的3 到5倍。針對一個具體的待測軟體系統,我們一方面要考慮採用什麼樣的測試方法對其進 行系統科學的測試,另一方面要考慮如何產生數量少而質量高的測試用例集,既達到對系 統的充分測試,又能夠提高測試的效率,降低測試的成本。軟體作為一個複雜的邏輯系統,它的正常運行可能受到多因素的影響,這些因素 可能是系統的配置、內部事件、外部輸入等。除單個因素之外,上述因素之間的相互作用也 可能會對軟體的正常運行產生影響。因此,在測試時不僅要考慮所有對軟體產生影響的可 能因素,而且對存在於這些因素之間的相互作用,即因素之間的組合也要進行充分的測試。 研究發現,大約70%的軟體故障是由一個或兩個參數的相互作用而引發,為了使用儘可能 少的測試用例來有效檢測這些因素之間的相互作用對系統產生的影響,人們提出了組合軟 件測試方法,組合軟體測試方法是一種設計測試用例集的方法,它依據一定的組合覆蓋準 則產生測試用例。根據覆蓋程度的不同,可以分為單因素覆蓋、兩兩組合覆蓋等。這種方法 力求用儘可能少的測試用例,覆蓋儘可能多的影響因素,有效的檢測軟體系統中各個因素 以及它們之間的相互作用對系統產生的影響。當前組合測試研究的核心問題是組合測試用 例集生成問題,即如何針對具體待測軟體,在滿足給定組合覆蓋要求的前提下,生成規模盡 可能小的測試用例集,以便在保證錯誤檢測能力的前提下儘可能的降低測試成本。大量實踐表明,組合軟體測試在軟體測試實踐中具有很好的效果,因此,很有必要 對軟體進行組合軟體測試,尋找高效地自動組合測試用例集的生成方法,對實現軟體測試 過程自動化、高效化和智能化,有著十分重要的現實意義。在軟體測試中,測試人員根據待測軟體系統SUT的需求規格說明書,確定相應的 測試需求說明書,在軟體測試需求說明書中可以準確的獲得影響待測軟體系統的各種因素 和因素之間的約束限制,這些因素可以用集合F表示為F= {fi; f2,…,fi;…,fn},η為 影響待測系統的因素的個數,i為1到η中的任意一個值,其中因素&假設經過等價類劃
分後包含?1個離散的值,則因素fi可能的取值可以用集合\表示K = PfpVi2^ViyJ,其
中Vil表示因素&的第一個離散值,vi2表示因素&的第二個離散值,1V.表示因素&的第Pi個離散值。該待測系統SUT因素的所有離散值共有P個P = ΣPi,約束限制集合可以用C
1=1
表示C = {Cl,C2,…,CfflI,m為約束限制的個數待測軟體系統SUT的一個測試用例test可 以用η元組表示為test = (V1, V2,…,Vn),其中V1 e V1, v2 e V2, vn e Vn且滿足約束限制 C,待測軟體系統SUT的一個測試用例集TS假設是有m個測試用例構成的,通過對測試用例 集TS中的各個測試用例在待測軟體系統SUT中的運行來實現對待測軟體系統SUT的測試。 對待測軟體系統SUT因素的所有離散值按照因素從左到右的順序進行編號,第一個因素 的第一個離散值V11編號為1,第二個離散值V12的編號為2,……,依次類推,第i個因素& 的第一個離散值Vil編號為因素到f^的離散值個數之和再加1,……,最後一個因素fn 的最後一個離散值的編號為P,這樣後面我們就用編號來代表系統所有的可能離散取值。考慮到待測軟體系統SUT中任意兩個因素間的相互作用,都可能對系統產生重要 影響,測試用例集TS需要保證覆蓋任意兩個因素間所有的取值組合且滿足約束限制,待測 軟體系統SUT中任意兩個因素對可以用二元關係矩陣T= (ti,Ppxp表示,其中,P表示待測 系統的因素的全部離散值個數,i,j為離散值的編號,t^.表示第i個離散值和第j個離散 值覆蓋對是否要覆蓋,t^. = 1表明第i個離散值和第j個離散值對需要覆蓋,^,J = 0表 明第i個離散值和第j個離散值對不需要覆蓋,不需要覆蓋的原因可以是同一因素內部的 離散值對,也可以是違背了約束限制C的不同因素之間的離散值對。由上述描述可知,兩兩覆蓋的組合測試用例集生成問題就是根據待測軟體系統 SUT所有因素的離散值和約束限制情況找到覆蓋二元關係矩T = (tu)PXP中所有兩兩組合 對的規模最小的測試用例集。組合測試方法始於20世紀80年代Mandl提出的兩兩組合覆蓋的軟體測試,並成 功應用於Ada編譯器的測試,並利用正交拉丁方來產生測試用例集;20世紀90年代末,貝 爾實驗室提出一種基於貪心策略的組合測試用例生成方法,並開發了 AETG系統用於產生 組合測試用例集。2001年khroeder提出了利用軟體附加信息對組合測試的測試用例集 進行約簡和優化的方法;Lei和Tai提出了一種基於參數順序擴充的兩兩組合測試數據生 成策略,並開發了 I^airTest系統用於產生兩兩組合的測試用例。2002年Kuhn和Reilly 研究了組合測試的可用性,發現大約70%的故障是由兩個以下參數的相互作用引起的。同 年,Kobayashi和Tsuchiya提出了一種生成兩兩組合測試數據的代數方法。2003年Cohen Μ. B.等人將模擬退火算法應用於多重維數組合測試用例的生成,該方法綜合考慮了運算 效率和運算結果之間的關係,可以根據時間和效率上不同的要求來生成儘可能優的結果。 2004年,Shiba和Tsuchiya等人研究了遺傳算法和蟻群算法在組合測試數據自動生成中 的應用。Colbourn和Cohen Μ. B等人提出一種兩兩組合測試數據生成的確定性密度方法。 Schroeder等人通過實驗比較了 N維組合測試與相同規模隨機測試的錯誤檢測能力。2005 年,Colbourn和Sierwood等人研究了兩種組合覆蓋表的生成方法,分別應用於具有不同參 數取值的兩兩組合覆蓋表和高維組合覆蓋表的生成。2006年Microsoft的Czerwonka發布 了組合測試用例生成工具PICT,該工具使用基於one-test-at-a-time策略的方法生成測 試用例集;徐寶文,聶長海,史亮等人提出了兩種類似的二水平二維組合測試用例集生成方 法;嚴俊、張健等人提出了在組合測試用例生成中完備搜索算法的應用。2007年,徐寶文等 人提出了一種基於in-parameter-order策略的廣義變力度組合測試用例集生成方法,命
5名為ParaOrder,完整的解決了相鄰因素組合測試用例的生成問題。2010年12月查日軍等 人提出組合測試數據生成的交叉熵與粒子群方法,該方法簡單的使用了傳統粒子群算法取 得了一定的效果。從近年來國內外對組合測試用例生成方法的研究,我們可以發現,他們採用的方 法可以概括為針對不同類型的組合測試結合一定最優化搜索方法來實現測試用例的生 成,這裡使用的方法主要有確定的搜索方法(即代數方法)和基於進化和模擬生物的優化 方法(即啟發式方法)。代數方法主要正交表方法,圖覆蓋的方法,由於組合測試用例生成 是一個NP-C問題,該方法主要適合於小規模的問題;針對該NP-C問題使用啟發式方法生 成近似最優解是一種常用的方法,使用的啟發式算法主要有貪心算法、爬山算法、模擬退 化算法、洪水算法,禁忌搜索等個體搜索算法和遺傳算法、蟻群算法,粒子群等群體智能算 法。從前人的實驗結果我們可以看出群體智能算法的尋優效果要比個體算法好,但是整體 尋優效果相當,原因在於他們只是簡單的套用傳統的遺傳算法、蟻群算法,粒子群算法,沒 有在使用中充分的體現組合測試用例生成問題的解空間離散的特點,位置更新沒有體現組 合測試用例各個因素的各個離散值出現機會基本均等的特點,並且採用一次產生一個測試 用例的方法,沒有從測試用例集的整體情況考慮,不利於得到最小的測試用例集,而且計算 量大。所以其尋優效果一般,不利於整體最優測試用例集的產生。離散粒子群優化算法(DPSO)是Kennedy和m^erhart在1997年為解決離散空間問 題提出的離散版的粒子群算法,即傳統的離散粒子群算法,粒子的速度和位置公式如式(1) 和式O)
權利要求
1. 一種兩兩覆蓋組合軟體測試用例集生成方法,其特徵在於主要包括以下步驟(1)在軟體測試中,測試人員根據待測軟體系統SUT的需求規格說明書,確定相應的測 試需求說明書,在軟體測試需求說明書中可以獲得影響待測軟體系統SUT的各種因素和因 素之間的約束限制,這些因素可以用集合F表示為F= {f1;f2,···,&,…,fj,n為影響待 測軟體系統的因素的個數,i為1到η中的任意一個值,其中因素f Jg設經過等價類劃分後包含Pi個離散的值,則因素&可能的取值可以用集合Vi表示
2.根據權利要求1所述的一種兩兩覆蓋組合軟體測試用例集生成方法,其特徵在於 該方法可以應用於軟體測試過程中的單元測試階段,集成測試階段,確認測試階段,系統測 試階段,驗收測試階段。
全文摘要
針對組合軟體測試中兩兩覆蓋組合測試用例集的生成問題,本發明公開了一種兩兩覆蓋組合軟體測試用例集生成方法,該方法受啟發於離散粒子群算法,採用一個粒子代表一個測試用例集,不同粒子代表不同的測試用例集生成方案,對測試用例集從整體上評價其對各個因素組合的覆蓋情況,粒子位置更新利用各個測試用例中各因素離散值出現的次數為依據隨機產生下一代個體位置,最後得到滿足約束且覆蓋所有因素組合的測試用例集。與已有的方法相比,本發明提供一種與初始值無關、收斂速度快、計算量小、穩定性好且生成的測試用例集整體規模小的兩兩覆蓋組合軟體測試用例集生成方法,提高軟體測試效率,減低測試成本。
文檔編號G06F11/36GK102135937SQ20111006080
公開日2011年7月27日 申請日期2011年3月15日 優先權日2011年3月15日
發明者孫家澤, 孟偉軍, 宋輝, 張 榮, 王小銀, 王曙燕 申請人:西安郵電學院