陳 蘇
(福建省計量科學研究院,福建 福州 350001)
隨著嵌入式系統越來越廣泛地應用于社會各個領域,人們在生產、生活中都不可避免地接觸到各式各樣的嵌入式軟件,而嵌入式軟件的質量很大程度上影響到嵌入式系統的可靠運行. 因此對嵌入式軟件進行合理有效的測試,并給出量化的定義和評價,對保證其質量至關重要.
目前,國內從事軟件質量評測工作的第3方機構對嵌入式軟件的測試基本套用普通軟件質量評價體系. 由于嵌入式軟件和普通軟件有一定的區別,它不僅要求其準確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要求盡可能地進行優化,以減少對系統資源與硬件的消耗. 顯然直接套用普通軟件質量評價體系是不太合適的,需要根據嵌入式軟件的質量模型[1]設計其外部質量評價方法并量化評價結果.
嵌入式軟件產品質量與普通軟件產品質量相同,也分為內部質量、外部質量與使用質量. 內部質量度量是從設計和開發的角度出發[2],更多關注的是軟件源代碼、數據結構設計、文檔過程管理等方面,在度量過程中不受其他軟件及硬件的影響; 外部質量是指軟件在模擬環境或真實環境下執行過程中所被測量和評價的質量; 使用質量是指用戶在真實系統環境下使用軟件所達到其需求目標的程度,并不是指軟件本身的屬性. 對于第3方軟件檢測機構來說,更多的是關注嵌入式軟件外部質量,本文也僅對嵌入式軟件外部質量的度量進行討論.
進行嵌入式軟件質量度量要遵循軟件產品評價過程[3],包括:確定評價需求、規定評價、設計評價與執行評價4個階段. 具體來說就是:① 確定質量度量評價模型,根據需求選擇需要測試的質量特性[4]; ② 確定度量指標的權重與選擇需要測試的測量元; ③ 制定評價計劃,即測試計劃[5]; ④ 根據測試計劃進行度量并給出量化的評價結果.
嵌入式軟件外部質量通過建立質量模型來度量[6,7]. 本文根據GB/T 30961-2014中對嵌入式軟件外部質量度量特性的描述,將其外部質量特性分為功能性、可靠性、易用性、效率、可維護性和可移植性共6個特性作為一級評價指標. 每一個特性又可分為若干個子特性,總計26個子特性,以此作為二級評價指標. 指標細分情況如圖 1 所示.

圖 1 嵌入式軟件外部質量特性細分圖Fig.1 External quality characteristic subdivision diagram of embedded software
圖 1 中每個子特性應至少包含一個測量元,GB/T 30961-2014中對外部質量模型定義的測量元總計100個. 本文限于篇幅,不對每個測量元做詳細描述. 對于某個嵌入式軟件質量度量而言,并不是標準內定義的所有特性與測量元都必須涉及到,而是可以根據該軟件的特點、領域、規模等因素選取具有較大測試意義的特性與測量元,忽略掉一些意義不大的特性與測量元,如果有特殊的測試需求,則可以根據需求自定義一些測量元,定義測量元時需與標準規范格式一致[8].
要量化度量結果,首先要確定一個標度V,我們把嵌入式軟件最終評價結果設定在0~1區間內,越趨近于1則表明軟件質量越好. 根據以往評測經驗,建議質量評價等級劃分為
0.9≤V≤1為優秀;
0.8≤V<0.9為良好;
0.6≤V<0.8為合格;
0.6以下為不合格.
等級劃分也可根據實際測試需求進行調整. 一級評價指標所占軟件整體質量的權重,可以根據專家評價法確定:即組織行業內專家、資深技術員組成評審小組,通過對軟件規模、特點、測試需求等各個評價對象進行分析和評定,確定各個指標的權重,如表 1 所示.
表中:∑Ai=1.

表 1 一級評價指標權重表
二級評價指標的權重根據其所設計的測量元數量來確定. 以功能性指標為例,如果其5個二級指標總共設計了N個測量元,那么每個二級指標的權重如表 2 所示.

其他特性依此類推不再闡述.

表 2 二級評價指標權重表
一、二級評價指標權重確定好之后,就可以對每個子特性設計測量元. 為方便計算評分,需對每個測量元做“歸一化”處理,即將所有測量元的得分取值范圍映射到0~1這一區間上,越趨近于1代表該測量元評價結果越好.
對每個測量元設計一定數量的測試用例進行測試,通過計算測試用例執行通過率,來確定單個測量元得分Ti,即
(1)
通過計算單個二級評價指標下所有測量元得分率來確定單個二級評價指標得分
(2)
根據二級指標的權重,計算單個一級評價指標得分
Ui=∑(Wi×Bi) ; (3)
根據一級評價指標權重確定軟件最終評價得分
SCORE=∑(Ui×Ai) .(4)
以本單位所測某公司電腦橫機智能控制系統為例,說明評價方法在實際測試中的運用. 在該測試實例中,專家評審組根據系統測試需求以及系統規格說明書等資料,選取并確定一級評價指標權重; 之后根據選取測量元,確定二級指標權重. 如表 3 所示.
根據系統測試需求,對每個測量元設計適當數量的測試用例,經過標準規范的測試,計算每個測量元的得分,根據2.3節步驟按式(1)~式(4) 逐級計算,得出所有一級指標得分:
功能性U1=(0.957×0.5)+
(0.915×0.33)+(1×0.17)=0.95;
可靠性U2=(0.9×0.34)+
(0.95×0.33)+(1×0.33)=0.95;
易用性U3=(1×0.125)+(0.95×0.25)+
(0.963×0.5)+(1×0.125)=0.969;
效率U4=(0.933×0.5)+
(0.917×0.5)=0.925;
可移植性U5=(1×1)=1.
系統各級指標得分如表 4 所示.

表 3 測試系統評價指標權重表
該軟件最終得分為
SCORE=∑(Ui×Ai) =(0.95×0.3)+
(0.95×0.3)+(0.969×0.1)+
(0.925×0.25)+(1×0.05)=0.948.
根據評價標準,則該軟件外部質量評價結果為優秀.

表 4 測試系統評價得分表
本文建立了規范合理的嵌入式軟件外部質量度量模型,并運用到實際項目檢測中,把外部質量度量結果量化地展示出來,使得測試人員與用戶對該軟件的質量有更直觀的理解. 該方法簡單可行,可供第3方軟件評測機構借鑒參考[9,10],不足之處需要在未來的檢測工作中不斷提高與改進.