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

基于關聯規則挖掘的軟件缺陷分析研究

2017-02-27 03:11:14顏樂鳴
軟件 2017年1期
關鍵詞:數據挖掘關聯規則

顏樂鳴

(中國電子科技集團公司第七研究所,廣州市 510310)

基于關聯規則挖掘的軟件缺陷分析研究

顏樂鳴

(中國電子科技集團公司第七研究所,廣州市 510310)

軟件測試是確保軟件產品質量的有效技術手段,其根本目的是發現隱藏在軟件中的缺陷,并通過對其的修復盡可能減少遺留在系統中的缺陷數量,以提升軟件的質量。隨著缺陷數據的不斷積累,面對龐大、甚至海量的缺陷信息,已無法通過人工方式進行缺陷分析。基于此,作者對缺陷分類和數據挖掘技術開展研究,總結測試工程實踐中的缺陷特點,提出改進的正交缺陷分類模型;結合數據挖掘中的關聯規則挖掘算法,提出缺陷關聯分析模型。并對上述模型進行應用說明,幫助軟件技術人員定位和解決缺陷,提供軟件測試缺陷分析的輔助手段。

軟件測試;軟件缺陷分析;正交缺陷分類;關聯規則挖掘

本文著錄格式:顏樂鳴. 基于關聯規則挖掘的軟件缺陷分析研究[J]. 軟件,2017,38(1):70-76

0 引言

軟件開發是一項由人進行的活動,在其過程中必定會因為人的因素而產生缺陷,因此,缺陷是軟件與生俱來的特性,也是影響軟件質量的重要因素和關鍵因素之一。軟件測試是以發現缺陷為目的的確保軟件產品質量的有效技術手段,近年來,軟件組織對軟件測試活動的重視程度日益提升,但由于工程實踐中收集缺陷信息和分析方法的應用會帶來較高的成本,許多軟件組織并未對缺陷數據的分析給予足夠重視,而且隨著缺陷數據的不斷積累和增長,使用傳統的缺陷分析方法分析海量缺陷數據已不能滿足缺陷管理的需求。

數據挖掘技術能從大量數據中發掘有重要意義的信息,為決策提供有價值的參考,可以用于解決軟件測試領域中缺陷分析的問題。近年來,基于數據挖掘的方法在軟件測試領域有很多應用,諸如美國、英國等發達國家,將數據挖掘技術在軟件測試領域的應用作為研究熱點,已經研究出較多的方法用于輔佐測試及其過程改進。這些成果包括測試數據生成、測試數據與缺陷之間的關系分析、故障定位、缺陷預測等[1,2,3,4]。目前,國內外的研究成果表明,相關技術在測試中多應用于處理龐大信息,但研究仍處于初期,尚未發布具有普適性、商業化的產品或應用,國內外目前尚無針對軟件缺陷的專用數據挖掘系統。

本文試圖對缺陷進行系統、全面的分類,通過建立缺陷分類模型,并在此基礎上應用數據挖掘中的關聯規則方法對缺陷數據進行分析,挖掘缺陷數據中有價值的信息,尋找隱藏在缺陷背后的共性原因,為缺陷預防、評估軟件質量及產品決策提供參考依據。

1 軟件缺陷

1.1 軟件缺陷的定義

軟件缺陷是存在于軟件文檔、程序及數據中不希望的或不可接受的偏差[5]。需求分析過程中錯誤的需求定義,軟件設計過程中的設計錯誤,編碼過程中出現的語法錯誤、邏輯錯誤,軟件開發完成后沒有實現軟件功能,甚至是軟件交付后出現的導致軟件不能正常使用的情況等等,都可以稱為軟件缺陷。

不論軟件規模的大小、開發語言的種類、開發技術的難易,都會因為人的錯誤而在軟件中留下不良的影響,因此,不存在沒有缺陷的軟件,而且軟件中的缺陷將流轉于軟件開發的整個生命周期,好比定時炸彈,當滿足一定的觸發條件時,將被激活。為了保證軟件的正常運行,必須對缺陷進行有效的管理,保證每一個被激活的缺陷都得到有效的處理,盡可能減少遺留在軟件產品中的缺陷,提高軟件的質量。而缺陷分析則是缺陷管理中重要的內容之一,有效的缺陷分析,不僅能評估軟件的質量,還能在一定程度上抑制缺陷的增長趨勢,達到缺陷預防的目的。

