梁德軍 楊成武
摘要:軟件產(chǎn)品發(fā)布后,使用過程中不可避免地仍會發(fā)現(xiàn)各種缺陷,對這些缺陷進行記錄、統(tǒng)計和分析具有重要意義。該文結合軟件用戶使用實際,設計并實現(xiàn)了基于ODC的軟件缺陷分析統(tǒng)計系統(tǒng)。該系統(tǒng)能夠根據(jù)實際需要對軟件缺陷進行各種統(tǒng)計和分析,并將結果生成分析統(tǒng)計報告。
關鍵詞:軟件產(chǎn)品;缺陷分析;缺陷統(tǒng)計;ODC
中圖分類號TP311? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)36-0068-04
Abstract: After software product is released which becomes fixed and unchangeable, during the software use, the software defects cant be avoided. It has a very important significance to record, statistics, analyze these defects. Combined with the actual use of user, the paper mainly designs and realizes the architecture of software defect analysis and statics system Based on ODC. The system can carry out a variety of software defect analysis and statistics according to the actual needs of the system, and the results can be generated to the statistics analysis report.
Key words: software product; defect analysis; defect statistic; ODC
1 背景
隨著軟件在系統(tǒng)中所占比重越來越大,軟件發(fā)生故障的概率也隨之增大。而對于一些關鍵軟件或者系統(tǒng)軟件中的一些關鍵模塊,使用過程中一旦發(fā)生故障,造成的后果將不可估量。軟件測試是系統(tǒng)軟件生產(chǎn)中必不可少的質量保障手段。軟件產(chǎn)品在發(fā)布前必須進行嚴格的軟件測試,盡可能地消除軟件中存在的缺陷。通過軟件測試可以發(fā)現(xiàn)系統(tǒng)軟件存在的問題,但是無法完全發(fā)現(xiàn)和消除系統(tǒng)軟件中的缺陷。當系統(tǒng)軟件經(jīng)過測試發(fā)布后,在用戶使用過程中仍會發(fā)現(xiàn)一些遺留的軟件缺陷。“如何對用戶使用過程中發(fā)現(xiàn)的錯誤和缺陷進行跟蹤和管理?如何利用用戶使用過程中記錄的錯誤和缺陷信息來提高軟件質量及可靠性,為今后其他系統(tǒng)軟件的確認測試提供參考?”就成為系統(tǒng)軟件確認測試迫切關心的話題。
為了能夠解決上述問題,軟件測評中心必須加強與軟件用戶的交流,針對用戶使用過程中發(fā)現(xiàn)的軟件缺陷數(shù)據(jù)進行深入分析統(tǒng)計,通過分析統(tǒng)計的結果一方面找到這類軟件缺陷的本質,研究分析確認測試時未能發(fā)現(xiàn)這類問題的原因,并找到解決辦法,進一步有針對性的提高測試能力;另一方面可以對多個軟件產(chǎn)品缺陷數(shù)據(jù)產(chǎn)生趨勢中尋找規(guī)律,有針對性地采取有效措施對測試過程進行修正、加強相關環(huán)節(jié),為今后的軟件確認測試提供參考,防止類似缺陷再次發(fā)生。因此,為了適應這一現(xiàn)實需求,亟需研發(fā)一套軟件缺陷分析統(tǒng)計系統(tǒng)。
2 系統(tǒng)功能需求
在軟件產(chǎn)品發(fā)布并交付用戶使用后,將面臨嚴峻的考驗,在各種復雜情況下涌現(xiàn)大量缺陷也會時有發(fā)生。若處理延誤或不當,會造成十分嚴重的后果。因此,必須重視缺陷分析的作用,靠科學的手段來揭示軟件缺陷偏多的內在規(guī)律和癥結所在,有效地遏制缺陷的發(fā)生。為了使用戶使用過程中發(fā)現(xiàn)的缺陷數(shù)據(jù)得到充分利用,必須引入度量的機制,對缺陷的信息進行統(tǒng)計和分析。缺陷分析是將軟件使用過程中產(chǎn)生的缺陷進行必要的收集,對缺陷的信息進行分類和匯總統(tǒng)計,計算分析指標,編寫分析統(tǒng)計報告的活動。因此,軟件缺陷分析統(tǒng)計系統(tǒng)應具備的主要功能包括:
2.1 缺陷管理功能
主要完成對軟件缺陷數(shù)據(jù)的錄入、修改、刪除、查詢等操作。對于軟件缺陷生命周期中所有不同處理狀態(tài)都要進行記錄,并且能通過缺陷或者各種缺陷屬性分類,方便查詢系統(tǒng)中存在的缺陷記錄信息。軟件缺陷數(shù)據(jù)管理是軟件缺陷分析統(tǒng)計的基礎。
2.2 缺陷分析統(tǒng)計功能
構建各種統(tǒng)計分析模型,能夠根據(jù)用戶需要靈活選取統(tǒng)計分析方法對軟件缺陷進行各種統(tǒng)計分析,并對分析統(tǒng)計結果提供直觀的圖形顯示。缺陷分析統(tǒng)計是整個軟件缺陷分析統(tǒng)計系統(tǒng)的核心,是整個過程中最關鍵、最核心的部分,缺陷數(shù)據(jù)分析統(tǒng)計方法的選取是軟件缺陷分析統(tǒng)計的關鍵[1]。
2.3 報表輸出功能
給用戶提供軟件缺陷分析統(tǒng)計報告,描述軟件使用過程中所發(fā)現(xiàn)的缺陷信息以及缺陷目標、缺陷影響等缺陷分析統(tǒng)計結果。
2.4 用戶權限管理功能
支持用戶通過賬號訪問該系統(tǒng),系統(tǒng)中的用戶需要擁有不同權限。對于不同角色的用戶,只允許執(zhí)行在其權限范圍內的各種操作。
3 軟件缺陷分析統(tǒng)計模型
目前,軟件缺陷分析統(tǒng)計方法主要包括:柏拉圖分析法、根本原因分析法、正交缺陷分類法(Orthogonal Defect Classification,簡稱ODC)等。其中,利用缺陷正交分類法既可以對缺陷本質特性進行分析,同時又對缺陷類型做了深層次劃分,使得該方法既適用于分類缺陷,又能夠用來對缺陷進行統(tǒng)計和分析,是目前應用較為廣泛的缺陷分析方法[2]。
4 ODC分析統(tǒng)計模型
正交缺陷分類是從大量缺陷中抽象、歸納、總結出缺陷的本質,利用正交的八個屬性[3]表示一個缺陷,使得缺陷被準確地定位和表達。根據(jù)發(fā)現(xiàn)缺陷的過程,ODC方法在使用中分為兩個階段:開放階段和關閉階段。在軟件產(chǎn)品使用過程中,操作人員發(fā)現(xiàn)缺陷后,建立缺陷記錄,此時缺陷進入開放階段,操作人員填寫缺陷的基本信息以及如下ODC信息:發(fā)現(xiàn)缺陷的活動、缺陷的觸發(fā)因素和缺陷的影響,然后將缺陷提交給開發(fā)人員,開發(fā)人員對提交的缺陷進行分析、修改,然后填寫此缺陷的其余五個屬性,分別是缺陷目標、缺陷階段、缺陷來源、缺陷類型和缺陷限定,進入缺陷的關閉階段。軟件產(chǎn)品發(fā)布后,利用ODC對發(fā)現(xiàn)的軟件缺陷進行分析統(tǒng)計,其八個屬性定義如下:
4.1 發(fā)現(xiàn)缺陷的活動
發(fā)現(xiàn)缺陷的活動是指在進行什么活動時發(fā)現(xiàn)了缺陷。該文主要研究軟件產(chǎn)品發(fā)布后的缺陷分析,因此,這里發(fā)現(xiàn)缺陷活動的取值為系統(tǒng)維護階段,代表的含義為在用戶實際使用過程中,檢驗軟件在復雜環(huán)境下運行是否穩(wěn)定可靠,功能是否滿足需求。
4.2 觸發(fā)因素
缺陷的觸發(fā)因素指使得潛在缺陷顯露出來成為一個可見故障所需要的環(huán)境和操作。即通過這個條件和操作,可以重現(xiàn)這個缺陷。觸發(fā)因素屬性與軟件的生命周期相聯(lián)系,在不同的階段有不同的方法用于發(fā)現(xiàn)缺陷,與之相應就有不同的觸發(fā)因素。在系統(tǒng)維護階段的觸發(fā)因素如表1所示。
4.3 缺陷影響
缺陷的影響指如果缺陷未被發(fā)現(xiàn)并修正,而是投入運行,將會產(chǎn)生什么樣的影響或系統(tǒng)將產(chǎn)生什么類型的錯誤,缺陷影響屬性描述了這些影響的性質。缺陷的影響包括:可達性、性能、可靠性、安全性、易用性、可維護性、可安裝性等。
4.4 缺陷目標
缺陷目標描述了修改此缺陷要改動的目標。主要包括:設計、編碼、文檔等。
4.5 缺陷類型
缺陷類型是指修改缺陷所采取的修改操作的類型,取值如表2所示。
4.6 缺陷限定
缺陷限定這個屬性是針對缺陷類型的進一步限定,它指出缺陷類型是缺失、不正確還是多余。即修改要做哪些工作,是增加缺少的功能代碼、修改不正確部分還是刪除多余的代碼。
4.7 缺陷來源
缺陷來源是指缺陷是通過什么途徑引入的。比如:開發(fā)人員自己引入,重用庫中的錯誤,第三方軟件問題或移植的其他代碼。
4.8 缺陷階段
缺陷階段指明缺陷是在哪個階段引入的。指明是原來版本存在的或者新發(fā)現(xiàn)的,是重寫函數(shù)時引入的還是修復之前缺陷時引入的。
5 軟件缺陷統(tǒng)計內容
在缺陷分析中可以使用統(tǒng)計方法對收集的缺陷進行分類、匯總?;诓煌娜毕輰傩?,根據(jù)需要統(tǒng)計缺陷分布情況,利用統(tǒng)計結果分析缺陷產(chǎn)生的根本原因,將其成為改進軟件測評過程的依據(jù)。缺陷統(tǒng)計內容包括:
1) 缺陷時間統(tǒng)計:是按軟件缺陷發(fā)生的年月統(tǒng)計。該統(tǒng)計分析反映缺陷發(fā)生的動態(tài)趨勢。
2) 缺陷來源統(tǒng)計:是按系統(tǒng)軟件使用時機進行統(tǒng)計,該統(tǒng)計分析主要反映軟件缺陷的來源分布,發(fā)現(xiàn)一些分布規(guī)律,進一步挖掘軟件測試深層次的問題。
3) 缺陷按軟件子系統(tǒng)分類統(tǒng)計:該統(tǒng)計能顯示各軟件子系統(tǒng)的缺陷分布情況。
4) 缺陷嚴重性等級統(tǒng)計:主要反映軟件缺陷的嚴重性程度和對作戰(zhàn)使用的影響程度。
5) 缺陷種類統(tǒng)計:軟件缺陷類型統(tǒng)計一般分為功能、性能、接口、人機交互界面、安裝性、文檔等。
6) 缺陷狀態(tài)分布:主要反映缺陷修改完成情況,軟件缺陷狀態(tài)屬性包括:關閉、掛起和處理中。
6 軟件缺陷分析指標
缺陷分析時需要計算一些分析指標,使分析結果得到定量描述,以便進行直觀地對比。度量分析指標能夠為定量分析缺陷提供基礎。對軟件產(chǎn)品發(fā)布后缺陷分析而言,分析指標主要包括:
6.1 反映產(chǎn)品質量的指標[4]
缺陷密度=缺陷數(shù)量/軟件規(guī)模
6.2 反映產(chǎn)品可靠性的指標
平均失效時間=軟件持續(xù)運行時間/缺陷數(shù)量
6.3 反映缺陷修復成本的指標
平均修復時間=缺陷修復時間/缺陷數(shù)量
對定型后缺陷分析而言,平均修復時間指標比較重要,它反映了維護階段處理缺陷的效率。
7 系統(tǒng)體系結構設計
通過對軟件缺陷分析統(tǒng)計系統(tǒng)的需求進行分析,系統(tǒng)的架構設計共分為三層(如圖1所示),分別是數(shù)據(jù)層、模型層和應用層。數(shù)據(jù)層主要提供各種數(shù)據(jù)支撐,包括缺陷數(shù)據(jù)、用戶數(shù)據(jù)和其他數(shù)據(jù)等;模型層主要集成了各種缺陷分析統(tǒng)計模型,包括缺陷統(tǒng)計模型、缺陷分析模型以及ODC模型等,為系統(tǒng)軟件的核心部分;應用層面向軟件使用管理人員,提供各種界面和操作完成軟件缺陷的錄入、統(tǒng)計、分析以及用戶的權限管理,包括缺陷管理、缺陷分析、缺陷統(tǒng)計和報表輸出、用戶管理等。各層間采用相對獨立的設計,模塊與模塊間具有獨立性強、耦合松散的特點,便于軟件的重組和擴展。
8 系統(tǒng)實現(xiàn)與應用
當新研軟件產(chǎn)品發(fā)布后,在使用過程中不可避免的仍會發(fā)現(xiàn)一系列軟件缺陷。利用該系統(tǒng)對這些缺陷進行收集記錄,同時根據(jù)實際需要對這些缺陷進行各種統(tǒng)計分析,并將結果生成分析統(tǒng)計報告。系統(tǒng)運行主界面如圖2所示。
首先將新發(fā)現(xiàn)的軟件缺陷錄入到系統(tǒng)中,然后利用該系統(tǒng)對軟件缺陷進行統(tǒng)計分析,一方面可以利用建立的缺陷統(tǒng)計模型和缺陷分析模型對軟件缺陷進行分析統(tǒng)計,如軟件問題按嚴重性等級統(tǒng)計等。同時,也可以利用基于ODC的分析統(tǒng)計模型對軟件缺陷進行分析統(tǒng)計,如軟件問題按缺陷目標統(tǒng)計、按缺陷影響統(tǒng)計等。
軟件問題按嚴重性等級統(tǒng)計結果如表3、圖3所示。
根據(jù)不同的統(tǒng)計分析結果能夠得到不同的分析結論,這對于改進軟件測評過程、提高軟件測評技術能力具有非常重要的意義。
9 結束語
該文主要對軟件缺陷分析系統(tǒng)的設計與實現(xiàn)進行了研究,使用該系統(tǒng)可以對發(fā)現(xiàn)的軟件缺陷進行跟蹤、管理以及分析統(tǒng)計,并將分析統(tǒng)計結果生成分析統(tǒng)計報告輸出。結果表明該系統(tǒng)的實現(xiàn)可以為用戶的軟件使用管理提供工具支撐,而對用戶使用過程中的軟件缺陷數(shù)據(jù)進行分析,可以為今后其他相同或相似軟件研發(fā)和軟件確認測試提供參考及借鑒。
參考文獻:
[1] 連進,朱曉燕.基于Trackrecord的軟件缺陷分析統(tǒng)計系統(tǒng)的設計[J].武漢科技學院學報,2005,18(1):59-62.
[2] Ram Chillarege,et al.Orthogonal Defect Classification-A Concept for In-process Measurements[J].IEEE Transaction on SoftwareEngineering, 1992, 18(11):943-956.
[3] 王賀. 基于ODC的軟件缺陷管理方法的研究與應用[D]. 北京:北京郵電大學,2009.
[4] 劉莉. 基于統(tǒng)計過程控制的軟件缺陷管理研究[D].大連:大連海事大學,2007.
[通聯(lián)編輯:謝媛媛]