999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于自適應高斯混合模型的軟件測試用例集約簡算法研究

2021-06-30 14:42:20楊永國
計算機測量與控制 2021年6期
關鍵詞:檢測模型

楊永國

(中國人民解放軍91550部隊,遼寧 大連 116023)

0 引言

軟件規模越大,其邏輯復雜性越高,對這些軟件的可靠性要求也就越高。軟件的隱藏錯誤能夠造成其自身運行的失敗。也就是說軟件的隱藏錯誤是影響軟件可靠性的最關鍵因素之一[1]。對于小規模的軟件,工程實踐中大多采用人工設置斷點的方法來進行測試,以查找出錯誤。不過人工方法判斷錯誤位置較為復雜,且難度較大,不適用于大規模的軟件測試。因此,為了更加精準且高效地查找和消除軟件錯誤,專家學者們開展了廣泛的研究,提出了一些解決方法,并研發出對軟件進行單元、靜態和動態測試的工具軟件。這些方法和測試軟件,都要求測試用例集盡可能覆蓋全面,只有這樣才能精準地定位錯誤,提高測試的有效性[2-4]。但測試用例集包含的用例數量應該盡量約簡,以降低測試成本。

劉鋒等人提出基于向量相似度的測試用例集約簡方法[5]。張蕊等人提出一種基于搜索樹的用例約簡方法,求得約簡問題的全局最優解[6]。謝經緯在測試用例集約簡中引入需求分析,提出了兩階段用例集優化方法,分為需求切片和用例集優化兩個步驟[7]。張晨光等人提出一種在線測試用例集約簡方法,將測試集約簡嵌入測試生成流程內,測試生成過程為測試集約簡提供了測試序列與測試目標之間的滿足關系[8]。楊羊等人通過定義和合并基于ASM模型測試生成的等價遷移和等價狀態,減少了無效訪問狀態和無效遷移路徑的數量,實現了測試用例集空間的約簡[9]。蘇小紅等人采用面向錯誤定位需求的測試用例約簡方法,降低錯誤定位的復雜度,提高錯誤定位的精度[10]。

這些用來約簡測試用例集的方法還存在一些主要問題如下:1)如何建模測試用例集之間的關系,以提高查找軟件錯誤的準確度;2)如何實現參數設置的簡化,或者實現自適應的參數設置。為了解決這些問題,本文提出了一種基于自適應高斯混合模型的用例約簡算法。該算法引入高斯混合模型,尋找測試用例間的關系,抽取滿足測試需求的測試用例,實現用例集的約簡;同時通過自適應策略,簡化參數設置。

1 高斯混合模型

軟件測試用例集數據的概率分布通常很復雜,因此引入高斯混合模型來模擬逼近和約簡軟件測試用例集,以簡化問題[11-14]。高斯混合模型(GMM,gaussian mixture model)是M個高斯模型(聚類簇)的加權和,其對數據的M類概率密度分布進行高斯估計。每個高斯概率密度函數都與一個類對應。訓練時采用了期望最大(EM,expectation maximization)算法。

設每個樣本都對應于一個類,也就是對應于一個高斯概率密度函數,而整個樣本集對應M個高斯概率密度函數。但具體每個樣本xi對應于哪個高斯概率密度函數不確定,在GMM中,每個高斯概率密度函數所占的權重φj也不確定。式(1)所示為GMM:

(1)

每一個高斯概率密度函數,也就是單高斯模型都有3個參數φj、μj、∑j。進行高斯混合模型建模時,就要確定3N個參數。

需要通過樣本集X={x1,xi,…,xN}來估計GMM的所有參數[15]Φ=(φ1,φj,…,φM)T,樣本xj的概率如式(2)所示:

(2)

其中:Cj為協方差矩陣。

對GMM參數進行估計,目前最多采用的是EM算法,其具體流程如下[15-19]:

2)后驗概率估計步驟。用式(3)估計φj的后驗概率:

(3)

3)最大化步驟。根據式(4)對權值φj進行更新:

(4)