1.2 軟件缺陷分析

缺陷分析是指將軟件研制過程中產生的缺陷信息進行分類和匯總,以發現各種類型缺陷發生的概率,發現缺陷集中的模塊、掌握缺陷的發展規律、發掘缺陷產生的根本原因。通過缺陷分析,可以輔助軟件人員定位及修復缺陷,評估軟件質量,制定缺陷預防措施。缺陷分析的過程如圖1所示。

圖1 缺陷分析過程Fig.1 Defect analysis process

在缺陷分析過程中,完整、準確的記錄缺陷是開展分析的基礎。隨著自動化測試技術的興起,使用自動化工具對缺陷進行跟蹤管理變得普及,缺陷管理工具為記錄和采集缺陷提供了自動化的手段,使得記錄和處理缺陷的效率得到了大大的提高,但是這些系統多用于缺陷跟蹤,對于缺陷的分析也僅限于度量和統計等定量分析,缺陷的分類標準和屬性描述也各不相同,每個系統中缺陷的屬性劃分均固定不變,很難適用于所有的軟件組織。

通過對缺陷屬性的分解和定義,對軟件缺陷進行分類,是缺陷分析的關鍵所在。但由于缺陷的表現方式、引入時段和產生原因多種多樣,對其進行分類的方法也各不相同,自20世紀70年代起,研究人員開始探索從不同角度對軟件缺陷進行分類。典型的有IBM公司推出的正交缺陷分類法、IEEE制定的軟件異常分類標準、Thayer分類法、我國國家軍用標準《GJB 2786A軍用軟件開發通用要求》中定義的軟件錯誤等[6]。其中正交缺陷分類(Orthogonal Defects Classification,ODC)的應用最為廣泛,它是IBM公司經過了對大量產品的軟件缺陷進行分析總結后于1992年提出的。正交缺陷分類法使用八個屬性全面描述了缺陷的特征:發現缺陷的活動、缺陷引發事件、缺陷影響、缺陷載體、缺陷類型、缺陷限定詞、缺陷來源和缺陷年齡[7],其中每個屬性均包含各自的子屬性。該方法既是缺陷分類方法,又是軟件缺陷度量方法,體現了統計方法和原因分析的結合。包括IBM公司在內的許多軟件組織都已接受并使用,并且已成為CMMI四級及五級的支撐工具之一,用于定量過程管理和缺陷預防。

開展缺陷分析的根本目的是預防缺陷,因此,缺陷預防成為缺陷分析過程中核心的組成部分。而預防缺陷的著力點則在于挖掘缺陷背后的共性原因。當缺陷產生后,軟件人員的任務不僅僅是解決某一個缺陷,而應該通過深入、詳細的分析缺陷數據去尋找缺陷的根本原因、共性原因,以防止缺陷的再次發生,不斷提高軟件開發團隊的技術能力和軟件產品質量。

2 數據挖掘

2.1 數據挖掘的定義和任務

數據挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的潛在信息和知識的過程[8]。這些信息和知識對于決策分析或是尋找問題的根本原因具有重要的意義,但其并非顯而易見,而往往隱藏在數據之中,需要人們去探尋和挖掘。數據挖掘技術集合了傳統的數據分析方法和復雜的算法,大大增加了分析大數據量信息的可能性。

數據挖掘任務主要分為預測任務和描述任務兩類[9]。預測任務的主要目標是依據已有屬性的值,分析指定屬性的值,以預先推測事物未知的情況;描述任務的主要目標為挖掘潛藏在數據中的聯系。具體來說,數據挖掘的任務可分為如下四個方面:

(1)預測建模:以為目標變量建立模型為目的,含分類任務和回歸任務;

(2)聚類分析:在相似的基礎上將數據集合分組,使相同簇內對象的相似程度大,但不同簇之間的對象具有很大差異;

