【導讀】本文從軟件質(zhì)量的有關(guān)概念出發(fā),根據(jù)指標選取原則,在分析軟件質(zhì)量特征的基礎(chǔ)上提出了相應的軟件質(zhì)量評估指標的選取原則,并進而建立了軟件質(zhì)量評估體系。
1 軟件質(zhì)量的有關(guān)概念
軟件質(zhì)量是“軟件產(chǎn)品具有滿足規(guī)定的或隱含要求能力要求有關(guān)的特征與特征總和”。根據(jù)軟件質(zhì)量國家標準GB-T8566--2001G,軟件質(zhì)量評估通常從對軟件質(zhì)量框架的分析開始。
1.1 軟件質(zhì)量框架模型
如圖1所示,軟件質(zhì)量框架是一個“質(zhì)量特征—質(zhì)量子特征—度量因子”的三層結(jié)構(gòu)模型。
在這個框架模型中,上層是面向管理的質(zhì)量特征,每一個質(zhì)量特征是用以描述和評價軟件質(zhì)量的一組屬性,代表軟件質(zhì)量的一個方面。軟件質(zhì)量不僅從該軟件外部表現(xiàn)出來的特征來確定,而且必須從其內(nèi)部所具有的特征來確定。
第二層的質(zhì)量子特征是上層質(zhì)量特征的細化,一個特定的子特征可以對應若干個質(zhì)量特征。軟件質(zhì)量子特征是管理人員和技術(shù)人員關(guān)于軟件質(zhì)量問題的通訊渠道。
最下面一層是軟件質(zhì)量度量因子(包括各種參數(shù)),用來度量質(zhì)量特征。定量化的度量因子可以直接測量或統(tǒng)計得到,為最終得到軟件質(zhì)量子特征值和特征值提供依據(jù)。
圖1 軟件質(zhì)量框架模型
1.2 軟件質(zhì)量特征
按照軟件質(zhì)量國家標準GB-T8566--2001G,軟件質(zhì)量可以用下列特征來評價:
a.功能特征:與一組功能及其指定性質(zhì)有關(guān)的一組屬性,這里的功能是滿足明確或隱含的需求的那些功能。
b.可靠特征:在規(guī)定的一段時間和條件下,與軟件維持其性能水平的能力有關(guān)的一組屬性。
c.易用特征:由一組規(guī)定或潛在的用戶為使用軟件所需作的努力和所作的評價有關(guān)的一組屬性。
d.效率特征:與在規(guī)定條件下軟件的性能水平與所使用資源量之間關(guān)系有關(guān)的一組屬性。
e.可維護特征:與進行指定的修改所需的努力有關(guān)的一組屬性。
f.可移植特征:與軟件從一個環(huán)境轉(zhuǎn)移到另一個環(huán)境的能力有關(guān)的一組屬性。
其中每一個質(zhì)量特征都分別與若干子特征相對應。
2 評估指標的選取原則
選擇合適的指標體系并使其量化是軟件測試與評估的關(guān)鍵。評估指標可以分為定性指標和定量指標兩種。理論上講,為了能夠科學客觀地反映軟件的質(zhì)量特征,應該盡量選擇定量指標。但是對于大多數(shù)軟件來說,并不是所有的質(zhì)量特征都可以用定量指標進行描述,所以不可避免地要采用一定的定性指標。
在選取評估指標時,應該把握如下原則:
a.針對性
即不同于一般軟件系統(tǒng),能夠反映評估軟件的本質(zhì)特征,具體表現(xiàn)就是功能性與高可靠性。
b.可測性
即能夠定量表示,可以通過數(shù)學計算、平臺測試、經(jīng)驗統(tǒng)計等方法得到具體數(shù)據(jù)。
c.簡明性
即易于被各方理解和接受。
d.完備性
即選擇的指標應覆蓋分析目標所涉及的范圍。
e.客觀性
即客觀反映軟件本質(zhì)特征,不能因人而異。
應該注意的是,選擇的評估指標不是越多越好,關(guān)鍵在于指標在評估中所起的作用的大小。如果評估時指標太多,不僅增加結(jié)果的復雜性,有時甚至會影響評估的客觀性。指標的確定一般是采用自頂向下的方法,逐層分解,并且需要在動態(tài)過程中反復綜合平衡。
3 軟件質(zhì)量評估指標體系
通常,我們在軟件的測試與評估時,主要側(cè)重于功能特征、可靠特征、易用特征和效率特征等幾個方面。在評價活動的具體實施中,應該把被評估軟件的研制任務書作為主要依據(jù),采用自頂向下逐層分解的方法,并參照有關(guān)國家軟件質(zhì)量標準。
3.1 功能性指標
功能性是軟件最重要的質(zhì)量特征之一,可以細化成完備性和正確性。目前對軟件的功能性評價主要采用定性評價方法。
a.完備性
完備性是與軟件功能完整、齊全有關(guān)的軟件屬性。如果軟件實際完成的功能少于或不符合研制任務書所規(guī)定的明確或隱含的那些功能,則不能說該軟件的功能是完備的。
b.正確性
正確性是與能否得到正確或相符的結(jié)果或效果有關(guān)的軟件屬性。軟件的正確性在很大程度上與軟件模塊的工程模型(直接影響輔助計算的精度與輔助決策方案的優(yōu)劣)和軟件編制人員的編程水平有關(guān)。
對這兩個子特征的評價依據(jù)主要是軟件功能性測試的結(jié)果,評價標準則是軟件實際運行中所表現(xiàn)的功能與規(guī)定功能的符合程度。在軟件的研制任務書中,明確規(guī)定了該軟件應該完成的功能,如信息管理、提供輔助決策方案、輔助辦公和資源更新等。那么即將進行驗收測試的軟件就應該具備這些明確或隱含的功能。[NextPage]
目前,對于軟件的功能性測試主要針對每種功能設計若干典型測試用例,軟件測試過程中運行測試用例,然后將得到的結(jié)果與已知標準答案進行比較。所以,測試用例集的全面性、典型性和權(quán)威性是功能性評價的關(guān)鍵。
3.2 可靠性指標
根據(jù)相關(guān)的軟件測試與評估要求,可靠性可以細化為成熟性、穩(wěn)定性、易恢復性等。對于軟件的可靠性評價主要采用定量評價方法。即選擇合適的可靠性度量因子(可靠性參數(shù)),然后分析可靠性數(shù)據(jù)而得到參數(shù)具體值,最后進行評價。
經(jīng)過對軟件可靠性細化分解并參照研制任務書,可以得到軟件的可靠性度量因子(可靠性參數(shù))。
a.可用度
可用度指軟件運行后在任一隨機時刻需要執(zhí)行規(guī)定任務或完成規(guī)定功能時,軟件處于可使用狀態(tài)的概率。可用度是對應用軟件可靠性的綜合(即綜合各種運行環(huán)境以及完成各種任務和功能)度量。
b.初期故障率
初期故障率指軟件在初期故障期(一般以軟件交付給用戶后的三個月內(nèi)為初期故障期)內(nèi)單位時間的故障數(shù)。一般以每100小時的故障數(shù)為單位。可以用它來評價交付使用的軟件質(zhì)量與預測什么時候軟件可靠性基本穩(wěn)定。初期故障率的大小取決于軟件設計水平、檢查項目數(shù)、軟件規(guī)模、軟件調(diào)試徹底與否等因素。
c.偶然故障率
指軟件在偶然故障期(一般以軟件交付給用戶后的四個月以后為偶然故障期)內(nèi)單位時間的故障數(shù)。一般以每1000小時的故障數(shù)為單位,它反映了軟件處于穩(wěn)定狀態(tài)下的質(zhì)量。
d.平均失效前時間(MTTF)
指軟件在失效前正常工作的平均統(tǒng)計時間。
e.平均失效間隔時間(MTBF)
指軟件在相繼兩次失效之間正常工作的平均統(tǒng)計時間。在實際使用時,MTBF通常是指當n很大時,系統(tǒng)第n次失效與第n+1次失效之間的平均統(tǒng)計時間。對于失效率為常數(shù)和系統(tǒng)恢復正常時間很短的情況下,MTBF與MTTF幾乎是相等的。
國外一般民用軟件的MTBF大體在1000小時左右。對于可靠性要求高的軟件,則要求在1000~10000小時之間。
f.缺陷密度(FD)
指軟件單位源代碼中隱藏的缺陷數(shù)量。通常以每千行無注解源代碼為一個單位。一般情況下,可以根據(jù)同類軟件系統(tǒng)的早期版本估計FD的具體值。如果沒有早期版本信息,也可以按照通常的統(tǒng)計結(jié)果來估計。“典型的統(tǒng)計表明,在開發(fā)階段,平均每千行源代碼有50~60個缺陷,交付后平均每千行源代碼有15~18個缺陷”。
g.平均失效恢復時間(MTTR)
指軟件失效后恢復正常工作所需的平均統(tǒng)計時間。對于軟件,其失效恢復時間為排除故障或系統(tǒng)重新啟動所用的時間,而不是對軟件本身進行修改的時間(因軟件已經(jīng)固化在機器內(nèi),修改軟件勢必涉及重新固化問題,而這個過程的時間是無法確定的)。
3.3 易用性指標
易用性可以細化為易理解性、易學習性和易操作性等。這三個特征主要是針對用戶而言的。對軟件的易用性評價主要采用定性評價方法。
a.易理解性
易理解性是與用戶認識軟件的邏輯概念及其應用范圍所花的努力有關(guān)的軟件屬性。該特征要求軟件研制過程中形成的所有文檔語言簡練、前后一致、易于理解以及語句無歧義。
b.易學習性
易學習性是與用戶為學習軟件應用(例如運行控制、輸入、輸出)所花的努力有關(guān)的軟件屬性。該特征要求研制方提供的用戶文檔(主要是《計算機系統(tǒng)操作員手冊》、《軟件用戶手冊》和《軟件程序員手冊》)內(nèi)容詳細、結(jié)構(gòu)清晰以及語言準確。
c.易操作性
易操作性是與用戶為操作和運行控制所花的努力有關(guān)的軟件屬性。該特征要求軟件的人機界面友好、界面設計科學合理以及操作簡單等。
3.4 效率特征指標
效率特征可以細化成時間特征和資源特征。對軟件的效率特征評價采用定量方法。效率特征分解如圖2所示。

