蔣 劍,蔣志剛,歐陽超,蔣 鵬,陳 柯
(湖南中車時代通信信號有限公司,湖南 長沙 410005)
當今嵌入式系統(tǒng)在越來越廣泛的領(lǐng)域得到應(yīng)用,其高質(zhì)量的運行對業(yè)務(wù)的完成甚至人類的安全往往是至關(guān)重要的。嵌入式系統(tǒng)的可靠性很大程度上要依賴于軟件的可靠性,因此開發(fā)高質(zhì)量的嵌入式軟件對嵌入式系統(tǒng)的推廣和應(yīng)用具有重大的意義。軟件質(zhì)量是軟件符合明確敘述的功能和性能等需求及文檔中明確描述的開發(fā)標準的程度[1]。對軟件質(zhì)量進行評估是軟件測試的一個重要的目的[2]。目前軟件質(zhì)量相關(guān)標準只是在理論上提供了指導(dǎo)規(guī)范,在實踐中缺乏可行性方法;而現(xiàn)有軟件質(zhì)量的評價方法也存在對評價指標因素的權(quán)重賦值具有主觀性、運用模糊綜合評價方法建模復(fù)雜等不足。軟件測試人員完成測試項目后,由于沒有軟件質(zhì)量量化評價的統(tǒng)一標準,因此無法對軟件質(zhì)量給予一個科學(xué)客觀的評價。對于軟件測試人員而言,需要一種簡單易行、科學(xué)客觀、基于測試數(shù)據(jù)的軟件質(zhì)量度量方法。為此,本文基于層次分析法,提出一種比較客觀可行的嵌入式軟件外部質(zhì)量評價方法。
建立嵌入式軟件產(chǎn)品質(zhì)量模型的依據(jù)一方面來自嵌入式軟件本身固有的特點,另一方面來自應(yīng)用對嵌入式軟件的需求。標準GB/T 30961—2014《嵌入式軟件質(zhì)量度量》規(guī)定了嵌入式軟件的內(nèi)部質(zhì)量模型、外部質(zhì)量模型和使用質(zhì)量模型。
內(nèi)部質(zhì)量是從軟件內(nèi)部角度觀察到的軟件屬性的總和。嵌入式軟件的內(nèi)部質(zhì)量不受其他軟件及硬件的影響,是反映在軟件本身的模塊及架構(gòu)滿足軟件明確和隱含需求的能力,因此白盒測試及靜態(tài)分析的數(shù)據(jù)可以用于內(nèi)部質(zhì)量的評價[3]。
外部質(zhì)量是從軟件外部角度觀察到的軟件屬性的總和。嵌入式軟件的外部質(zhì)量會受到其他軟件及硬件的影響,評價嵌入式軟件的外部質(zhì)量需要把被評價軟件與其他共存的軟件及硬件作為一個整體來考慮,因此黑盒測試的統(tǒng)計分析數(shù)據(jù)可以用于外部質(zhì)量的評價[3]。
使用質(zhì)量是從用戶角度觀察到的軟件屬性的總和,它反映了軟件在真實的系統(tǒng)環(huán)境下滿足用戶質(zhì)量要求的能力,因此用戶質(zhì)量數(shù)據(jù)可以用來評價使用質(zhì)量[3]。
本文針對外部質(zhì)量模型,規(guī)定其應(yīng)具備6種特性,即功能性、可靠性、易用性、效率、維護性和可移植性;這6種特性又可進一步細分為26種子特性(圖1)。
圖 1 嵌入式軟件外部質(zhì)量特性分層圖Fig.1 Layered diagram of embedded software external quality characteristics
嵌入式軟件的外部質(zhì)量是該軟件在執(zhí)行時通過測量外部屬性表現(xiàn)出來的質(zhì)量[3]。因此,通過測試數(shù)據(jù)來評價軟件質(zhì)量的方法是科學(xué)、合理且客觀可行的。由于嵌入式軟件的外部質(zhì)量會受到其他軟件或硬件的影響,因此評價嵌入式軟件外部質(zhì)量時,必須把被評價的軟件和與其共存的軟件及硬件作為一個整體來考慮。
軟件測試時,可根據(jù)標準GB/T 30961—2014的外部質(zhì)量評價的測量元從外部質(zhì)量評價的角度來設(shè)計嵌入式軟件確認測試的測試用例。一般而言,嵌入式系統(tǒng)對軟件的功能性、可靠性、效率和可維護性要求較高,測試時需要重點關(guān)注。不同類型的嵌入式系統(tǒng)對易用性和可移植性的需求可能不同。用戶交互較多的淺度嵌入式系統(tǒng)(如顯示器、鍵盤及鼠標)較之于用戶交互較少的深度嵌入式系統(tǒng),在易用性和可維護性方面要求更高。
在完成嵌入式軟件的測試后,對該軟件的外部質(zhì)量評價過程大致可分為4步,即明確評價要求、設(shè)計評價方式、執(zhí)行計算模型和求取評價結(jié)果[4]。下面將具體介紹如何使用該方法評價軟件外部質(zhì)量。
軟件外部質(zhì)量特性評分過程包括軟件缺陷量化、缺陷計分、軟件外部質(zhì)量特性度量。
2.1.1 軟件缺陷量化
軟件缺陷是軟件質(zhì)量評價的直觀依據(jù)。根據(jù)嚴重性程度,一般將嵌入式軟件的缺陷分為4個等級,即致命、嚴重、一般和輕微。
致命是指不能正常工作或重要功能喪失或危及人身安全。
嚴重是指嚴重影響基本功能的實現(xiàn)且沒有辦法更正,如系統(tǒng)功能受到影響,或次要功能喪失。
一般是指影響系統(tǒng)要求或基本功能實現(xiàn),但存在合理的更正辦法,不影響用戶使用,如提示信息不太準確或用戶界面差或操作時間較長。
輕微是指使操作者不便或遇到麻煩,但不影響系統(tǒng)正常工作及功能執(zhí)行。
2.1.2 缺陷計分
進行軟件測試時,通常根據(jù)軟件質(zhì)量模型進行測試用例的設(shè)計。如此執(zhí)行測試后,會形成一個缺陷矩陣。其中,i為軟件質(zhì)量特性數(shù),a1i表示第i項質(zhì)量特性缺陷等級為嚴重的缺陷數(shù),a2i表示第i項質(zhì)量特性缺陷等級為一般的缺陷數(shù),a3i表示第i項質(zhì)量特性缺陷等級為輕微的缺陷數(shù)。
在缺陷等級賦分矩陣k和缺陷矩陣a構(gòu)造完成后,可以計算得出缺陷計分矩陣A=k×a。
2.1.3 軟件外部質(zhì)量特性度量
對軟件各質(zhì)量特性,參考文獻[5]中的度量方法,采用式(1)進行度量:
式中:Xi——第i個軟件外部質(zhì)量特性的度量值;Ai——缺陷計分矩陣A第i個元素;Bi——第i個軟件外部質(zhì)量特性對應(yīng)設(shè)計的用例數(shù)。
可以看出,0≤Xi≤1.0,Xi越接近1.0越好。
歐陽鋒雙腿發(fā)軟,就差沒跪在地上:“對不起,大哥,大姐,都怪我,我喝醉了酒,做了不該做的事,可我真的不是故意的,請原諒!”
計算出軟件外部質(zhì)量特性度量評分值后,使用矩陣X=[X1X2…Xi]來存儲評分值。
軟件質(zhì)量整體評價是采用層次分析法(analytic hierarchy process,APH)對各軟件質(zhì)量特性進行兩兩比較賦予權(quán)重。APH由美國運籌學(xué)家Satty于20世紀70年代提出,是一種定性與定量相結(jié)合的網(wǎng)絡(luò)系統(tǒng)權(quán)重決策方法[6]。
軟件質(zhì)量整體評價過程包括構(gòu)造判斷矩陣、確定權(quán)重、檢驗判斷矩陣的一致性和軟件質(zhì)量綜合評價。
2.2.1 構(gòu)造判斷矩陣
判斷矩陣是相對比較法的改進,它將所有指標列出來,對各指標兩兩比較打分后組成一個方陣。根據(jù)人們?nèi)粘κ挛锏谋容^心理,可以定義各指標兩兩比較的判斷準則,具體如表1所示。依據(jù)表1,對質(zhì)量特性進行層次級量化,構(gòu)造判斷矩陣C。
表 1 評判準則表Tab.1 Criteria table
2.2.2 確定權(quán)重
軟件外部質(zhì)量特性的權(quán)重是指軟件外部質(zhì)量特性占整個軟件外部質(zhì)量的比重,其反映了各質(zhì)量特性對軟件產(chǎn)品質(zhì)量的影響程度[7],可采用求根法計算判斷矩陣的權(quán)重。
首先,判斷矩陣C按行求得幾何平均數(shù),得到判斷矩陣特征向量M=[m1m2…mn],其中n為判斷矩陣C的列數(shù);然后對M進行歸一化處理,就可得到判斷矩陣的權(quán)重向量W=[w1w2…wn]T。
2.2.3 檢驗判斷矩陣的一致性
由于判斷矩陣自身存在主觀性,可能與現(xiàn)實有誤差,所以需要對判斷矩陣進行一致性檢驗。當判斷存在不一致時,就必須對判斷矩陣進行修正。
表 2 平均隨機一致性指標數(shù)值表Tab.2 Average random consistency index table
當CR<0.1時,認為判斷矩陣具有可以接受的一致性;當CR≥0.1時,就需要調(diào)整判斷矩陣,使其滿足CR<0.1,從而具有滿意的一致性。
判斷矩陣的權(quán)重及其一致性檢驗的具體算法參見參考文獻[8]。
2.2.4 軟件質(zhì)量綜合評價
在算出軟件外部質(zhì)量特性評分值矩陣和外部質(zhì)量特性判斷矩陣的權(quán)重向量后,就可以計算出軟件外部質(zhì)量綜合得分S=(XW)×100。本文采用標準GB/T 32904—2016《軟件質(zhì)量量化評價規(guī)范》和參考文獻[9]的質(zhì)量評價等級標準進行質(zhì)量的綜合評價劃分,其中90≤S≤100為優(yōu)秀,80≤S< 90為良好,60≤S< 80為合格,60分以下為不合格。
本文以LKJ-15型車載控制軟件測試項目某輪次測試的情況為例,說明軟件外部質(zhì)量方法。該軟件是深度嵌入式軟件,對易用性和可移植性要求較低,但對功能性、可靠性、效率和可維護性有較高的要求,所以測試時根據(jù)需求及系統(tǒng)的特點有針對性地設(shè)計了測試用例。
針對功能性的測試,主要關(guān)注點在于:
(1)功能是否成功且穩(wěn)定實現(xiàn);
(2)與需求對應(yīng)是否有功能遺漏;
(3)計算結(jié)果是否在預(yù)期結(jié)果的可接受范圍內(nèi)以及計算精度是否滿足要求;
(4)功能是否遵從已發(fā)表的相關(guān)行業(yè)標準等文件的規(guī)定。
針對可靠性的測試,主要關(guān)注故障的檢出情況、設(shè)備長時運行測試、容錯性測試及失效發(fā)生后的復(fù)原性測試。
針對易用性的測試,主要關(guān)注用戶使用幫助文檔是否正確、是否易理解。
針對效率的測試,主要關(guān)注系統(tǒng)啟動時間、系統(tǒng)周期響應(yīng)時間、數(shù)據(jù)吞吐量。
針對可維護性的測試,主要關(guān)注測試軟件記錄信息是否正確且完全、測試設(shè)備自檢及診斷信息是否正確、測試設(shè)備監(jiān)控信息是否正確、測試軟件更換是否方便。
針對可移植性的測試,主要關(guān)注軟件在兩種不同外圍硬件配置下的運行情況。
進行質(zhì)量特性評分時,首先需構(gòu)造缺陷矩陣。經(jīng)統(tǒng)計,該設(shè)計測試用例總數(shù)954個,其中功能性851,可靠性17,易用性1、效率10、可維護性74、可移植性1。發(fā)現(xiàn)缺陷總數(shù)152個,其中功能性126,可靠性17,易用性0、效率9、維護性0、可移植性0,缺陷按嚴重性等級分布如表3所示。
表 3 缺陷分布表Tab.3 Defect-distribution table
根據(jù)缺陷分布表,首先構(gòu)造缺陷矩陣:
接著,構(gòu)造缺陷等級賦分矩陣。根據(jù)以往測評經(jīng)驗,對該軟件的嚴重、一般和輕微這3個缺陷等級賦分(其中嚴重等級為3.6,一般等級為2.5,輕微等級為1.0),則其缺陷等級賦分矩陣k= [3.6 2.5 1.0]。
然后,計算缺陷計分矩陣,得到A=ka= [ 296.6 6.0 0 3.0 22.0 0]。
最后,根據(jù)式(1)計算軟件外部質(zhì)量特性評分矩陣X,其中B=[851 17 1 10 74 1],得到X=[0.65 0.65 1.0 0.7 0.7 1.0]。即該軟件的功能性和可靠性評分為0.65,易用性評分為1.00,效率和可維護性評分為0.70,可移植性評分為1.00。
對嵌入式軟件質(zhì)量進行綜合評價時,首先計算判斷矩陣權(quán)重。根據(jù)嵌入式軟件固有特性及LKJ-15型車載控制軟件需求,對外部質(zhì)量特性的重要程度進行比較:功能性≥可靠性>效率>可維護性>易用性>可移植性,根據(jù)表1評判準則,對各質(zhì)量特性進行層次級量化。如功能性與可靠性相較,認為重要性差不多,相對功能性更重要,比較后評分為2,而可靠性相較于功能性則評分為1/2;功能性與易用性相較,認為功能性相當重要,比較后評分為7,而易用性相較于功能性則評分為1/7。由此構(gòu)造如表4所示的判斷矩陣。計算判斷矩陣的權(quán)重向量,得到
W=[0.382 0.303 0.043 0.164 0.083 0.024]T。
表 4 判斷矩陣表Tab.4 Judgment matrix
接著,檢驗判斷矩陣的一致性。根據(jù)計算,得到判斷矩陣最大特征值,一致性指標。由此查表,得到RI=1.26,則一致性指標。由于CR<0.1,因此判斷矩陣的一致性是可以接受的。
最后,進行質(zhì)量評價。通過計算,得到質(zhì)量綜合評分S=(XW)×100=68.6。由于60≤S<80,可以判斷此軟件的外部質(zhì)量評價為合格。
質(zhì)量評價方法涉及矩陣運算。即使只分析一級質(zhì)量特性,構(gòu)造的判斷矩陣也都是6階矩陣,計算量較大,需要編程實現(xiàn)該評價方法。下面給出幾種關(guān)鍵算法(偽代碼):
圖2示出本文實例的質(zhì)量評分界面,對應(yīng)的軟件質(zhì)量度量程序可以滿足一級質(zhì)量特性的外部度量計算,輸入為各質(zhì)量特性的用例數(shù)和缺陷數(shù),輸出為計算后的質(zhì)量度量信息。
圖 2 界面截圖Fig.2 Screenshot of interface
本文依據(jù)標準GB/T 30961—2014的嵌入式軟件質(zhì)量模型,提出了一種嵌入式軟件外部質(zhì)量定量評價的方法。該方法科學(xué)客觀地評價了軟件的質(zhì)量,并已通過使用C#編程而實現(xiàn),為測試者提供了一個實用有效的軟件質(zhì)量評價手段。
軟件質(zhì)量的評價依賴于測試集數(shù)據(jù),這要求在測試用例集設(shè)計時應(yīng)考慮更多與質(zhì)量相關(guān)的因素,如缺陷的嚴重性評價是否客觀、用例設(shè)計是否充分合理等,這樣才能使質(zhì)量評分更準確、軟件質(zhì)量評價方法更客觀和公正,這也是下一步工作中需要進行更深入研究的方面。