(3)關聯分析:發掘不同數據對象間的關聯;

(4)異常檢測:識別與其他數據特征有明顯差異的對象,發現異常和離群的現象。

在軟件測試的工程實踐中,導致缺陷產生的原因可謂千奇百怪、五花八門,如圖2所示。傳統的報表形式只是反映了缺陷表象,卻無法表現缺陷之間隱含的關系。而且隨著軟件復雜度和規模的不斷提高,缺陷存在和產生的幾率將大大增加,某些大型軟件項目的缺陷甚至數以千計,通過人工分析的方法對缺陷數據進行逐一篩查已不太現實。作者試圖引入數據挖掘的技術手段,在對缺陷進行系統分類的基礎上進行缺陷關聯分析。

2.2 與關聯規則有關的概念

由于人們對事物認知的局限性,導致數據存在著大量的未知關聯,這些關聯均無法通過數據表格的形式表現出來。隨著收集和存儲在數據庫中的數據規模越來越大,人們開始對從這些數據中挖掘相應的關聯知識越來越有興趣。關聯分析則是用于發現蘊含在大型數據信息中有價值關聯的方法,并使用關聯規則來描述這些數據項之間的聯系,與之相關的概念主要有[9]:

圖2 缺陷及其產生原因的關系Fig.2 The relationship between defect and their causes

(1)事物集合和項的集合:

使用D表示待分析的所有事務集合,則:

使用I表示事物集合D中所有項的集合,則:

(2)項集:所有項的集合中,其任何一個子集都可稱為項集,倘若某個項集含有k個項,則稱其為k-項集。每個事物所包含的項集都是I的子集,記為:

(3)支持度(support):X、Y同時在事物集合D中出現的概率。當項集X在事物集合D里出現的概率不小于某個支持度的閾值時,則稱X為頻繁項集,該支持度的閾值則為最小支持度(minsup),并使用Lk表示具有k個項的頻繁項集,稱為頻繁k項集;

(4)置信度(confidence):在事物集合中出現項集X時,同時出現項集Y的概率,它是Y出現在包含X的事物中頻繁程度的表現。在計算置信度時,通常會預設置信度的最小值,即最小置信度(minconf);

(5)關聯規則(Association Rules):以X→Y的邏輯表達式表示關聯規則,其中X和Y均屬于事物中全體項的集合,且X∩Y=Φ,及X和Y是不相交的集合。X→Y的強度可以使用支持度support(X→Y)和置信度confidence(X→Y)的值來表示。

3 基于正交缺陷分類和關聯規則挖掘的缺陷分析

3.1 改進的正交缺陷分類參考模型

通過對各種分類方法的比較和總結得出,正交缺陷分類方法從不同維度體現了缺陷的特征,分析人員可以使用這些特征對缺陷進行系統性的分析,該方法既體現了定量分析,又結合了定性分析,從軟件全生命周期的角度看,使用正交缺陷分類法對缺陷數據進行分析的結果可達到總攬全局的效果,但是傳統的該分類相對復雜,難以適用所有的軟件組織,為了降低分類的復雜度,提高缺陷分類的準確性,提出了改進的正交缺陷分類參考模型,如圖3所示。

該模型參考傳統的正交缺陷分類法,在經過對實際的缺陷數據進行分析后,選擇軟件人員最關心的缺陷屬性作為分類的標識,亦通過八個屬性表示缺陷的特征,分別為缺陷的發現階段、引發事件、嚴重等級、缺陷來源、缺陷定位、產生影響、引入時段、引入類型,各屬性的描述如表1所示,其中引發事件、缺陷定位和產生影響的子屬性從缺陷數據的缺陷描述、定位和解決措施的語義信息提煉而來。在模型中,加入了缺陷的發現和修復階段的兩個過程因素,并從不同的角度和維度描述了缺陷的特征,可以幫助和引導測試人員和開發人員從各自的立場對缺陷進行分類,為缺陷分析提供準確的數據基礎。

圖3 改進的正交缺陷分類模型Fig.3 Improved orthogonal defect classification model

3.2 缺陷關聯分析模型