圖2 效率特性分解圖
a.輸出結(jié)果更新周期
輸出結(jié)果更新周期是軟件相鄰兩次輸出結(jié)果的間隔時間。為了整個系統(tǒng)能夠協(xié)調(diào)工作,軟件的輸出結(jié)果更新周期應該與系統(tǒng)的信息更新周期相同。
b.處理時間
處理時間是軟件完成某項功能(輔助計算或輔助決策)所用的處理時間(注意:不應包含人機交互的時間)。
c.吞吐率
吞吐率是單位時間軟件的信息處理能力(即各種目標的處理批數(shù))。未來的社會情況復雜、信息眾多,軟件必須具有處理海量數(shù)據(jù)的能力。吞吐率就是體現(xiàn)該能力的參數(shù)。隨著信息的泛濫,要求軟件的吞吐率應該達到數(shù)百批。
d.代碼規(guī)模
代碼規(guī)模是軟件源程序的行數(shù)(不包括注釋),屬于軟件的靜態(tài)屬性。軟件的代碼規(guī)模過大不僅要占用過多的硬盤存儲空間,而且顯得程序不簡潔、結(jié)構(gòu)不清晰,容易存在缺陷。
因為這些參數(shù)屬于軟件的內(nèi)部表現(xiàn),所以需要用專門的測試工具和特殊的途徑才可以獲得。將測試數(shù)據(jù)與研制任務書中的指標進行比較,得到的結(jié)果可以作為效率特征評價的依據(jù)。
4 結(jié)束語
隨著計算機技術(shù)、數(shù)據(jù)融合技術(shù)、網(wǎng)絡技術(shù)和通信技術(shù)的飛速發(fā)展,對軟件功能提出的要求也越來越高,如何評估軟件質(zhì)量已成為一個迫切需要解決的課題。選擇合適的指標體系并使其量化是做好軟件質(zhì)量評估的關(guān)鍵。當然,由于軟件的評估具有其特有的規(guī)范和要求,其評估指標涉及面廣、不確定性因素較多、量化困難,至今還沒有統(tǒng)一的標準。
我們相信,通過建立科學合理的軟件質(zhì)量評估指標體系,充分考慮到軟件的特殊性,借鑒其他學科的質(zhì)量評估理論,是可以全面真實客觀地評估軟件質(zhì)量的。