根據式(5)對均值μj進行更新:

(5)

根據式(6)對方差矩陣Cj進行更新:

(6)

4)收斂條件。迭代計算步驟2)和步驟3),權值φj、均值μj和方差矩陣Cj會不斷地更新,當p(X|Φ)-p(X|Φ)′<ε時停止進行迭代。p(X|Φ)′為更新權值φj、μj均值和方差矩陣Cj后根據式(3)計算的值,ε為閾值,一般ε=10-5。

2 基于自適應高斯混合模型

但采用的高斯混合模型聚類簇數目通常是經驗值,很容易造成聚類準確度的降低。具體到軟件測試用例集約簡的場景,經驗聚類簇數目對用例集多變的適應性較差,無法做到自適應。因此本文對高斯混合模型進行改進,使其可以自適應的確定聚類簇數目。

改進的思想為:使用K-means初始化EM,自適應地確定聚類簇數目,在此過程中能夠評判聚類結果,同時給出式高斯混合模型的所有參數,這些參數作為各個聚類簇進行新一輪迭代計算的參數,最終得到的結果更趨于最優解[15]。

針對軟件測試用例集約簡研究,為解決現有高斯混合模型聚類算法只能使用經驗聚類簇數目值的缺陷,根據上述改進思想,本文使用了自適應高斯混合模型算法,算法的具體實現步驟如下所述,實現流程如圖1所述。

圖1 自適應高斯混合模型的實現流程

1)先按經驗設置M0個聚類簇,按照第1章節中的步驟(1)進行初始化協方差矩陣Cj、每個高斯概率密度函數所占的權重φj和均值μj,并用EM算法對模型進行優化,計算出初始化聚類結果。

2)在后續迭代計算的過程中,計算出第i個樣本xi屬于第j個聚類簇的概率pi,j。根據式(7)計算最大的(pi,j)max與排第二的(pi,jmax-1)的比值ri。第i個樣本xi聚類到某個聚類簇,要求(pi,j)max相對于(pi,j)max-1要有明顯的差別,即(pi,j)max應當比(pi,j)max-1大很多。也就是可以用ri來衡量聚類結果的優劣。ri越小,聚類結果越好;ri越大,聚類結果越差。

3)設定閾值Thr。通過給定Th的值,能夠衡量類聚類結果是否滿足要求。當ri≤Thr時,第i個樣本xi可以歸類為(pi,j)max對應的聚類簇;當ri>Thr時,第i個樣本xi不適合歸類為目前的所有聚類簇,需要增加聚類簇數目。聚類簇數目不能無限的增加下去,否則就失去了聚類的意義,需要設定一個最大聚類簇數目值Mmax。當聚類簇數目數目達到Mmax時,則第i個樣本可以歸類為(pi,j)max對應的聚類簇,而不再新增聚類簇的數目。

4)當聚類簇數目增加后,需要對新模型的參數進行初始化調整。迭代的重新執行步驟1)~3),當聚類簇數目不再增加,或者達到最大時,完成模型訓練,得到模型參數。

5)當步驟4)得到的模型中,存在φj很小的聚類簇,即φj≤Thφ時,可將該聚類簇刪除,并將該聚類簇對應的樣本xj歸類到倒數第二次迭代時(pi,j)max對應的聚類簇中。因為聚類簇的φj≤Thφ時,可以認為該聚類簇的代表性不足。然后對模型進行計算,得到最終的模型CL,及模型參數。

3 實驗結果與分析

3.1 實驗數據集

本文采用使用廣泛并且便于比較的西門子軟件測試用例集[1,20]。該由Siemens Corporate Research的專家開發,含有7類程序代碼Print_tokens1、Print_tokens2、Schedule1、Schedule2、Replace、tacs和tot_info,每類程序代碼有1個無錯誤版本和一些含有錯誤的版本。軟件測試用例集中每類程序代碼的行數、初始測試用例數、程序中錯誤數、測試用例數如表1所示[1]。針對每類程序代碼,該軟件測試用例集使用了5種類型編程語言進行的代碼編寫,滿足常用編程語言需求的代碼需求。

