黃世云
作為信息技術(shù)的重要組成部分,數(shù)據(jù)挖掘技術(shù)近年來被廣泛應(yīng)用到社會生產(chǎn)生活的各個領(lǐng)域。本文以軟件工程數(shù)據(jù)挖掘技術(shù)作為研究對象,通過對軟件工程數(shù)據(jù)挖掘的概念進行闡述,在結(jié)合軟件工程數(shù)據(jù)挖掘技術(shù)與傳統(tǒng)數(shù)據(jù)挖掘技術(shù)之間區(qū)別的基礎(chǔ)上,對軟件工程數(shù)據(jù)挖掘在軟件測試階段的應(yīng)用方法展開了深入研究。
【關(guān)鍵詞】軟件工程 數(shù)據(jù)挖掘 軟件測試
數(shù)據(jù)挖掘又稱為數(shù)據(jù)采礦或資料勘探,是數(shù)據(jù)庫知識發(fā)現(xiàn)(KDD)中的重要組成部分,具體是指利用相關(guān)算法搜索隱藏于大量數(shù)據(jù)中信息的具體過程。近年來,隨著科技和經(jīng)濟的不斷發(fā)展,一種基于軟件工程的數(shù)據(jù)挖掘技術(shù)得到了廣泛應(yīng)用。本文通過對比軟件工程數(shù)據(jù)挖掘與傳統(tǒng)數(shù)據(jù)挖掘的區(qū)別,并結(jié)合軟件工程數(shù)據(jù)挖掘的相關(guān)概念,為將軟件工程數(shù)據(jù)挖掘應(yīng)用到計算機軟件測試中提出了合理的意見和建議。
1 軟件工程數(shù)據(jù)挖掘簡述
所謂軟件工程數(shù)據(jù)是指軟件在開發(fā)和測試過程中所存儲的各種數(shù)據(jù)的總和,主要包括軟件需求分析文檔、軟件可行性運行分析文檔、軟件的設(shè)計文檔、使用說明以及測試用例、測試結(jié)果和用戶意見等諸多方面的數(shù)據(jù)。近年來,隨著計算機和信息技術(shù)的不斷發(fā)展,軟件工程數(shù)據(jù)挖掘技術(shù)已被廣泛應(yīng)用到計算機軟件開發(fā)和測試的各項工作中,并促進著信息產(chǎn)業(yè)的發(fā)展。
2 軟件工程數(shù)據(jù)挖掘與傳統(tǒng)數(shù)據(jù)挖掘的區(qū)別
2.1 數(shù)據(jù)的復(fù)雜性
與傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)相比,由軟件工程數(shù)據(jù)挖掘技術(shù)進行系統(tǒng)分析而得到的數(shù)據(jù)更具復(fù)雜性。軟件工程數(shù)據(jù)除了包含軟件版本以及軟件報告等方面的信息外,還包含了系統(tǒng)中的代碼與注釋等非結(jié)構(gòu)化的數(shù)據(jù),雖然這兩種數(shù)據(jù)不能以統(tǒng)一的方法進行計算,但在兩種數(shù)據(jù)之間卻存在著密切的聯(lián)系,這就使得通過軟件工程數(shù)據(jù)挖掘技術(shù)而得到的系統(tǒng)數(shù)據(jù)更具復(fù)雜性。
2.2 挖掘結(jié)果的特殊性
在傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)應(yīng)用到軟件測試工作后,其測試結(jié)果通常經(jīng)由報表子系統(tǒng)的處理后,以圖形或表格的形式呈現(xiàn)出來。但就軟件工程數(shù)據(jù)挖掘技術(shù)而言,其所需要具備的功能不單是為用戶提供相關(guān)測試結(jié)果,其更需要為用戶提供符合或推翻結(jié)果的相關(guān)實例或軟件缺陷定位方面的信息。
2.3 挖掘結(jié)果的多元化評價
數(shù)據(jù)信息挖掘結(jié)果具有多元化的評價或者相關(guān)測試、開發(fā)結(jié)果的評價難以統(tǒng)一是軟件工程數(shù)據(jù)挖掘區(qū)別于傳統(tǒng)數(shù)據(jù)挖掘的另一特點。對于傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)而言,對挖掘結(jié)果的評價已基本形成了統(tǒng)一的意見和評價標(biāo)準(zhǔn),但就軟件工程數(shù)據(jù)挖掘而言,由于軟件的開發(fā)人員和測試人員對數(shù)據(jù)信息的要求較為具體和嚴(yán)格,數(shù)據(jù)結(jié)果也具有較強的復(fù)雜性。因此,挖掘結(jié)果的評價方法也較為復(fù)雜。
綜上所述,如何將軟件測試的結(jié)果和對測試階段數(shù)據(jù)預(yù)處理方面的結(jié)果進行有效表述已成為當(dāng)前軟件工程數(shù)據(jù)挖掘技術(shù)應(yīng)用的難點。所以,下文則著重從軟件工程數(shù)據(jù)挖掘在軟件測試階段的應(yīng)用方法展開了詳細分析。
3 軟件工程數(shù)據(jù)挖掘在軟件測試階段應(yīng)用的研究
3.1 缺陷分派
所謂缺陷分派是指在進行軟件測試的過程當(dāng)中,如發(fā)現(xiàn)軟件在安裝或運行過程中出現(xiàn)缺陷,則將修復(fù)缺陷的工作分配給軟件維護人員進行維修處理。在進行軟件的缺陷分派工作時,軟件測試人員需要連同開發(fā)人員一起分析使軟件產(chǎn)生缺陷的原因,進而對相關(guān)缺陷的性質(zhì)和特征信息進行獲取,而缺陷信息報告的數(shù)量通常是龐大大,這就增加了缺陷分派工作的難度。此外,由于缺陷報告的撰寫工作通常是由非專業(yè)人員負責(zé)的,其對軟件缺陷的描述較為模糊,這又嚴(yán)重增加了缺陷分派工作的不確定性。軟件工程數(shù)據(jù)挖掘在缺陷分派中的應(yīng)用主要體現(xiàn)在對軟件缺陷的自動分派上,其對軟件缺陷進行自動分派的核心思想是:以軟件編程的相關(guān)理論為基礎(chǔ),將缺陷分派看作編程中的一個分類問題,將需要分派的缺陷看作具體類,并將已撰寫好的缺陷報告看作是分類文本(分類依據(jù)),這便將缺陷分派問題轉(zhuǎn)移到了軟件工程中的文本分類問題中。利用軟件工程數(shù)據(jù)挖掘解決缺陷分排問題的具體步驟為:(1)利用可擴展標(biāo)記語言工具(XML)從缺陷類中獲取相關(guān)的缺陷報告文本,并從報告文本中選取一部分文本作為訓(xùn)練集,以軟件缺陷報告中的文本內(nèi)容作為具體的訓(xùn)練依據(jù),被制定進行缺陷分派處理的測試人員作為報告文本的分類標(biāo)簽,進而開展相關(guān)的缺陷分類工作;(2)充分發(fā)揮訓(xùn)練集的作用,并以此為依據(jù)訓(xùn)練樸素貝葉斯分類器(基于貝葉斯定理的簡單概率分類器);(3)以訓(xùn)練好的分類器作為依據(jù),將無分類標(biāo)記的缺陷報告進行分類。通過軟件工程數(shù)據(jù)挖掘?qū)浖毕莘诸惖囊幌盗刑幚泶胧┛芍?,軟件工程?shù)據(jù)挖掘的應(yīng)用在指明缺陷類別的同時,也有效提高了缺陷分派的工作效率。
3.2 缺陷重述
軟件測試過程中缺陷分派工作的有效開展需要以相關(guān)的缺陷信息作為數(shù)據(jù)保障,而缺陷信息的自動獲取工作則需以缺陷重述作為其理論和實踐的雙重依據(jù)。在缺陷報告的改進方面,軟件工程數(shù)據(jù)挖掘可以利用Ccured(記憶型系統(tǒng)翻譯程序)對應(yīng)用程序進行預(yù)設(shè)。通過在缺陷的每一個邏輯語句和缺陷語句前加一句判定,進而將此次賦值進行記錄并判斷其是否為零。如果將軟件的完整缺陷報告發(fā)送給測試者,由于軟件和報告的規(guī)模較大,則很容易導(dǎo)致缺陷分類具有較強的模糊性。因此,軟件工程數(shù)據(jù)挖掘要求對缺陷記錄點依照概率p進行取樣,通過這種方法,即便缺陷報告不存在其主體,測試結(jié)果也可以顯示出相關(guān)缺陷的信息,從而為缺陷分派工作的進行打下良好的基礎(chǔ)。
4 結(jié)論
本文通過對軟件工程數(shù)據(jù)挖掘技術(shù)的定義進行闡述,并結(jié)合就軟件數(shù)據(jù)挖掘技術(shù)的相關(guān)特點,對將其應(yīng)用到軟件測試過程中缺陷分派和缺陷重述的方法展開了詳細分析。可見,未來加強軟件工程數(shù)據(jù)挖掘在軟件測試方面的應(yīng)用,對于提高軟件性能、促進電子計算機產(chǎn)業(yè)的發(fā)展具有重要的歷史作用和現(xiàn)實意義。
參考文獻
[1]鄢萌.基于概率潛在語義分析的軟件變更分類研究[D].重慶大學(xué),2013.
[2]雷蕾.關(guān)于數(shù)據(jù)挖掘技術(shù)在軟件工程中的應(yīng)用綜述[J].電子測試,2014,02(12):128-129.
[3]羅韜,羅峰.數(shù)據(jù)挖掘在軟件工程領(lǐng)域中的應(yīng)用淺析[J].電子技術(shù)與軟件工程,2014,01(09):222.
作者單位
重慶市中冉信息產(chǎn)業(yè)有限公司 重慶市 400050endprint