閆若琨
北京交通大學 北京 100044
軟件開發(fā)技術的復雜度逐步提升,更易造成后續(xù)使用過程中的產(chǎn)品缺陷。特別是對于通信類軟件,由于產(chǎn)品質量問題會導致軟件用戶的通信間斷,從而會給用戶的日常生活造成不良影響。因此,在軟件開發(fā)的過程中便應該盡早發(fā)現(xiàn)缺陷,在開發(fā)時提高通信軟件的質量要遠比開發(fā)完成后再進行反復測試更為有效。而通信軟件質量的提升需要企業(yè)加大整體研發(fā)的投入金額,所以通信軟件企業(yè)在軟件質量方面的管理成本呈現(xiàn)逐年增加的態(tài)勢。要想得到高質量的通信軟件,需要通信軟件生產(chǎn)企業(yè)在軟件缺陷預防方面付出更大的努力,這樣才能在避免軟件缺陷重復出現(xiàn)的同時提升企業(yè)的經(jīng)濟效益。
通信軟件缺陷預防指的是在通信軟件未出現(xiàn)缺陷時,開發(fā)人員便提前采取積極有效的一系列預防措施,將缺陷扼殺在萌芽狀態(tài)的一種先進型技術。美國質量保證研究所曾對軟件修復成本做過一項統(tǒng)計,結果表明軟件上線后期發(fā)現(xiàn)缺陷的修復成本要遠遠高于軟件開發(fā)初期,且修復成本會隨著軟件上線時間的推進而大幅增加。這是由于通信軟件發(fā)生缺陷后,開發(fā)人員需要修改最初的設計與編碼,且需要重新進行測試以及考慮對其他相關模塊的影響。該研究所的數(shù)據(jù)表明,若將軟件初始設計時修復一個缺陷的成本記作1,那么軟件正式上線后進行修復的成為則為100,成本屬于成百倍的增長。因此,為了降低軟件發(fā)布后的巨幅修復成本,最好的方法便是在初始開發(fā)是進行缺陷預防[1]。
工作人員在嘗試修復通信軟件已經(jīng)發(fā)生的問題或缺陷時,往往會將表面結果作為修復衡量指標,解決問題后便不再深入挖掘剖析。這樣的操作便會存在通信軟件缺陷表面已經(jīng)處理完畢但實際還存在深層次問題,無法找尋到缺陷存在的根本原因,從而導致軟件的缺陷反復發(fā)生,浪費大量時間成本和修復成本。除此以外,當一個通信軟件發(fā)生缺陷時,通常會由一整個團隊進行修復,有時團隊成員在解決缺陷的策略上有不同想法,成員間缺乏團隊內部的溝通確認和交流分享,這樣導致通信軟件缺陷處理具備延后性,無法快速高效地制定有效的缺陷解決策略。
由于缺乏對研發(fā)人員的明確分工,會導致通信軟件缺乏整體性規(guī)劃,降低通信軟件系統(tǒng)運行的穩(wěn)定性和可擴展度。且現(xiàn)階段缺乏專業(yè)的通信軟件測試員,軟件的測試工作通常是由程序開發(fā)者來完成。由于軟件開發(fā)者擁有定性思維,且存在個人思維的局限性,往往難以發(fā)現(xiàn)軟件設計過程中存在的固有缺陷,這樣會導致研發(fā)人員無法在開發(fā)階段發(fā)現(xiàn)大量的程序錯誤,為通信軟件日后發(fā)生缺陷埋下巨大的隱患[2]。
(1)通信軟件缺陷預防體系理論概述
通信軟件缺陷預防體系主要由兩部分構成:首先是對通信軟件缺陷的整體化分析過程,通俗來講便是對通信軟件缺陷的解決策略和風險分析過程。其次是建立系統(tǒng)化的缺陷資產(chǎn)庫,對通信軟件經(jīng)常出現(xiàn)的缺陷數(shù)據(jù)和預防流程進行系統(tǒng)化梳理。通信軟件缺陷預防體系的建立主要包括以下四個步驟。
首先,應該設立處理通信軟件缺陷問題的專業(yè)化團隊,并賦予專業(yè)化團隊一定的責任指標。設立一個團隊負責人,一般由通信軟件項目的經(jīng)理來擔任,團隊負責人進行任務分配、團隊矛盾協(xié)調。團隊人員負責系統(tǒng)化處理通信軟件缺陷,人員構成包括缺陷領域的專業(yè)人才、通信軟件開發(fā)人員等。
第二,要根據(jù)具體問題構建長期及短期的通信軟件缺陷應對策略。根據(jù)對通信軟件缺陷各項指標的記錄,用記錄數(shù)據(jù)分析缺陷的輕重程度,按照輕重程度將缺陷劃分為嚴重缺陷、一般缺陷和輕微缺陷,從而據(jù)等級制訂專業(yè)性的長短期缺陷應對策略。
第三,追根溯源,對缺陷的源頭進行梳理。在通信軟件缺陷的處理過程中,要將缺陷原因分析放到首要地位。分析缺陷為什么會發(fā)生、在何種情況下發(fā)生、缺陷發(fā)生的因果關系、編程的內部邏輯是否有誤等根源性問題,并針對根源性問題提出相應的改進措施。在溯源處理的過程中,要注重溯源的過程而非溯源的結果,專注于一次性徹底解決通信軟件存在的缺陷問題。
最后,要進行缺陷預防的檔案整理,將已有的缺陷庫規(guī)范化,避免缺陷日后的反復發(fā)生。根據(jù)缺陷處理的實際過程將缺陷系統(tǒng)化分類,為日后缺陷的鑒定及預防提供完備的材料基礎。
(2)通信軟件缺陷預防體系注意點
首先,要明確開發(fā)人員的職責與義務,做到團隊內分工明確。并且做到團隊內的信息溝通及時化透明化,實現(xiàn)缺陷修復進度的團隊同步共享,避免信息傳遞阻塞的不良現(xiàn)象發(fā)生。
其次,要將通信軟件缺陷處置流程系統(tǒng)化規(guī)范化,通過溯源處理規(guī)避日后的缺陷復發(fā),并按照嚴格的流程進行缺陷數(shù)據(jù)收集及信息處理分析。
第三,要將通信軟件缺陷的信息流和故障流做可視化性處理,對缺陷修復過程中遇到的困惑進行歸類和預防,同時建立完善的責任人制度,保障缺陷預防體系權責分明。
第四,要建立完備的缺陷預防庫。在缺陷預防庫中列明常見缺陷的清單,寫明修復方法與后續(xù)跟進反饋記錄,根據(jù)反饋記錄進行措施調整。這樣可以高效預防下次同類缺陷的發(fā)生。
最后,要充分深入檢查缺陷的根源,發(fā)掘本源并進行問題跟蹤,對缺陷修復活動要進行定期復盤,不斷吸取經(jīng)驗教訓,大幅提升缺陷處理的效率。下圖為典型的通信軟件缺陷預防體系。
圖1 通信軟件項目缺陷預防體系圖示
3.2.1 傳統(tǒng)通信軟件缺陷預測方法測評
通信軟件缺陷預測是提升通信軟件質量的基礎,只有在通信軟件設計的實際過程中對缺陷進行準確預測,才能及時對日后可能產(chǎn)生的缺陷進行針對性的預防。按照缺陷預測的不同技術,可將缺陷預測方法分為三大類,分別是類比預測法、Delphi估算預測法、數(shù)學模型預測法?,F(xiàn)階段的研究可以證實前兩種預測方法具有無法克服的局限性,因此目前在通信軟件缺陷預測領域,研究者們大多采用數(shù)學模型預測法。常用的數(shù)學模型預測方法有以下幾種:線性判別分析預測法(LDA);布爾判別函數(shù)預測法(BDF);貝葉斯網(wǎng)絡預測法(BN);分類回歸樹預測法(CART);優(yōu)化集精簡預測法(OSR);聚類分析預測法(CA);支持向量機預測法(SVM);人工神經(jīng)網(wǎng)絡預測法(ANN)以及平均單一相關評估器預測法(AODE)等方法。不同的缺陷預測方法有著不同的優(yōu)缺點,可以根據(jù)實際缺陷解決不同的問題,但也存在著各自應用的局限性。有研究者曾將上述提及的數(shù)學模型預測法進行了詳細比較,具體比較結果見下表1和表2。
表1 數(shù)學模型缺陷預測方法比較
表2 不同缺陷預測模型的預測結果比較
結合上述表一和表二的預測結果數(shù)據(jù)分析,可以看出與其他預測模型相比較,多元化相關評估器預測法的預測平均準確率最高。但是75.8%的預測準確率仍舊有大幅的提升空間,為了進一步提升該模型預測的準確度,可以在多元化相關評估器預測法的基礎上進行改進優(yōu)化。
3.2.2 基于多元化相關評估器預測法的缺陷預測改進體系設計
首先,可以在原有預測模型上增加度量元素的個數(shù),保證增加的度量元素具備易操作、易估計、與通信軟件缺陷相關度高的特征。同時要細化度量準則,以提升通信軟件缺陷預測的準確性。在此操作過程中要注意,不要單純增加度量元素的數(shù)量,僅以增加數(shù)量為目標反而會使預測結果與設計初衷背道而馳。對于可以影響通信軟件質量的重要度量元素,應該適度提升其在預測模型中的權重值。
其次,可以調整I類/II類錯誤率的比例。I類錯誤是指預測模型將低風險缺陷錯誤預測為高風險缺陷,II類錯誤是指預測模型將高風險缺陷錯誤預測為低風險缺陷。這兩種不同的錯誤會造成不同的軟件修復成本,可以通過調整度量元素的數(shù)量和權重比例、細化度量標準,盡可能地將風險模型優(yōu)化。為保證通信軟件的使用質量,可以選擇犧牲I類錯誤比率保證II類錯誤比率的準確度,提升通信軟件用戶的使用體驗[3]。
本文從現(xiàn)階段通信軟件缺陷預防存在的問題入手,分析通信軟件缺陷預防的必要性。根據(jù)缺陷防控過程具體存在的問題,提出完善的通信軟件缺陷預防理論體系。在理論架構的支撐下,對傳統(tǒng)通信軟件缺陷預測的不同方法進行分類測評,以篩選出最優(yōu)的缺陷預測模型。在最優(yōu)缺陷預測模型的基礎上,提出兩點模型優(yōu)化改進的實際建議,為通信軟件缺陷預防管理提供借鑒。隨著缺陷預防流程的標準化以及缺陷預防模型的進一步優(yōu)化,通信軟件缺陷預測模型一定會更加豐富和完善,預防效果也會越來越好。