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