專利名稱:基礎軟件平臺集成測試的組合選擇方法
技術領域:
本發(fā)明涉及基礎軟件集成測試組合選擇方法,尤其是指適用于基礎軟件平臺的集成測試組合選擇方法。
背景技術:
近年來,以操作系統(tǒng)為核心的基礎軟件呈平臺化、體系化發(fā)展趨勢。
基礎軟件平臺(Foundational Software Platform)是指由操作系統(tǒng)、中間件、數(shù)據庫、安全產品、辦公套件以及關鍵開發(fā)庫和工具等通用型基礎軟件和構件組建的一系列應用系統(tǒng)必需的基礎支撐平臺?;A軟件平臺的質量至關重要?;A軟件平臺的質量指的是平臺整體的質量,既包含平臺內部的每一個構成軟件的質量,又包含各構成軟件之間交互的質量。集成測試是保證基礎軟件平臺質量的重要手段?;A軟件平臺集成測試關注基礎軟件組合到一起形成的平臺的功能性、性能,以及基礎軟件間的兼容性、互操作性。在實施基礎軟件平臺集成測試時,已有測試方法都是面向單個軟件的,缺少面向基礎軟件平臺的集成測試方法。一個突出問題是由于有多種基礎軟件的類別、每一類別不同品牌、以及各品牌的不同版本軟件,使得基礎軟件平臺組合數(shù)目龐大,對每一種組合都進行測試導致了集成測試周期長,成本高問題,急需要一種降低基礎軟件平臺集成測試組合規(guī)模的有效方法,在保證基礎軟件間交互覆蓋的同時,有效降低集成測試組合的規(guī)模,以提高集成測試的效率。
發(fā)明內容
基礎軟件平臺集成測試組合選擇問題的形式化描述如下假設基礎軟件平臺由n類基礎軟件組成,采用n個參數(shù)^A,F;,…,^描述。每類基
礎軟件有一個可選擇軟件品牌集合,表示為A,A,...,4。其中A表示參數(shù)^
4可取的值的集合,并假設符號&表示第!個參數(shù)《可取值的個數(shù),即丄,中
元素的個數(shù)<=IAI。由于導致基礎軟件平臺發(fā)生問題有這樣一些參數(shù) 某一個參數(shù)的某一種取值,某兩個參數(shù)的某種取值組合,…,某w-l個參 數(shù)的某種取值組合,直到所有這"個參數(shù)的某種取值組合。因此基礎軟件 平臺集成測試組合選擇問題就是如何選擇測試組合,使其能夠以最少的 數(shù)量最大限度地對上面各種可能性因素進行覆蓋。
基礎軟件平臺由操作系統(tǒng)、數(shù)據庫、中間件、辦公套件、安全套件 等基礎軟件和構件組成,若將每種基礎軟件或構件用一個對應的因素來 表示,每類不同品牌產品或不同名稱構件表示為各因素變量的多種取值, 則基礎軟件平臺是一個多因素系統(tǒng)。從以上對基礎軟件平臺集成測試組 合選擇問題的形式化描述可以看出,基礎軟件平臺集成測試組合選擇問 題,是一個多因素多水平抽樣問題。在數(shù)理統(tǒng)計領域,針對多因素多水平 抽樣問題,數(shù)學家們利用希臘的正交拉丁方提出了正交表的方法。根據正 交拉丁方構建的正交表實現(xiàn)對各種因素組合的等概率覆蓋。這種方法通 過定義一組對象的配對方式的組合,來盡力限制組合規(guī)模的擴大。它根據 正交性從全面搭配中挑選出部分有代表性的組合。這些組合是均勻分散 的,且能真實地反映原來總體的特征。
針對基礎軟件平臺集成測試中出現(xiàn)的集成測試組合太多,測試時間 和成本迅速增長的情況,將正交表方法應用于基礎軟件平臺集成測試組 合選擇過程中,提出了基于正交表選擇基礎軟件平臺集成測試組合的方 法。這種方法在保證完全覆蓋基礎軟件間交互作用的前提下,有效合理地 減少了測試組合數(shù)目。該方法是將基礎軟件平臺看作是一個多因素的系 統(tǒng),組成平臺的每類基礎軟件用一個對應的因素變量來表示,每類基礎 軟件的不同品牌產品表示為各因素變量的多種取值,根據因素數(shù)和水平 值構建相應的正交表或基于正交表的覆蓋表,采用正交表或覆蓋表來選擇集成測試組合,正交表或覆蓋表的每一行為一個測試組合,行數(shù)為基 礎軟件平臺集成測試組合。
本發(fā)明的技術效果是,為基礎軟件平臺集成測試提供了一種集成測 試組合選擇方法,按照該方法選擇的集成測試組合進行基礎軟件平臺集 成測試,在保證基礎軟件間交互覆蓋的同時,有效降低了集成測試組合 數(shù),以較少的測試用例實現(xiàn)對基礎軟件平臺科學有效的測試。
相關定義
定義1:基礎軟件平臺集成測試組合TC (Testing Combination) 假設基礎軟件平臺由n類基礎軟件組成,采用"個參數(shù)巧,^2,,3,...,, 描
述。每類基礎軟件有一個可選擇軟件品牌集合,表示為A,A,...,i:。。其中丄,.
表示參數(shù)巧可取的值的集合,并假設符號&表示第/個參數(shù)巧可取值的個
數(shù),即丄'中元素的個數(shù)A:,.-IAI。 一個測試組合為從"個參數(shù)尸1,,2,尸3,...,, 的可取值集合;A,…人中,各選擇一個值組合形成的一個"元組,即從每 類基礎軟件的各可選擇軟件集合中選擇一種軟件組合形成的一個具體的 基礎軟件平臺實例。
定義2:兩兩組合覆蓋表與正交表
設^是一個"xm矩陣,^ =( )歸,其第j列表示第j個參數(shù),它的可 取值集合為丄"_/ = l,2,...,m,即 e丄"/ = l,2v..,w,且~ =|丄;l表示集合丄乂中 元素個數(shù)或者第j個參數(shù)的取值個數(shù)為~ 。如果J的任意兩列第! 列和第) 列都滿足丄,.的元素和、的元素的全部組合都在第z'列和第列的二元有
序對中等概率地出現(xiàn),那么稱^是正交表;如果只要求出現(xiàn)而不要求等概 率出現(xiàn),那么稱^是一個覆蓋表,^的行數(shù)"為滿足兩兩組合覆蓋的測試 組合個數(shù),如果它是能保證上述條件成立的最小正整數(shù),那么^可以稱為 最小兩兩組合覆蓋表。覆蓋表的行數(shù)即測試組合數(shù)有一個上界和下界。正交表是一種特殊的覆蓋表,要求各種組合的等概率覆蓋,而覆蓋表 只要求對各種組合的覆蓋,不要求等概率。在軟件測試中,測試用例只要 達到對各個參數(shù)的各種組合的全面覆蓋即可,沒有必要等概率覆蓋。
定義3:正交表的表示
正交表是運用組合數(shù)學理論在正交拉丁方的基礎上構造的一種規(guī)格
化的表格。正交表通常用下面的形式表示丄次數(shù)休平數(shù)因素數(shù))。其中
次數(shù)(Runs):需要測試的基礎軟件平臺測試組合個數(shù),等于正交 表的行數(shù)。
因素數(shù)(Factors):即構成平臺的基礎軟件類別數(shù),表示為正交表 列數(shù),對應覆蓋表中的參數(shù)。類別通常按照基礎軟件的功能分類,如操 作系統(tǒng)、數(shù)據庫、中間件等。
水平數(shù)(Levels):單個因素可取得的不同值數(shù),對應覆蓋表中的 參數(shù)值。取值范圍為同 一 類基礎軟件的不同品牌軟件的集合。
強度(Strength):因素間的相互關系,當強度為二時,只考慮兩 兩因素之間的影響,如果強度為三,則考慮三個因素對結果的影響;
定義4:基礎軟件平臺測試組合覆蓋率
假設組成基礎軟件平臺的基礎軟件有"類,即有"個參數(shù),每個參數(shù)巧 的取值個數(shù)為A., !-l,2,…,",其中某附(1《m《n)個參數(shù)的各種取值組合 數(shù)為Cm = 、 x、 x...x、,若^為該基礎軟件平臺測試組合覆蓋表,浮皮^覆蓋 的這w個參數(shù)的組合數(shù)為,稱被^覆蓋的這w個參數(shù)的組合數(shù)與該 附個參數(shù)的所有組合數(shù)Q的比值為基礎軟件平臺測試組合覆蓋表A對該
附個參數(shù)的測試組合覆蓋率,記為; = ^。
圖l:強度為2的正交表,L9(34)。
7圖2:映射后的正交表,L9(34)。 圖3:基礎軟件平臺集成測試組合選擇方法流程圖。
具體實施例方式
請對照圖3所示的流程圖,本方法的具體實施方式
如下
(1) 確定因素(變量)數(shù)和水平(變量值)數(shù)
將待測的基礎軟件種類數(shù)映射為因素數(shù)。如,"=^,^"'"^} = {操作 系統(tǒng),數(shù)據庫,中間件,...},因素數(shù)為因素集合的元素個數(shù),表示為"—,l; 將各類基礎軟件可選的不同品牌軟件數(shù)映射為水平數(shù)。如, LF,—0SpOV'"O^-(中標普華Linux服務器,紅旗Linux服務器,銀河
麒麟服務器,...}, ^-PA,^2…,^W—達夢數(shù)據庫,金倉數(shù)據庫,神舟
OSCAR數(shù)據庫,,..}, 、-^『',M『"…,M^—東方通中間件,中創(chuàng)中間件, 金蝶中間件,...)等。各因素的水平數(shù)為各水平集合的元素個數(shù),表示為
=| 、 1,其中z' = W,…",分別表示各因素的水平值。
(2) 構建正交表或覆蓋表
若各因素的水平數(shù)相同,在正交表目錄中查找"因素數(shù)-"","水
平數(shù)=&"的正交表,若找到,則選擇該正交表,并將因素和水平映射到 正交表中,完成正交表構建。若無法找到對應的正交表,則在正交表目
錄選擇滿足"因素數(shù)^""、"水平數(shù)2&,,且行數(shù)最少的正交表,將因素 和水平映射到正交表中,然后對于1到n個因素,執(zhí)行若"因素的水 平數(shù)〈所選正交表的水平數(shù)",則將該因素的水平值按順序循環(huán)填入到所 選正交表的該因素的空余水平中,對于不存在的因素列,則讓其空著, 形成一個基于正交表的覆蓋表。
若各因素的水平數(shù)不同,則首先查找正交表目錄,查找是否有滿足 需求的混合型的正交表,若找到,則選擇該正交表,并將因素和水平映射到正交表中,完成正交表構建。否則,在正交表目錄中選擇滿足"因 素數(shù)^""、"水平數(shù)^max(A:,0"且行數(shù)最少的正交表,并將因素和水平值 映射到表中;然后對于l到n個因素,執(zhí)行若"因素的水平數(shù)〈所選正 交表的水平數(shù)",則將該因素的水平值按順序循環(huán)填入到所選正交表的 該因素的空余水平中,對于不存在的因素列,則讓其空著即可,形成一 個覆蓋表。
若在正交表目錄中無法找到滿足要求的正交表,則根據正交表的構
r , /7、" f = (/ "'(max(max ,m-1)))2
造理論可以生成正交表A^",其中 ,對這個正
交表擴展的部分用可以取到的水平值進行隨機取代,即可得到一張最壞
情況下的覆蓋表。
根據所構建的覆蓋表的行數(shù),即實際需要執(zhí)行測試組合數(shù)進行評估, 若測試組合數(shù)在測試的時間和成本允許的可執(zhí)行范圍內,則完成覆蓋表 的構建。若測試組合數(shù)大到不在測試預算內,則需要構建一個行數(shù)更少 的覆蓋表,可采用已有的啟發(fā)式方法或代數(shù)方法等來構建覆蓋表。 (3)將正交表或覆蓋表各行中所描述的組合轉化成測試組合
正交表或覆蓋表的行數(shù)即基礎軟件平臺集成測試組合數(shù)。將獲得的 正交表或覆蓋表各行中所描述的組合映射為基礎軟件平臺集成測試組 合。可根據需要適當?shù)卦黾右恍岩捎屑嫒菪?、互操作等問題,而表中 沒有出現(xiàn)的集成測試組合。
如下為3個具體應用實例 (1 )實施例1
本實施例將結合附圖的圖1及2說明采用本方法進行基礎軟件平臺 集成測試組合選擇的具體實施方式
。
基礎軟件平臺由操作系統(tǒng)、數(shù)據庫、中間件和辦公套件四類基礎軟
9華Linux服務器, 紅旗Linux服務器,銀河麒麟服務器}, DB—達夢數(shù)據庫,金倉數(shù)據庫, 神舟OSCAR數(shù)據庫} , MW—東方通中間件,中創(chuàng)中間件,金蝶中間 件),OFFICEH中標普華Office,永中Office,金山WPS}。若不進行選擇, 需要測試的基礎軟件平臺測試組合數(shù)為hhh"Sl種,若每一個基礎軟
件平臺測試組合的平均測試用例數(shù)為3000個,則測試人員對81種組合 全部測試需執(zhí)行的測試用例數(shù)為243000個。
采用本方法選擇測試組合,此時因素數(shù)為4,各因素的水平數(shù)均為3, 由于只考慮兩兩組合覆蓋,正交表的強度為2;查詢正交表目錄,常用正 交表目錄可以通過查閱數(shù)學工具書或者相關網頁得到,如網址 http://www. research, att. com/ njas/oadir/提供了 200個正交表列表;查詢
正交表目錄后選擇的正交表為^(34), "(34)表示一個4因素3水平的正 交表,如圖1所示。表中有9行,即次數(shù)為9。
將圖1描述的正交表中各行列映射為具體的水平值和因素值,形成 圖2所示的數(shù)據,映射后的表的行數(shù)為測試組合數(shù),每一行為一種測試 組合, 一共9行。這9種基礎軟件平臺集成測試組合覆蓋了任意兩個因 素的所有兩兩組合,則測試人員只需要運4亍這9種測試組合的測試用例 即可,測試用例數(shù)減少為27000個。 (2 )實施例2
組合形成基礎軟件平臺的被測基礎軟件或構件的種類數(shù)為5,為描述 簡單起見表示為A, B, C, D, E,其中,A和B各有2個取值(Al、 A2和 Bl、 B2) , C和D各有3個取值(Cl、 C2、 C3和Dl、 D2、 D3 ) , E有4 個取值(El、 E2、 E3、 E4)。若不進行選擇,需要測試的基礎軟件平臺 測試組合數(shù)為2x 2x3x3x4 = 144種。
采用本方法選擇測試組合,此時因素數(shù)為5,各因素的水平數(shù)不同,2個2水平因素,2個3水平因素,以及一個4水平因素,查詢正交表目
錄,找到的滿足需求條件的正交表為;(45),該表共有16行,將正交表 中各行列映射為水平值和因素值,對于只有3個或者2個水平的因素, 則順序取已有的水平值填充不存在的水平,填充后形成覆蓋表。覆蓋表 的每一行為一個測試組合,16種測試組合覆蓋了任意兩個因素的所有兩 兩組合,測試人員只需要運行這16種測試組合的測試用例。 (3)實例3
組合形成基礎軟件平臺的被測基礎軟件或構件的種類數(shù)為5,為描述 簡單起見表示為A, B, C, D, E,其中,A和B各有2個取值(Al、 A2和 Bl、 B2 ) , C和D各有3個取值(Cl、 C2、 C3和Dl、 D2、 D3 ) , E有6 個取值(El、 E2、 E3、 E4、 E5、 E6)。若不進行選擇,需要測試的基礎 軟件平臺測試組合數(shù)為2><2><3><3" = 216種。
采用本方法選擇測試組合,此時因素數(shù)為5,各因素的水平數(shù)不同, 2個2水平因素,2個3水平因素,以及一個6水平因素,查詢正交表目
錄,行數(shù)最少的滿足要求的正交表為"78,將其映射為一個非最優(yōu)的覆 蓋表并轉化為測試組合,需要執(zhí)行49種測試組合,雖然比216種已經少 了很多,但是對于有限的測試時間和成本來說,可能仍舊是測試組合數(shù) 太多,因此可以增加一個評估步驟,并根據評估結果及需要進一步減少 測試組合數(shù)。
以上即是根據所構建的覆蓋表的行數(shù),即實際需要執(zhí)行的測試組合 數(shù)49進行評估,若測試組合數(shù)49在測試的時間和成本允許的可執(zhí)行范 圍內,則完成所述覆蓋表的構建;若測試組合數(shù)49不在測試預算內,則 采用啟發(fā)式方法或代數(shù)方法來構建一個行數(shù)更少的覆蓋表。在本實施例 中,是采用Williams A.W提出的構建最小覆蓋表的方法,形成覆蓋表, 獲得的覆蓋表的測試組合數(shù)為18種,而且覆蓋了任意兩個因素的所有兩兩組合,測試人員只需要運行這18種測試組合的測試用例即可。
從以上3個實施例可以看出,采用提出的基礎軟件平臺集成測試組 合選擇方法,在保證兩兩組合100°/ 覆蓋的前提下,有效地減少了基礎軟 件平臺集成測試組合數(shù),提高了集成測試的效率。
1權利要求
1.一種基礎軟件平臺集成測試的組合選擇方法,其特征在于包含以下主要步驟(1)確定因素數(shù)和水平數(shù);基礎軟件平臺由n類基礎軟件組成,采用n個參數(shù)F1,F(xiàn)2,F(xiàn)3,...,F(xiàn)n描述,每類基礎軟件有一個可選擇軟件品牌集合,表示為L1,L2,...,Ln;其中Li表示參數(shù)Fi可取的值的集合,并假設符號ki表示第i個參數(shù)Fi可取值的個數(shù),即Li中元素的個數(shù)ki=|Li|;將基礎軟件種類數(shù)映射為因素數(shù),表示為n=|F|;將各類基礎軟件可選的不同品牌軟件數(shù)映射為水平數(shù),<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><msub> <mi>k</mi> <mi>i</mi></msub><mo>=</mo><mo>|</mo><msub> <mi>L</mi> <msub><mi>F</mi><mi>i</mi> </msub></msub><mo>|</mo><mo>,</mo> </mrow>]]></math> id="icf0001" file="A2009101699800002C1.tif" wi="17" he="4" top= "109" left = "163" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>i=1,2,...n,分別表示各因素的水平值;(2)構建正交表或覆蓋表,將因素和水平值映射到表中;若各因素的水平數(shù)相同,則在正交表目錄中查找,如果找到對應的正交表,將因素和水平值映射到正交表中,完成正交表構建;若各因素的水平數(shù)不同,或者無法找到對應的正交表,則選擇滿足“因素數(shù)≥n”、“水平數(shù)≥max(ki)”且行數(shù)最少的正交表,將因素和水平值映射到正交表中,對于不存在的因素列,讓其空著,對于正交表中各因素的空余水平值,用各因素的水平值按順序循環(huán)填入,形成一個基于正交表的覆蓋表;若仍無法找到滿足要求的正交表,則根據正交表的構造理論可以生成 id="icf0002" file="A2009101699800002C2.tif" wi="15" he="5" top= "206" left = "22" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>其中<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>t</mi><mo>=</mo><msup> <mrow><mo>(</mo><mi>pri</mi><mrow> <mo>(</mo> <mi>max</mi> <mrow><mo>(</mo><mi>max</mi><munder> <msub><mi>k</mi><mi>i</mi> </msub> <mrow><mn>1</mn><mo>≤</mo><mi>i</mi><mo>≤</mo><mi>n</mi> </mrow></munder><mo>,</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow> <mo>)</mo></mrow><mo>)</mo> </mrow> <mn>2</mn></msup><mo>,</mo> </mrow>]]></math> id="icf0003" file="A2009101699800002C3.tif" wi="53" he="7" top= "207" left = "51" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>對這個正交表擴展的部分用水平值進行隨機取代,即可得到一張最壞情況下的覆蓋表;(3)將正交表或覆蓋表各行中所描述的組合轉化成基礎軟件平臺集成測試組合;正交表或覆蓋表的行數(shù)即基礎軟件平臺集成測試組合數(shù),每一行為一個集成測試組合;按照該方法選擇的基礎軟件平臺集成測試組合實現(xiàn)對基礎軟件間兩兩組合的100%覆蓋。
2 .如權利要求1所述的基礎軟件平臺集成測試的組合選擇方法,其特征在于,步驟(2 )還包括一個評估步驟,該步驟為根據所構建的覆蓋表的行數(shù),即實際需要執(zhí)行的測試組合數(shù)進行評估,若測試組合數(shù)在測試的時間和成本允許的可執(zhí)行范圍內,則完成所述覆蓋表的構建;若測試組合數(shù)不在測試預算內,則采用啟發(fā)式方法或代數(shù)方法來構建一個行數(shù)更少的覆蓋表。
全文摘要
本發(fā)明公開了一種基礎軟件平臺集成測試的組合選擇方法,其針對基礎軟件平臺集成測試組合爆炸的問題,提出了一種選擇基礎軟件平臺集成測試組合的方法。該方法將基礎軟件平臺看作是一個多因素的系統(tǒng),組成平臺的每類基礎軟件用一個對應的因素變量來表示,每類基礎軟件的不同品牌產品表示為各因素變量的多種取值,根據因素數(shù)和水平值來構建相應的正交表或基于正交表的覆蓋表,采用正交表或覆蓋表來選擇集成測試組合,按照選擇的集成測試組合進行基礎軟件平臺集成測試。應用實施例表明該方法保證了基礎軟件平臺集成測試組合對基礎軟件間兩兩交互的全覆蓋,并有效地降低了基礎軟件平臺集成測試組合數(shù)。
文檔編號G06F9/44GK101645012SQ200910169980
公開日2010年2月10日 申請日期2009年9月11日 優(yōu)先權日2009年9月11日
發(fā)明者蘭雨晴, 靜 高 申請人:蘭雨晴