在缺陷數據中,某些看上去述毫無聯系的缺陷可能會存在某種程度上的依賴關系,通過對缺陷進行分類,可以從不同的立場和角度出發,使用一定的算法發掘缺陷信息中的隱藏價值。在關聯分析中,Apriori算法是最經典的關聯規則挖掘算法,其也被認為是所有關聯分析算法的基礎。該算法由Agrawal和Verkamo于1994年提出,其基本思想是:首先從事件中集中尋找所有頻繁出現的事件子集,然后在這些頻繁事件子集中發現可信度較高的規則[10]。Apriori算法的整個挖掘過程圍繞著頻度和強度進行,其主要步驟為:

1)通過對候選k-項集Ck不斷的連接和剪枝,產生頻繁k-項集Lk;

2)由頻繁項集Lk,確定其中不小于最小置信度的全部規則,產生強關聯規則。

使用Apriori算法,對缺陷進行關聯分析,建立缺陷管理分析模型如圖4所示。

圖4 基于Apriori算法的缺陷關聯分析模型Fig.4 Defect association analysis model based on Apriori algorithm

在使用缺陷關聯分析模型時,結合改進的缺陷分類模型,建立缺陷ODC屬性的集合I,該集合中包含了存在缺陷的所有ODC屬性項i1,i2,...in,則I={i1,i2,..in};事務集合則由產生的缺陷組成,可記為D={d1,d2,...dm},關聯規則產生過程可描述為:

(1)生成候選1-項集C1,C1={i1,i2,..in},計算每個項在缺陷事務D中的支持度,刪除小于minsup的項集,產生頻繁1-項集L1;

(2)由頻繁1-項集L1中產生候選C2-項集,刪除小于最小支持度的項集,產生頻繁2-項集L2;

(3)由上一步產生的頻繁(k-1)-項集通過連接產生候選k-項集,并經過剪枝,產生頻繁k-項集;

(4)重復執行連接步和剪枝葉步,直至不能在事務D中找出頻繁項集;

(5)將所有大于最小支持度的頻繁項集計為L,產生L的所有非空子集s,并根據頻繁項集生成滿足最小置信度的關聯規則。

3.3 模型的應用

在軟件測試中,測試人員希望發現的缺陷越多越好,但是窮盡測試是不現實的,而且在測試實踐中,出于進度和成本的壓力,需要在有限的時間內盡可能地覆蓋更多的需求,找出更多的缺陷,因此,測試人員關注的核心內容是如何發現缺陷。在缺陷的ODC屬性中,引發事件表示了發現缺陷時所執行的測試活動,它從不同的角度對引發缺陷的事件進行了歸納,從該屬性出發,可挖掘出各種引發事件之間的關聯,幫助測試人員快速發現缺陷。

選取缺陷ODC屬性中的引發事件作為分析對象,假設選項的缺陷屬性列表及缺陷如表2所示。采用布爾形式表示某屬性值是否引發缺陷。

表2 “引發事件”屬性列表Tab. 2 “Trigger” attribute list

由表1可建立事物集合D = {{功能,人機交互,業務流程},{邊界,人機交互,使用場景},{功能,邊界,人機交互,使用場景},{邊界,使用場景}},使用符號表示則為D = {{t1,t3,t4},{t2,t3,t5},{t1,t2,t3,t5}, {t2,t5}},如表3所示。

表3 事物集合DTab. 3 Transaction set D

預設最小支持度為50%,最小置信度為50%,經過如圖5所示的步驟,經過3次迭代后,產生頻繁項集{t2,t3,t5},其支持度為50%。其中,在產生候選k-項集時,標識為“×”表示該項集不滿足最小支持度的要求,可從集合中刪除。

由頻繁項集{t2,t3,t5}的非空子集產生關聯規則,如圖6所示。

計算各規則的置信度,滿足預設最小置信度要求的關聯規則如表4所示。表中所示的關聯規則展現了缺陷的引發事件中邊界、人機交互和使用場景之間的強關聯關系。當被測軟件的使用場景和人機界面產生缺陷時,必定引發邊界方面的缺陷,測試人員應花費更多的精力在各種場景的邊界測試設計和執行中,而開發人員則應重新審視有關的設計和代碼并進行必要的審查,杜絕由此引發更多的缺陷。

