• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于數(shù)據(jù)挖掘和決策樹的測試用例重用技術(shù)研究

      2019-09-13 08:40:30安鵬偉王嬴超
      導(dǎo)航定位與授時(shí) 2019年5期
      關(guān)鍵詞:慣導(dǎo)測試用例用例

      劉 偉,安鵬偉,王嬴超

      (1. 北京京航計(jì)算通訊研究所, 北京 100074;2. 北京市涉密信息載體安全管理工程技術(shù)研究中心, 北京 100074)

      0 引言

      測試工作具有復(fù)雜性和創(chuàng)造性,需要高度智慧。其目的在于發(fā)現(xiàn)軟件錯(cuò)誤,衡量軟件質(zhì)量[1],即測試工作只能查找出程序的錯(cuò)誤,而不是證明程序沒有缺陷[2]。即便測試過程非常嚴(yán)格,測試后的程序中仍然可能隱藏缺陷。

      目前國內(nèi)外的測試用例重用主要分為腳本測試用例重用和文本類型測試用例重用[3]。其中,腳本類型測試重用的思想是將腳本類型的測試用例當(dāng)成軟件構(gòu)件來管理,并借用軟件重用的方法,規(guī)定了重用用例的命名要求、注釋要求、復(fù)雜度要求和編程規(guī)則要求等,便于后續(xù)重復(fù)使用。文本類型測試用例主要包含測試輸入、執(zhí)行步驟和預(yù)期結(jié)果等方面,針對文本類型的測試用例重用研究,主要集中在如何管理測試用例和如何查詢上。

      本文首先研究了可重用的測試用例的特性,為采集可重用的測試用例提供指導(dǎo),并對飛航軟件評測中心4個(gè)型號(hào)的平臺(tái)式慣性導(dǎo)航軟件和2個(gè)型號(hào)的捷聯(lián)式慣性導(dǎo)航軟件的近2000個(gè)測試用例進(jìn)行了總結(jié)分類,提煉出了247個(gè)可以重用的測試用例。然后將數(shù)據(jù)挖掘技術(shù)應(yīng)用于飛航軟件測試用例重用中,建立了飛航測試用例重用模型。通過決策樹算法,將測試專家分類重用測試用例的思想固化,并可以根據(jù)新采集的可重用的測試用例,不斷擴(kuò)充分類規(guī)則,使測試用例重用庫具有不斷自擴(kuò)充和自完善的能力。最后通過應(yīng)用上述模型建立導(dǎo)航軟件測試用例重用庫,并在實(shí)際項(xiàng)目中開展應(yīng)用,取得了較好的效果。

      1 軟件測試用例重用

      1.1 軟件測試用例重用概述

      軟件測試重用是指在2次或多次不同的軟件測試過程中重復(fù)使用相同或相近的測試資源來開展測試的過程[4]。它的出發(fā)點(diǎn)是保證對程序的測試不再采用一切從零開始的測試模式,而是充分利用現(xiàn)有測試經(jīng)驗(yàn),實(shí)現(xiàn)對軟件測試過程中可重用成分最大程度的重用,避免重復(fù)勞動(dòng)[5]。軟件測試重用主要包含測試流程的重用、測試思想的重用和測試用例的重用這3個(gè)方面。其中,測試用例作為軟件測試的核心,它的重用也就成為開展軟件測試重用過程的關(guān)鍵環(huán)節(jié)[6]。

      對第三方測試機(jī)構(gòu)來說,首先總結(jié)出某一個(gè)導(dǎo)彈分系統(tǒng)的軟件測試中可以重用的測試用例,并采用智能算法,對測試用例進(jìn)行重用的分類和預(yù)測,實(shí)現(xiàn)測試用例重用,能夠提高軟件測試的質(zhì)量和效率,增加其覆蓋性,降低測試成本[7]。

      1.2 測試用例重用的評估標(biāo)準(zhǔn)

      通過參考國內(nèi)外文獻(xiàn),并結(jié)合飛航軟件測試用例的特點(diǎn),可以使用以下4個(gè)標(biāo)準(zhǔn)對測試用例的可重用性進(jìn)行評估[8]。

      1)通用性

      有些測試用例具有特殊性,只能在特定條件和環(huán)境下應(yīng)用,而不能移植至其他程序中,就沒有必要也不能夠重用這些用例,所以說可重用的測試用例具有通用性。為了讓采集的測試用例是通用的,本文針對某一類(如慣導(dǎo))軟件的測試用例,保留它們的共性,去除個(gè)性,以此來提高用例的可重用性。

      2)簡潔性

      測試用例的設(shè)計(jì)與所測模塊具有很強(qiáng)的相關(guān)性,其信息很復(fù)雜,為了進(jìn)行有效的重用,必須將它處理成簡單形式,僅包含對它的使用和重用的基本部分。本文采集的測試用例,僅保留了原測試用例中的用例說明、測試類型、測試輸入、測試步驟和期望測試結(jié)果這5項(xiàng)內(nèi)容。

      3)實(shí)施信息豐富性

      可重用的測試用例需要有豐富的參考信息,包括軟件功能和實(shí)施環(huán)境等信息。但是測試用例中不包含此類信息,為后續(xù)重用該測試用例帶來一定困難。本文在采集可重用的測試用例的同時(shí),還增加了軟件功能和實(shí)施環(huán)境等方面的描述,增加了用例的重用可能性。

      4)對軟件功能驗(yàn)證的全面性

      一組好的測試用例需要充分驗(yàn)證其軟件功能。相對于單個(gè)測試用例的重用,軟件測試用例中體現(xiàn)的測試思想和測試策略具有更高的價(jià)值。本文對每一個(gè)可重用的測試用例,提煉了該用例的設(shè)計(jì)思想,為后續(xù)使用者提供參考,提高了測試用例的設(shè)計(jì)水平和測試效果。

      2 數(shù)據(jù)挖掘與決策樹算法

      本文使用數(shù)據(jù)挖掘中的決策樹算法模擬測試專家對測試用例的屬性分類方法和對重用性的決策方法,然后使用訓(xùn)練好的決策樹對新采集的測試用例進(jìn)行智能分類和決策,得到新采集的測試用例的重用性高低。下面簡要介紹了數(shù)據(jù)挖掘以及決策樹算法。

      2.1 數(shù)據(jù)挖掘基本概念步驟

      數(shù)據(jù)挖掘[8](Data Mining, DM)是數(shù)據(jù)庫知識(shí)發(fā)現(xiàn)的過程,它是指從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的數(shù)據(jù)中,通過算法提取隱含在其中的、人們事先不知道的、但又有用的潛在信息和知識(shí)的過程[9]。目前數(shù)據(jù)挖掘廣泛應(yīng)用于關(guān)聯(lián)分析、分類、聚類分析和序列分析中[10]。

      整個(gè)數(shù)據(jù)挖掘過程包含若干挖掘步驟,主要步驟有:

      1)數(shù)據(jù)清洗(data cleaning),其目的是清除數(shù)據(jù)噪聲,并去除與挖掘主題不相關(guān)的數(shù)據(jù)。本文首先對飛航軟件評測中心的測試用例進(jìn)行初步整理,去除部分明顯無法重用的測試用例。

      2)數(shù)據(jù)轉(zhuǎn)換(data transformation),其目的是將數(shù)據(jù)處理為易于進(jìn)行數(shù)據(jù)挖掘的特定存儲(chǔ)形式。本文中將測試用例中的軟件功能、測試思想、測試類型和設(shè)計(jì)人員4項(xiàng)屬性和1項(xiàng)決策用離散的數(shù)字進(jìn)行表示,便于進(jìn)行數(shù)據(jù)挖掘。

      3)數(shù)據(jù)挖掘(data mining),知識(shí)挖掘的關(guān)鍵步驟,其目的是利用智能算法挖掘數(shù)據(jù)模式和規(guī)律知識(shí)。本文使用決策樹算法對測試用例的屬性和決策數(shù)據(jù)進(jìn)行挖掘,得到測試用例的分類與決策規(guī)則[11]。

      4)知識(shí)表示(knowledge presentation),其作用就是利用可視化和知識(shí)表達(dá)技術(shù),向用戶展示挖掘出的知識(shí)成果。本文使用產(chǎn)生式規(guī)則表示決策樹挖掘出的相關(guān)知識(shí)。

      分類和預(yù)測是數(shù)據(jù)挖掘的主要功能之一,應(yīng)用領(lǐng)域眾多。在數(shù)據(jù)挖掘中常用的分類方法有決策樹、貝葉斯網(wǎng)絡(luò)[12]和神經(jīng)網(wǎng)絡(luò)[13]等。其中,決策樹學(xué)習(xí)算法作為一種逼近離散函數(shù)的方法, 能夠?qū)W習(xí)析取表達(dá)式,同時(shí)對噪聲數(shù)據(jù)有很好的健壯性,因此應(yīng)用尤為廣泛[14]。

      2.2 決策樹算法概述

      決策樹學(xué)習(xí)算法是以實(shí)例為基礎(chǔ)的歸納學(xué)習(xí)算法,能夠從一組無次序和無規(guī)則的事例中推導(dǎo)出決策樹表示形式的分類規(guī)則,通常用來形成分類器和預(yù)測模型,可以對未知數(shù)據(jù)進(jìn)行分類或預(yù)測、數(shù)據(jù)挖掘等。決策樹在分類、預(yù)測、規(guī)則提取等領(lǐng)域有著廣泛應(yīng)用。

      2.3 決策樹算法

      一棵決策樹的內(nèi)部結(jié)點(diǎn)是屬性或?qū)傩缘募?,葉結(jié)點(diǎn)是所要學(xué)習(xí)劃分的類,內(nèi)部結(jié)點(diǎn)的屬性稱為測試屬性。用決策樹進(jìn)行分類的過程具有2個(gè)步驟:第一步是建立基于訓(xùn)練集的決策樹模型,這個(gè)過程的作用是從數(shù)據(jù)中獲取知識(shí),從而進(jìn)行機(jī)器學(xué)習(xí);第二步是利用生成的決策樹模型對未知的數(shù)據(jù)樣本進(jìn)行分類。使用決策樹對未知的數(shù)據(jù)樣本進(jìn)行分類時(shí),從根結(jié)點(diǎn)開始逐一測試該對象的屬性,順著分支走,直至到達(dá)某個(gè)葉結(jié)點(diǎn),此葉結(jié)點(diǎn)代表的類即為該對象所處的類。

      決策樹分類方法首先利用訓(xùn)練集建立決策樹模型,然后依據(jù)該模型對輸入數(shù)據(jù)進(jìn)行分類。分類的關(guān)鍵在于決策樹的構(gòu)建,這一過程包含建樹和剪枝兩步:第一步是建樹,選取部分訓(xùn)練數(shù)據(jù)建立決策樹,建樹依據(jù)廣度優(yōu)先遞歸算法,其中止條件為每個(gè)葉子結(jié)點(diǎn)屬于同一個(gè)類;第二步是剪枝,利用剩余數(shù)據(jù)對生成的決策樹進(jìn)行檢驗(yàn)和完善,調(diào)整不正確的內(nèi)容,對決策樹進(jìn)行剪枝和增加結(jié)點(diǎn),直到建立一個(gè)正確的決策樹。決策樹的建樹算法是通過遞歸過程,最終得到一棵決策樹,而剪枝則是為了降低噪聲數(shù)據(jù)對分類正確率的影響。

      2.3.1 ID3算法

      ID3算法是一種基于信息熵的決策樹分類算法?;镜腎D3算法通過自頂向下構(gòu)造決策樹來進(jìn)行學(xué)習(xí),其工作過程如下:首先選出最具有分類能力的測試屬性作為根結(jié)點(diǎn);然后為根結(jié)點(diǎn)屬性的每個(gè)可能值產(chǎn)生一個(gè)分支,并把訓(xùn)練樣例排列到適當(dāng)?shù)姆种е拢纬啥鄠€(gè)子集;每個(gè)子集又選擇最具有分類能力的另一個(gè)測試屬性進(jìn)行劃分,如此一直進(jìn)行到最后劃分出的所有子集僅包括同一類型的數(shù)據(jù)為止;最后得到一棵決策樹,可以用它對新的例子進(jìn)行分類。ID3是一種自頂向下增長樹的貪婪算法,其測試屬性的選取以信息熵的下降速度為標(biāo)準(zhǔn),信息熵的下降也就是信息不確定性的下降。

      1)屬性選擇

      ID3算法的研究核心是選取最具有分類能力的測試屬性。為此,ID3算法引入了信息論中熵(entropy)的概念,將信息增益(information gain)這個(gè)統(tǒng)計(jì)屬性作為選擇分類測試屬性的標(biāo)準(zhǔn)。設(shè)S為一個(gè)訓(xùn)練樣例集,目標(biāo)分類屬性C具有n個(gè)不同的值,記為C={C1,C2,…,Cn),pi代表分類屬性值為Ci的樣例在訓(xùn)練樣例集S中所占的比例。那么S相對于目標(biāo)分類屬性C的熵計(jì)算如下

      (1)

      屬性的信息增益代表由于使用這個(gè)屬性分割樣例而導(dǎo)致的期望熵降低。一個(gè)屬性A相對樣例集合S的信息增益Gain(S,A)定義如下

      Gain(S,A)=

      (2)

      其中,Values(A)是屬性A所有可能值的集合,Sv是S中屬性A的值為v的子集即Sv={s∈S|A(s)=v},Entropy(Sv)為子集Sv相對于目標(biāo)分類屬性C的熵。式(2)的第一項(xiàng)是原集合S的熵,第二項(xiàng)是屬性A的每個(gè)子集的熵的加權(quán)和,權(quán)值為屬于Sv的樣例占原始樣例S的比例。

      該算法計(jì)算每個(gè)屬性的信息增益,將具有最高信息增益的屬性選作給定集合S的測試屬性,創(chuàng)建一個(gè)結(jié)點(diǎn),并以該屬性標(biāo)記,對屬性的每個(gè)值創(chuàng)建分枝,并據(jù)此劃分樣本。

      2.3.2 C4.5算法

      ID3算法在數(shù)據(jù)挖掘中具有重要意義,但在實(shí)際應(yīng)用中,ID3算法存在不能處理連續(xù)屬性、計(jì)算信息增益時(shí)偏向選取值較多的屬性、抗噪性能差等弱點(diǎn)。在ID3算法的基礎(chǔ)上發(fā)展起來的C4.5算法,繼承了ID3算法的全部優(yōu)點(diǎn),同時(shí)增加了更多功能。新增功能有:引入增益比率的概念,合并具有連續(xù)值的屬性,可以處理缺少屬性值的訓(xùn)練樣本,以及通過使用不同的修剪技術(shù)避免樹的不平衡等[15-16]。

      1)信息增益比率

      在C4.5算法中,為了克服使用信息增益選擇屬性時(shí)偏向選擇取值多的屬性的不足, Quinlan定義了一種新的測試屬性選取標(biāo)準(zhǔn),即信息增益比率,其定義為

      (3)

      式(3)表明:在不同屬性提供相同的信息增益Gain(S,A)時(shí),SplitInfo(S,A)取值越小越好,其值越小說明為了獲取關(guān)于屬性A的取值所需付出的代價(jià)也就越小。式(3)中SplitInfo(S,A)為屬性A的信息熵,即對于一個(gè)屬性A,根據(jù)其不同取值v1,v2,…,vn,將訓(xùn)練集分割成集合S1,S2,…,Sn,則

      (4)

      本文將使用數(shù)據(jù)挖掘技術(shù)中的決策樹算法對可重用的測試用例進(jìn)行分類,將測試專家的重用用例分類的思想固化下來,并且可以針對一個(gè)新的測試用例重用查詢需求,可以預(yù)測出能夠滿足需求的、重用度最高的測試用例。

      3 基于數(shù)據(jù)挖掘的飛航測試用例重用技術(shù)

      目前,國內(nèi)外針對軟件測試用例重用技術(shù)的研究,主要針對如何對測試用例進(jìn)行存儲(chǔ)和如何進(jìn)行查詢上。缺少對測試用例重用庫如何構(gòu)建和如何擴(kuò)充的研究。

      飛航軟件評測中心根據(jù)有關(guān)軟件測試用例重用實(shí)踐經(jīng)驗(yàn),并結(jié)合數(shù)據(jù)挖掘技術(shù),開展了基于數(shù)據(jù)挖掘的飛航嵌入式軟件測試用例重用技術(shù)的研究。

      3.1 基于數(shù)據(jù)挖掘的測試用例重用技術(shù)

      該技術(shù)可以通過數(shù)據(jù)挖掘的方法,不斷發(fā)現(xiàn)新的知識(shí)規(guī)則,不斷擴(kuò)充測試用例庫,使測試用例重用庫形成一個(gè)不斷自擴(kuò)充和不斷自學(xué)習(xí)的智能系統(tǒng)。測試用例重用庫構(gòu)建模型結(jié)構(gòu)見圖1,模型描述如下:

      1)通過飛航嵌入式軟件測試專家使用1.2節(jié)中的測試用例可重用的標(biāo)準(zhǔn),對本領(lǐng)域(按照飛航導(dǎo)彈武器系統(tǒng)的各個(gè)分系統(tǒng)進(jìn)行分類)中測試用例進(jìn)行總結(jié)分析,選出通用性好、覆蓋全面的測試用例,提煉出這些測試用例的設(shè)計(jì)思想,并去除無法重用的測試用例。

      2)對測試用例進(jìn)行抽象化處理,去除測試用例中和具體軟件相關(guān)性特別強(qiáng)的方面,提高測試用例重用的可能性,如性能測試中涉及的具體參數(shù)。

      3)選擇用于數(shù)據(jù)挖掘的測試用例的屬性和決策。根據(jù)飛航軟件測試用例的特點(diǎn),選用的屬性為:軟件所屬分系統(tǒng)(如綜控機(jī)、慣導(dǎo)、電調(diào)等);軟件功能點(diǎn);測試類型(功能測試、性能測試、余量測試等);用例設(shè)計(jì)思想(專家提煉的設(shè)計(jì)思想)。決策為兩種,分別為:重用性高和重用性低。并對上述文字信息做相應(yīng)變換,轉(zhuǎn)化為數(shù)值信息。

      4)軟件測試專家使用1.2節(jié)中的測試用例的可重用的標(biāo)準(zhǔn)評價(jià)這些測試用例可重用性,建立基于決策樹的數(shù)據(jù)挖掘技術(shù)的規(guī)則訓(xùn)練集。其中決策樹算法使用第2節(jié)中描述的相關(guān)算法的式(1)~式(4)。

      5)使用規(guī)則訓(xùn)練集訓(xùn)練決策樹,生成知識(shí)規(guī)則集。

      6)使用生成的知識(shí)規(guī)則對新采集的測試用例進(jìn)行分類管理,生成一個(gè)不斷自擴(kuò)充的測試用例重用庫。如果新采集的測試用例無法用舊有的知識(shí)規(guī)則進(jìn)行分類,則通過基于決策樹的數(shù)據(jù)挖掘技術(shù)可以擴(kuò)充知識(shí)規(guī)則,形成新的知識(shí)規(guī)則集。

      基于數(shù)據(jù)挖掘的測試用例重用技術(shù)的結(jié)構(gòu)圖如圖1所示。

      圖1 基于數(shù)據(jù)挖掘的測試用例重用技術(shù)的結(jié)構(gòu)圖Fig.1 Structure diagram of test case reuse technology based on data mining

      3.2 慣導(dǎo)軟件測試用例重用庫構(gòu)建和應(yīng)用

      3.1節(jié)中研究了通用的飛航軟件測試用例重用技術(shù),下面將該技術(shù)應(yīng)用在慣導(dǎo)軟件中并構(gòu)建慣導(dǎo)軟件測試用例重用庫。

      3.2.1 基于數(shù)據(jù)挖掘的慣導(dǎo)軟件測試用例重用庫構(gòu)建

      1)對慣導(dǎo)軟件測試用例進(jìn)行分類總結(jié)。

      慣導(dǎo)軟件測試專家對飛航軟件評測中心4個(gè)型號(hào)的平臺(tái)式慣性導(dǎo)航軟件和2個(gè)型號(hào)的捷聯(lián)式慣性導(dǎo)航軟件的近2000個(gè)測試用例進(jìn)行了總結(jié)分類,選擇出了247個(gè)可以重用的測試用例,作為建立導(dǎo)航軟件測試用例初始重用庫的基礎(chǔ)。

      2)對慣導(dǎo)測試用例進(jìn)行抽象化處理。

      慣導(dǎo)軟件測試專家針對慣導(dǎo)軟件的247個(gè)文本測試用例進(jìn)行總結(jié)和評估,由于這些用例使用的模板不一樣,導(dǎo)致用例的具體描述不一樣。經(jīng)過專家討論,去除個(gè)性描述,保留共性描述,以最大可能增加用例的可重用性,所以只保留247個(gè)測試用例的用例說明、測試類型、測試輸入、測試步驟和期望測試結(jié)果這5項(xiàng)。而且,增加了型號(hào)名稱、研制階段、軟件版本號(hào)、軟件功能、測試思想、測試環(huán)境和設(shè)計(jì)人員等7項(xiàng)屬性。對這些用例重用性進(jìn)行了初步評估,并分別給出了重用性高和重用性低的評價(jià),該評價(jià)可以作為數(shù)據(jù)挖掘算法的決策訓(xùn)練集和測試集。

      3)選擇用于數(shù)據(jù)挖掘的測試用例的屬性和決策。

      在第2步中,每一個(gè)測試用例擁有12項(xiàng)屬性,和1項(xiàng)決策。需要對屬性進(jìn)行簡化,去除對決策影響小的屬性,保留對決策影響大的屬性。經(jīng)過專家討論,保留軟件功能、測試思想、測試類型和設(shè)計(jì)人員4項(xiàng)屬性,決策為重用性高和重用性低。由于測試思想和具體的軟件功能有關(guān),所以對測試思想的取值進(jìn)行了歸一化處理,將同類測試思想進(jìn)行合并,并簡化描述。各個(gè)屬性和決策的可能取值如表1和表2所示。

      4)針對屬性和決策,構(gòu)建數(shù)據(jù)挖掘的訓(xùn)練樣本集。

      結(jié)合專家對247個(gè)文本測試用例中的200個(gè)測試用例給出的決策值,可以得到數(shù)據(jù)挖掘的訓(xùn)練樣本。限于篇幅,不列舉訓(xùn)練樣本集。

      5)使用第2節(jié)中的算法,針對每一個(gè)屬性計(jì)算相應(yīng)的信息增益的取值,然后根據(jù)信息熵的取值得到?jīng)Q策樹的根節(jié)點(diǎn)。

      本文使用MATLAB進(jìn)行仿真與計(jì)算,經(jīng)過計(jì)算后第一層屬性的信息增益的取值如表3所示。

      表1 導(dǎo)航軟件測試用例重用屬性取值表

      表3 各個(gè)屬性的信息增益取值

      從表3可以看出,軟件功能具有最大的信息增益,為根節(jié)點(diǎn)。

      從第二層開始,以后的分枝產(chǎn)生過程完全重復(fù)前面的步驟,直到完全分類了所有的訓(xùn)練數(shù)據(jù)為止。不同的是,此時(shí)不再考慮已經(jīng)使用過的上一層的根結(jié)點(diǎn)屬性。最終,決策樹的規(guī)則固化在MATLAB工作空間的決策樹結(jié)構(gòu)中。經(jīng)過逐層的分解,導(dǎo)航軟件測試用例重用決策樹如圖2所示。

      圖2 導(dǎo)航軟件測試用例重用決策樹Fig.2 Navigation software test case reuse decision tree

      根據(jù)上述決策樹,可以生成產(chǎn)生式知識(shí)規(guī)則,描述如下:

      a)IF軟件功能=“上電初始化功能” AND 測試類型=“功能測試”AND 測試思想=“遍歷功能項(xiàng)”AND 設(shè)計(jì)人員=“人員1”THEN 重用性=“重用性高”。

      b)IF軟件功能=“上電初始化功能”AND 測試類型=“性能測試”THEN 重用性=“重用性低”。

      c)IF 軟件功能=“上電初始化功能”AND 測試類型=“接口測試”THEN 重用性=“重用性高”。

      d)IF 軟件功能=“看門狗功能” THEN 重用性=“重用性高”。

      e)IF 測試人員=“人員3” THEN 重用性=“重用性低”。

      ……

      通過對導(dǎo)航測試用例進(jìn)行數(shù)據(jù)挖掘,得到了上述判斷測試用例重用性高低的知識(shí)規(guī)則。這些知識(shí)規(guī)則不僅僅將導(dǎo)航軟件測試專家的知識(shí)規(guī)則固定下來,而且發(fā)現(xiàn)了新的知識(shí),例如:通過數(shù)據(jù)挖掘得知,如果是人員3編制的測試用例,則其測試用例的重用性低。后續(xù)采集測試用例時(shí),如果是人員3的測試用例,則通過決策樹算法,自動(dòng)將該測試用例歸類為重用性低。

      這些規(guī)則將導(dǎo)航軟件測試專家的知識(shí)規(guī)則固定下來,如果有新的測試用例,可以很容易判斷該用例的可重用程度,并且針對測試用例重用需求,可以很方便地從測試用例重用庫中找到最可能被重用的測試用例。

      6)讓專家對剩余的47個(gè)測試用例的重用性進(jìn)行評估,并給出決策值,作為上述決策樹的測試樣本集,對決策樹的決策能力進(jìn)行評估。其中有3組樣本的結(jié)果與專家評估值不一致,決策正確率為:94%。結(jié)果證明了該算法可以對新采集的測試用例的可重用性進(jìn)行準(zhǔn)確評估與分類。

      3.2.2 基于數(shù)據(jù)挖掘的慣導(dǎo)軟件測試用例重用庫工具開發(fā)與應(yīng)用

      通過使用COM技術(shù),將MATLAB中的決策樹生成DLL動(dòng)態(tài)鏈接庫文件,并使用.NET技術(shù)開發(fā)了飛航軟件測試用例重用庫系統(tǒng)工具。該系統(tǒng)可以對新采集的測試用例完成數(shù)據(jù)挖掘、擴(kuò)充知識(shí)規(guī)則和擴(kuò)充測試用例重用庫的功能。該庫中存放了3.2.1節(jié)中描述的4個(gè)型號(hào)的平臺(tái)式慣性導(dǎo)航軟件和2個(gè)型號(hào)的捷聯(lián)式慣性導(dǎo)航軟件的247個(gè)可以重用的測試用例。

      測試人員根據(jù)測試項(xiàng)目中設(shè)計(jì)測試用例的需要,輸入測試用例重用的需求。然后,該工具使用決策樹規(guī)則,列出最有可能重用的一組用例,并按照被重用性高低的順序排序,方便測試人員使用。

      該工具在采集新的測試用例時(shí),將會(huì)根據(jù)決策樹規(guī)則,對該用例進(jìn)行分類,并決策出該用例重用性的高低。如果該用例不能用舊的規(guī)則進(jìn)行分類,則需要重新訓(xùn)練決策樹,擴(kuò)充決策規(guī)則,使測試用例庫不斷自完善和自擴(kuò)充。

      慣導(dǎo)軟件測試用例重用庫工具主界面、測試用例采集與重用性決策界面、測試用例查詢和重用界面如圖3所示。

      圖3 慣導(dǎo)軟件測試用例重用庫工具主界面Fig.3 Main interface of the test case reuse library tool of inertial navigation software

      該工具在飛航軟件評測中心導(dǎo)航軟件的動(dòng)態(tài)測試中開展了應(yīng)用,在某合同項(xiàng)目的捷聯(lián)慣導(dǎo)軟件動(dòng)態(tài)測試中,重用了上電初始化功能的2個(gè)測試用例、自檢功能的3個(gè)測試用例、對準(zhǔn)功能的3個(gè)測試用例、數(shù)據(jù)封裝/裝訂功能的4個(gè)測試用例和導(dǎo)航功能的7個(gè)測試用例,取得了較好的效果。

      4 總結(jié)

      本文首先研究了可重用的測試用例的特性,為采集可重用的測試用例提供指導(dǎo),并結(jié)合飛航型號(hào)軟件的特點(diǎn),提出了測試用例重用的關(guān)鍵在于測試思想的重用。然后將數(shù)據(jù)挖掘技術(shù)應(yīng)用于飛航軟件測試用例重用中,建立了飛航測試用例重用模型。通過決策樹算法,將測試專家分類重用測試用例的思想固化,并可以根據(jù)新采集的可重用的測試用例,不斷擴(kuò)充分類規(guī)則,使測試用例重用庫具有不斷自擴(kuò)充和自完善的能力。最后通過應(yīng)用上述模型建立導(dǎo)航軟件測試用例重用庫,并在實(shí)際項(xiàng)目中開展應(yīng)用,取得了較好的效果。

      猜你喜歡
      慣導(dǎo)測試用例用例
      UML用例模型中依賴關(guān)系的比較與分析
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
      聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測試需求分析和用例編寫
      自適應(yīng)模糊多環(huán)控制在慣導(dǎo)平臺(tái)穩(wěn)定回路中的應(yīng)用
      從出土文獻(xiàn)用例看王氏父子校讀古書的得失
      基于混合遺傳算法的回歸測試用例集最小化研究
      無人機(jī)室內(nèi)視覺/慣導(dǎo)組合導(dǎo)航方法
      基于Bagging模型的慣導(dǎo)系統(tǒng)誤差抑制方法
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級(jí)技術(shù)
      黎川县| 福泉市| 涪陵区| 平顶山市| 濮阳市| 台中市| 新巴尔虎右旗| 逊克县| 获嘉县| 双峰县| 大田县| 白玉县| 城固县| 高碑店市| 当雄县| 马边| 抚宁县| 正阳县| 巴彦淖尔市| 永城市| 东城区| 荃湾区| 砚山县| 莫力| 安岳县| 临澧县| 台州市| 远安县| 乌兰浩特市| 洛宁县| 东平县| 白河县| 广元市| 商水县| 易门县| 临湘市| 白城市| 叶城县| 剑阁县| 宕昌县| 奉贤区|