熊登峰
摘 要:基于故障模式的嵌入式軟件智能測試方法作為一種解決嵌入式軟件測試問題的新途徑,其關鍵技術之一就是如何從故障模式庫中找出與嵌入式軟件相關的故障模式。文章論述了如何使用關聯(lián)規(guī)則,在故障模式庫中挖掘出與被測試對象相關的故障模式。
關鍵詞:關聯(lián)規(guī)則;軟件故障模式庫;故障模式
1 概述
隨著嵌入式系統(tǒng)在航空航天武器裝備、工業(yè)控制、車輛導航、信息家電、家庭智能管理系統(tǒng)、POS網絡及電子商務、自然環(huán)境實時監(jiān)控、機器人、物聯(lián)網等領域廣泛運用。用戶對嵌入式系統(tǒng)質量要求日趨嚴格,嵌入式軟件測試作為嵌入式系統(tǒng)項目質量控制的主要手段,正受到越來越多的重視。而嵌入式軟件運行是實時的,運行過程中嵌入式軟件,硬件以及外部設備的頻繁交互,嵌入式軟件系統(tǒng)本身對性能的要求也高,因此,所有這些特點決定嵌入式軟件測試是一類最難的測試。
基于故障模式的嵌入式軟件智能測試方法作為一種解決嵌入式軟件測試問題的新途徑,具有缺陷探測率(DDP)更高,測試周期更短,測試成本更低優(yōu)勢特點。實現(xiàn)該測試方法的關鍵技術之一就是如何從故障模式庫中找出與嵌入式軟件相關的故障模式。文章將介紹使用Apriori算法實現(xiàn)關聯(lián)規(guī)則挖掘在該智能測試方法中的應用。
2 關聯(lián)規(guī)則挖掘過程
2.1 挖掘任務
該智能測試方法要根據用戶要求為軟件系統(tǒng)提供最有效、最相關的故障模式,而要實現(xiàn)此功能就必須依據一定的推理規(guī)則,所以在這里關聯(lián)規(guī)則挖掘的任務就是要從大量的故障模式數據中獲取一定的關聯(lián)規(guī)則,作為測試方法中要用到的推理規(guī)則的一部分。以后文章所提到的關聯(lián)規(guī)則就是指推理規(guī)則。
2.2 數據準備
我們假設在某行業(yè)嵌入式軟件故障模式庫中,故障模式數據記錄在一個關系數據庫中。下面列出其中最重要的一張數據表。
在上述表格中,每條故障模式包含信息有:編號、軟件類型、模塊類型、編程語言、故障模式名稱、出錯次數、危害程度。其中主要特征的含義如下:
●軟件類型:是指軟件系統(tǒng)的應用類型;
●模塊類型:指一個軟件系統(tǒng)中的模塊的分類,例如是圖形模塊、編澤器模塊還是通訊模塊等等,當然還可以分的更細;
●編程語言:是用什么語言編程,C++、iava或是C#等;
●故障模式描述:故障模式的描述;
●出錯次數:符合這種故障模式的錯誤次數;
●危害度:此故障模式測出的錯誤的危害程度。
當然除了上述特征外,還有另外一些特征,例如編程工具、軟件運行平臺等,上表沒有一一列舉。
將這些特征除全部數值化和離散化表示,這樣符合關聯(lián)規(guī)則挖掘的要求。我們的目的主要是想通過關聯(lián)規(guī)則挖掘找出諸如什么類型的軟件的故障模式導致較高的危害,或者什么類型的模塊中什么類型的故障模式出錯次數較多等等推理規(guī)則,這些規(guī)則止是故障模式提供中要用到的。把這些數據準備好以后,下面就可以挖掘關聯(lián)規(guī)則了。
2.3 挖掘關聯(lián)規(guī)則
我們指定最小支持度和最小可信度,這可以由系統(tǒng)缺省指定,也可以由用戶自己指定。假設最小支持度為50%,要求的最小支持度越高,挖掘出的規(guī)則越少,挖掘的過程也越快;最小可信度為50%。然后利用Apriofi算法對故障模式數據庫進行挖掘處理,處理過程這里不再詳述。最終可以獲取一系列的關聯(lián)規(guī)則。其中可能的一條規(guī)則形式如下:
(軟件類型=3,輸入類型=15)=> (出錯次數>=4,危害度>=4)
支持度為60.77%,可信度是85.18%,期望可信度是84.00%,作用度是1.03
這條規(guī)則表明,60.77%的軟件類型為3,故障模式類型為15的故障模式它們的出錯次數>=4,危害度>-4。
2.4 應用關聯(lián)規(guī)則
運用上述規(guī)則,軟件故障模式庫根據用戶所提供的軟件的特征,將滿足此規(guī)則的所有故障模式推薦給用戶。用戶首先給出其軟件的類型,假定為3,然后再給出危害度>=4,最小支持度為50%,則故障模式庫根據上述規(guī)則將所有故障模式描述為15的故障模式列舉出來給用戶,實現(xiàn)了所要求的功能。
通過以上步驟,得到了一些關聯(lián)規(guī)則。當然在實際運用中,還應該反復作一些調整、比較,力求得到最符合實際、最能達到目標要求的結果。有些關聯(lián)規(guī)則可能沒有任何意義,因該將其手動剔除,以免導致故障模式庫提供一些無效的或不太相關的故障模式。
3 結束語
文章對關聯(lián)規(guī)則在軟件故障模式庫中的故障模式提供上的簡單應用作了描述,給出了挖掘步驟和方法,并舉例說明了應用于軟件故障模式庫的過程,具有一定的實用價值。但對關聯(lián)規(guī)則挖掘在軟件故障模式庫中更迸一步的應用有待研究。
參考文獻
[1]范明,孟小峰.數據挖掘概念與技術[M].機械工業(yè)出版社.
[2]孫紅利,王忠民,王文.嵌入式軟件語句覆蓋率測試插樁技術[J].計算機應用,2010,30(10):1-4.
[3]王軼展,徐萍.嵌入式軟件機內測試的設計與測試[J].計算機工程,2009,35(17):34-39.
[4]田金蘭,黃剛.關聯(lián)規(guī)則挖掘在保險業(yè)務中的應用[0L].
[5]蔡偉杰,張曉輝,朱建秋,等.關聯(lián)規(guī)則挖掘綜述[J].計算機工程,2001.
[6]朱建秋,周皓峰,朱揚勇,等.一個基于關聯(lián)規(guī)則的數據采掘工具的設計和實現(xiàn)[OL].