4 結論

本文提出了改進的正交缺陷分類模型,從缺陷發現和修復兩個視角對缺陷的屬性進行了劃分,在此分類的基礎上,對數據挖掘在缺陷分析的應用進行了初探,基于Apriori算法提出了缺陷關聯分析模型,并使用該模型對缺陷的“引發事件”屬性進行分析應用。

軟件測試是保證軟件質量的有效手段,雖然軟件測試無法發現所有的軟件缺陷,但可以通過對缺陷的分析達到預防缺陷的目的。后續工作中,我們將結合軟件測試的工程實踐,對改進的正交缺陷分類模型中缺陷的子屬性進行補充和完善,同時考慮結合數據挖掘工具選擇缺陷正交分類中的多個屬性展開缺陷綜合分析,以挖掘埋藏于缺陷中的更深層次原因,從根本上消除缺陷存在的隱患。

圖5 頻繁項集的產生Fig.5 Generate frequent itemsets

圖6 關聯規則的產生Fig.6 Generate association rules

表4 缺陷引發事件的關聯規則Tab. 4 Association rules of trriger

[1] Chen Y, Shen X H, Du P, et al. Research on Software Defect Prediction Based on Data Mining[J]. IEEE, 2010, 1∶ 563-567.

[2] 陳翔, 顧慶, 劉望舒, 等. 靜態軟件缺陷預測方法研究[J].軟件學報, 201627(1)∶ 1-25. Chen X, Gu Q, Liu W S, et al. Survey of Static Software Defect Prediction[J]. RuanJianXueBao/Journal of Software,2016, 27(1)∶ 1240-25.(in Chinese)

[3] LAST M, FRIEDMAN M, KANDEL A. The Data Mining Approach to Automated Software Testing[Z]. Washington. USA∶ SIGKDD, 2003.

[4] Song QB, SHEPPERD M, CARTWRIGHT M, et al. Software Defect Association Mining and Defect Correction Effort Prediction[J]. IEEE Computer Society, 2006, 32(2)∶ 69-82.

[5] 張廣梅. 軟件測試與可靠性評估[D]. 北京∶ 中國科學院計算技術研究所, 2006. ZHANG G M. Research on Software Testing and Reliability Evaluation Method[D]. BeiJing∶ Institute of Computing Technology, Chinese Academy of Sciences, 2006.(in Chinese)

[6] 尹相樂, 馬力, 關昕. 軟件缺陷分類的研究.計算機工程與設計, 2008, 29(19)∶ 4910-4913. YIN X L, MA L, GUAN X. Research of Software Defects Classification[J]. Computer Engineering and Design. 2008, 29(19)∶ 4910-4913. (in Chinese)

[7] 蔡建平, 王安生, 修佳鵬. 軟件測試方法與技術[M]. 北京∶清華大學出版社, 2014. Cai J P, WANG A S, XIU J P. Software Testing Method and Technology[M]. BeiJing∶ Tsinghua University Press, 2014. (in Chinese)

[8] 韋群, 王玨. 軟件缺陷及其對軟件可靠性的影響分析[J].計算機應用與軟件, 2011, 28(1)∶ 145-149. WEI Q, WANG Y. Software Defects and Analysis of its Impact upon Software Reliability[J]. Computer Application and Software. 2011, 28(1)∶ 145-149. (in Chinese)

[9] TAN P N, STEINBACH M, KUMAR V. 數據挖掘導論[M].范明, 范宏建. 北京∶ 人民郵電出版社, 2011. TAN P N, STEINBACH M, KUMAR V. Introduction to Data Mining[M]. FAN M, FAN H J. BeiJing∶ Posts & Telecom Press, 2011. (in Chinese)

[10] 王夢雪. 數據挖掘綜述[J]. 軟件導刊, 2013, 12(10)∶135-137. WANG M X. a Survey of Data Mining[J]. Software Guide. 2013, 12(10)∶ 135-137. (in Chinese)

Research of Software Defect Analysis Based on Association Rules Mining