表1 軟件測試用例約簡用數據集

3.2 評價標準

實驗中,采用約簡率、錯誤檢測率和錯誤檢測丟失率這三個指標來評價實驗結果,以驗證算法的有效性、正確性和穩定性。

3.2.1 約簡率

約簡率計算如式(8)所示,為現有軟件測試用例集中的測試用例數目與約簡后軟件測試用例集中的測試用例數目的差值,比上現有軟件測試用例集中的測試用例數目,得到的比值[1]。

(8)

其中:RR為約簡率,|USN|表示現有軟件測試用例集中的測試用例數目;|USN′|表示約簡后軟件測試用例集中的測試用例數目。

3.2.2 錯誤檢測率

錯誤檢測率計算如式(9)所示,為約簡學習初始用例后,從測試用例中檢測到的程序代碼錯誤個數與測試用例中實際程序代碼錯誤個數的比值[1]。

(9)

其中:EDR為錯誤檢測率,EN表示現有軟件測試用例集的測試用例包含的程序代碼錯誤數;EN′表示使用約簡算法學習初始用例后,從軟件測試用例集的測試用例中檢測出的程序代碼錯誤數。

3.2.3 錯誤檢測丟失率

錯誤檢測丟失率計算如式(10)所示,為約簡學習初始用例后,從測試用例中檢測到的程序代碼錯誤個數與測試用例中實際程序代碼錯誤個數的差值,比上測試用例中實際程序代碼錯誤個數,得到的比值[1]。

(10)

其中:ELR為錯誤檢測丟失率。

由式(8)、式(9)和式(10)可以比較高斯混合模型、模糊K-Means聚類模型和本文提出算法的約簡率、錯誤檢測率和誤差檢測丟失率。

3.3 實驗結果分析

為了驗證本文提出的基于自適應高斯混合模型的軟件測試用例集簡約算法的性能,對比分析了本文提出算法、基于高斯混合模型的軟件測試用例集簡約算法和基于模糊K-Means聚類模型的軟件測試用例集簡約算法。

3.3.1 約簡率分析

使用3種算法約簡后,得到的軟件測試用例集中的測試用例數量如表2所示[1]。

表2 約簡后的初始用例數

3種算法約簡率如表3所示[1]。通過分析,基于模糊K-Means聚類模型的軟件測試用例集簡約算法的約簡率優于基于高斯混合模型的軟件測試用例集簡約算法。本文提出算法的約簡率高于上述兩種算法,其總約簡率相對基于模糊K-Means聚類模型的軟件測試用例集簡約算法高11.46%,相對基于高斯混合模型的軟件測試用例集簡約算法高6.42%。約簡率的提升,可以在一定程度上降低軟件測試的復雜度,提高軟件測試的效率。

表3 3種算法的約簡率

3.3.2 錯誤檢測率分析

使用3種算法約簡后,從測試用例集中檢測出來的程序代碼錯誤數量如表4所示[1]。

表4 約簡后的檢測出的錯誤數

3種算法的錯誤檢測率如表5所示。從表中數據可知,基于模糊K-Means聚類模型的軟件測試用例集簡約算法的錯誤檢測率優于基于高斯混合模型的軟件測試用例集簡約算法。本文提出算法的錯誤檢測率高于上述兩種算法,其總錯誤檢測率相對基于模糊K-Means聚類模型的軟件測試用例集簡約算法高34.53%,相對基于高斯混合模型的軟件測試用例集簡約算法高4.76%。使用本文提出算法能夠檢測出更多的錯誤數,可以提高軟件測試的可靠性,進而提高被測軟件的正確性。

表5 3種算法的錯誤檢測率

3.3.3 錯誤檢測丟失率分析

3種算法的錯誤檢測丟失率如表6所示。

表6 3種算法的錯誤檢測丟失率

