隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的逐漸發(fā)展,軟件工程領(lǐng)域中軟件開發(fā)人員數(shù)量以及代碼量不斷增加。開發(fā)人員在代碼中輸出的日志是故障診斷和缺陷修復的主要依據(jù),日志的質(zhì)量是軟件維護性的關(guān)鍵。目前并沒有一種自動化的方法來評估日志的合理性,也缺少對日志合理評價的標準。在這樣的背景下,提出了基于模型的日志合理性分析評價指標研究。
【關(guān)鍵詞】軟件質(zhì)量管理 日志分析 多維度多指標 Apriori算法
1 引言
任何一種軟件的軟件日志的合理性分析與評價管理就是一種可行的有效提高軟件質(zhì)量的新型方法。日志從概念上來說就是按照一定事先約定的規(guī)則將軟件應用程序或者軟件用戶的所有相關(guān)的操作行為以及軟件開發(fā)設(shè)計過程中發(fā)生的事件盡可能詳細記錄下來。因此,軟件的日志信息成為整個軟件開發(fā)系統(tǒng)的日常調(diào)試以及軟件監(jiān)察等日常維護中的一種不可或缺的常用工具。軟件系統(tǒng)日志主要作用及功能表現(xiàn)在以下幾個方面的內(nèi)容上:
(1)首先,日志能夠?qū)浖脩舻母鞣N操作行為進行審計。
(2)對各種類軟件入侵行為的及時有效檢測。
(3)對軟件系統(tǒng)資源的實時監(jiān)控。
(4)必要的時候幫助恢復軟件系統(tǒng)。
(5)能夠幫助評估軟件系統(tǒng)被破壞造成的損失情況并生成詳細的調(diào)查報告。
2 日志合理性分析評價指標選取
日志合理性分析評價指標選取得是否合適將決定著評價的準確性。因此,本論文中將選取多維度多指標來表征日志合理性
2.1 效率維度評價指標
(1)日志密度(分析百萬行代碼的用時)。定義分析代碼所用總時間為T,代碼行數(shù)為N,則分析百萬行代碼的用時為(T*1000000)/N。
(2)平均分析單個日志的時間。定義日志點的數(shù)量為b,則平均分析單個日志的時間t為T/b。
(3)增加的日志變量數(shù)/原變量數(shù)。定義日志增強前,日志中變量的數(shù)量為c1,日志增強后變量的數(shù)量為c2,則該指標表述為(c2-c1)/c1。
2.2 正確性維度評價指標
2.2.1 正確標記率
定義故障點集合為A,日志點集合為B。故障點即為理論上需要添加日志點的代碼處。則正確標記率為(A&B)/A。
2.2.2 誤報率及漏報率
誤報率為(B-A&B)/B,誤報率是用來評價錯誤判斷故障點的程度。漏報率為(A-A&B)/A,漏報率是用來評價成功判斷故障點的程度。
2.3 可維護性維度評價指標
本節(jié)重點選擇重復日志率進行介紹。定義重復日志點的數(shù)量為D,則重復日志率為D/B。如果日志點重復數(shù)量很多,則不便于后期的調(diào)試及維護工作,可維護性低。日志重復情形分類如下:
情形一:根據(jù)控制流分析得到的結(jié)果,在必然執(zhí)行的路徑上,如果出現(xiàn)了變量相同的多個日志點,則判斷為日志重復,且相同的日志點越多,日志重復率越高;
情形二:單個日志點對應多個日志輸出適配器,每個日志輸出適配器都進行了打印操作,通過解析日志配置文件可以發(fā)現(xiàn)并檢測該日志重復問題;
情形三:日志打印出的信息重復。比如:日志中需要打印線程信息,如果線程未改變,則只打印一次線程信息即可,打印多次則判斷為重復。
2.4 可擴展性維度評價指標
(1)日志觸發(fā)條件的復雜度。指標:n個變量觸發(fā)日志,n越大,復雜度越高,得分越低。
(2)從函數(shù)入口到log點之間的相關(guān)分支數(shù)。指標:分支里包含了對日志觸發(fā)條件的賦值則該分支為相關(guān)分支;相關(guān)分支越多得分越低。
3 評價指標提取算法過程模擬
評價指標提取算法的模擬過程如圖1所示。
過程描述:首先是對事務(wù)數(shù)據(jù)庫進行一次完整全面地信息掃描。然后根據(jù)算法求出每個侯選集C1,及其所對應的布爾事務(wù)表的詳細信息。緊接著由最小支持度相關(guān)的算法能夠計算得到頻繁項目集L1;進一步由項目集L1能夠計算得到候選項目集C2,而在這個過程當中已經(jīng)不需要再對數(shù)據(jù)庫進行掃描了,這也是這種改進算法最重要的優(yōu)點之一。
4 實驗結(jié)果分析與結(jié)論
日志合理性分析評價實驗選取了三個工程,利用分析工具對部分指標進行了提取,并在前臺進行了結(jié)果展示,指標結(jié)果比較如下:
工程一(lighttpd1.4-master):日志點總數(shù)575,不合理日志點數(shù)58,故障日志點數(shù)276,正確標記率100%,誤報率52%,分析所有日志點總時間45.259s,分析單個日志點時間0.079s;
工程二(coreutils-6.12):日志點總數(shù)456,不合理日志點數(shù)47,故障日志點數(shù)157,正確標記率100%,誤報率65.57%,分析所有日志點總時間37.236s,分析單個日志點時間0.082s;
工程三(grep-2.5.3):日志點總數(shù)973,不合理日志點數(shù)93,故障日志點數(shù)492,正確標記率100%,誤報率49.43%,分析所有日志點總時間87.742s,分析單個日志點時間0.090s;
根據(jù)實驗過程以及驗證結(jié)果的比對,我們有理由相信,論文中使用多維度多指標的日志合理性評價標準,能夠較為全面地評價日志合理性。
參考文獻
[1]高崇南,余宏亮,鄭緯民.基于日志的系統(tǒng)任務(wù)模型推理工具及其應用[J].計算機研究與發(fā)展,2010,47(08):140-146.
作者簡介
韓放(1991-),男,安徽省六安市人。畢業(yè)于華中科技大學軟件學院,碩士研究生學歷。研究方向為數(shù)據(jù)挖掘,云計算。
作者單位
中國電子商務(wù)協(xié)會中國電子商務(wù)師培訓管理中心 湖北省武漢市 430074