YAN Yue-ming

(The 7th Research Institute of China Electronics Technology Group Corporation, Guangzhou 510310, China)

Software testing is an important means to ensure the quality of software products. The target of software testing is to find defects and repair them as much as possible, finally to improve the quality of software. With the continuous accumulation of defect data, it is impossible to perform defect management and analysis artificial way, automatic method is necessary for reasonable and effective use of defect information. Base on the development of software defect management and data mining technology, the author summarized the characteristics of defects in software testing, and puts forward the improved orthogonal defect classification model and defect association analysis model. The application of the above model is explained, which can help the technicians to locate and solve the defects, and to provide the auxiliary means for software testing defect analysis.

Software Testing; Software Defect Analysis; Orthogonal Defects Classification; Association Rules Mining

TP311

A

10.3969/j.issn.1003-6970.2017.01.015

顏樂鳴(1983-),女,工程師,主要研究方向:軟件測試,軟件工程。

猜你喜歡
數據挖掘關聯規則
撐竿跳規則的制定
“苦”的關聯
當代陜西(2021年17期)2021-11-06 03:21:36
數獨的規則和演變
探討人工智能與數據挖掘發展趨勢
奇趣搭配
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
基于并行計算的大數據挖掘在電網中的應用
電力與能源(2017年6期)2017-05-14 06:19:37
智趣
讀者(2017年5期)2017-02-15 18:04:18
TPP反腐敗規則對我國的啟示
一種基于Hadoop的大數據挖掘云服務及應用
主站蜘蛛池模板: 亚洲成人精品| 国产精品无码一二三视频| 色网站免费在线观看| 日韩大乳视频中文字幕 | 色有码无码视频| 日韩一级毛一欧美一国产 | 国产91在线免费视频| 毛片网站观看| 91精品久久久久久无码人妻| 亚洲专区一区二区在线观看| 亚洲色图欧美激情| 久久中文字幕不卡一二区| 男女性午夜福利网站| 激情综合五月网| 欧美精品伊人久久| 日韩成人在线网站| 久热中文字幕在线| 亚洲成网站| 久久99国产精品成人欧美| 国产在线拍偷自揄拍精品| 青草免费在线观看| 国产成人永久免费视频| 尤物在线观看乱码| 国产拍在线| 国产成人无码AV在线播放动漫 | 亚洲第一视频网站| 成人一区在线| 无码精品福利一区二区三区| 国产91全国探花系列在线播放| 国产综合精品日本亚洲777| 亚洲IV视频免费在线光看| 欧美精品1区2区| 久久黄色毛片| 亚洲人成网站色7777| 中文天堂在线视频| 免费在线色| 午夜影院a级片| 99国产在线视频| 国产91高跟丝袜| 不卡午夜视频| 亚洲第一区欧美国产综合| 亚洲一区二区三区麻豆| 国产理论精品| 国产在线第二页| 国产小视频网站| 97在线免费| 成人一级黄色毛片| 欧洲一区二区三区无码| 99无码熟妇丰满人妻啪啪 | 国产精品久久久久婷婷五月| 国产三级毛片| 欧美亚洲激情| 丝袜无码一区二区三区| 亚亚洲乱码一二三四区| 国产视频久久久久| 91在线高清视频| 国产亚洲高清在线精品99| 美女内射视频WWW网站午夜| 国产永久免费视频m3u8| 色视频国产| 久久 午夜福利 张柏芝| 91青青在线视频| 国产亚洲精品va在线| 青草午夜精品视频在线观看| 亚洲中文字幕23页在线| 欧美激情福利| 99视频在线免费| 欧美综合激情| 欧美精品亚洲日韩a| 国产无遮挡裸体免费视频| 精品人妻一区无码视频| 精品视频福利| 亚洲AV无码乱码在线观看裸奔 | 久久久久国产一区二区| 亚洲成人精品| 国产毛片网站| 制服丝袜亚洲| 欧美日韩国产一级| 中文字幕首页系列人妻| 狠狠色婷婷丁香综合久久韩国| 国产手机在线小视频免费观看| 丁香婷婷综合激情|