從表中數據可知,基于模糊K-Means聚類模型的軟件測試用例集簡約算法的錯誤檢測丟失率優于基于高斯混合模型的軟件測試用例集簡約算法。本文提出算法的錯誤檢測丟失率低于上述兩種算法。錯誤檢測丟失率低,代表漏檢的少錯誤數量,錯誤檢測丟失率越低越好。相對其它兩種算法,本文提出算法的錯誤檢測丟失率最低,這體現了提出算法約簡得到的測試用例集對程序代碼錯誤的覆蓋度較高。

4 結束語

軟件測試用例集聚類和約簡是一個時研時新且充滿挑戰的研究方向。當前軟件測試用例集聚類、約簡方法存在需要根據經驗給出聚類簇數目,導致自適應性不強的問題。本文提出了一種改進的高斯混合模型算法應用于軟件測試用例集約簡,以自適應的確定聚類簇的數目,并評估聚類效果的優劣。

提出的自適應高斯混合模型算法的優點是:算法在初始化和迭代過程中無需固定聚類簇數目,可以根據不同軟件測試用例集數據的特點自適應確定聚類簇數目,提升聚類的自適應性、準確性和泛化性,實現用例集最優約簡化。實驗結果表明,相對于高斯混合模型算法和模糊K-means聚類算法,提出算法的約簡率和錯誤檢測率更高。約簡后雖然軟件測試用例集規模精簡,但覆蓋率高。

猜你喜歡
檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 在线免费观看AV| 国产综合网站| 成人免费网站久久久| 国产成人精品男人的天堂| 亚洲天堂在线视频| 国内毛片视频| 99热最新网址| 三级国产在线观看| 国产精品yjizz视频网一二区| 国产粉嫩粉嫩的18在线播放91| 一区二区午夜| 免费AV在线播放观看18禁强制| 99热线精品大全在线观看| 一本久道久久综合多人| 精品国产免费第一区二区三区日韩| 亚洲精品视频免费看| 欧美影院久久| 国产乱人视频免费观看| 国产第一页免费浮力影院| 58av国产精品| 亚洲精品不卡午夜精品| 久草网视频在线| 日本久久网站| 视频二区国产精品职场同事| 日韩欧美视频第一区在线观看| 中文无码精品A∨在线观看不卡| 毛片一区二区在线看| 99re这里只有国产中文精品国产精品| 国产午夜福利亚洲第一| 久久婷婷国产综合尤物精品| 欧美日韩高清在线| 国产午夜看片| 在线看国产精品| 国产真实自在自线免费精品| 四虎永久免费网站| 四虎成人免费毛片| 久久国产成人精品国产成人亚洲| 欧美日韩一区二区在线播放| 欧美五月婷婷| 国产乱码精品一区二区三区中文| 久久a级片| 免费精品一区二区h| 国产真实乱子伦精品视手机观看 | 91青青视频| 久久天天躁狠狠躁夜夜2020一| av无码久久精品| 亚洲色无码专线精品观看| 波多野结衣AV无码久久一区| 91系列在线观看| 亚洲天堂伊人| 亚洲电影天堂在线国语对白| 深爱婷婷激情网| 日本久久网站| 制服丝袜在线视频香蕉| 欧美国产菊爆免费观看| 伊人久综合| 中文字幕波多野不卡一区| 国产成人免费| 免费国产在线精品一区| 亚洲自偷自拍另类小说| 国产视频 第一页| 国产一区二区三区视频| 精品国产中文一级毛片在线看| 欧美日韩午夜| 色吊丝av中文字幕| 一级毛片无毒不卡直接观看| 亚洲人成在线精品| 免费观看亚洲人成网站| 免费无码又爽又刺激高| 日本精品视频| 欧美啪啪网| 精品久久人人爽人人玩人人妻| 色爽网免费视频| 亚洲成人网在线观看| 日韩大片免费观看视频播放| 18禁黄无遮挡网站| 日韩成人午夜| 久久99精品久久久久久不卡| 亚洲国产一区在线观看| 四虎国产精品永久一区| 波多野结衣中文字幕久久| 日韩无码视频网站|