王 強,田 濤,劉昕昀
(1.工業(yè)和信息化部電子第五研究所 賽寶軟件評測中心,廣東 廣州 510610;2.空軍裝備研究院 裝備總體論證研究所,北京 100094)
目前信息化、自動化、智能化的發(fā)展要求,使得大部分的實現(xiàn)邏輯都是依靠軟件完成,軟件成為了產(chǎn)業(yè)化升級的關(guān)鍵[1]。與此同時,隨之而來的軟件質(zhì)量問題也越來越突出,由于軟件問題導(dǎo)致的重大事故或災(zāi)難不勝枚舉,直接或間接上給社會帶來了不良影響。
軟件測試作為質(zhì)量保證的核心手段,在軟件研發(fā)過程中發(fā)揮著舉足輕重的作用,而該項工作通常被認為是昂貴(最高可占開發(fā)項目總費用的50%)和不可控的過程。盡管測試花費了大量的時間和經(jīng)費,但無法提供關(guān)于軟件測試過程質(zhì)量充分性的證明[2]。許多組織已經(jīng)意識到通過改進軟件測試過程可以在一定程度上解決這些問題,然而,具體如何定義改進和控制的步驟及順序依然是很大的難題。能力成熟度模型通過一系列的指導(dǎo)條目,能有效解決該問題,幫助組織改善其軟件過程,達到組織能力評估和持續(xù)改進的目的[3]。
20世紀90年代,隨著軟件能力成熟度模型CMM的推廣和應(yīng)用,國際軟件工程研究機構(gòu)開始關(guān)注軟件測試過程的評估和改進問題,其中有三類模型已被業(yè)界接受和應(yīng)用。一是愛爾蘭TMMi基金會發(fā)布的測試能力集成度模型,提供測試過程改進的指南和參考框架,其定位是作為CMMi1.2版本的互補模型,并且提供了基于ISO/IEC 15504標準的評估框架[4];二是基于SPICE模型的軟件測試過程能力評估和改進方法,在大力推行SPICE試驗的基礎(chǔ)上,2003年軟件和系統(tǒng)工程分技術(shù)委員會(ISO/IEC JTC1/SC7)將SPICE方法升級為國際標準,陸續(xù)發(fā)布了ISO/IEC 15504系列標準。2015年,標準組發(fā)布了ISO/IEC 33063:Process Assessment Model for Software Testing[5],由于剛發(fā)布,還未引起廣泛關(guān)注;三是荷蘭Sogeti提出的TMAP、TPI和TPI-Next模型(TPI源于TMAP,最早發(fā)布于1998年,并于2009年發(fā)布了升級版本TPI-Next),并提供了對于組織內(nèi)部測試過程成熟度的觀點,基于這種認識該模型有助于定義漸進和可控的測試過程改進的步驟。除此之外,其他一些組織也在開展關(guān)于軟件測試過程評估和改進的研究,如2005年在德國成立的TestSPICE SIG (Special Interest Group)正在開展基于SPICE模型的軟件測試過程評估和改進的研究,目前已推出了3.3版本[6]。另外,一些組織將軟件測試納入軟件開發(fā)過程的一部分,采用美國的CMMi模型、加拿大的Trillum模型、歐洲的Bootstrap方法進行相關(guān)領(lǐng)域的研究。國內(nèi)對于該問題的研究尚處于初步階段,相關(guān)的研究成果較少,并且大多僅局限于基于某一特定方法的軟件測試過程改進模型,如基于比對的測試過程改進模型研究、基于缺陷的軟件測試過程效能評價及改進研究等。
TMMi設(shè)計之初便定位于CMMi的互補模型,被開發(fā)為一個階段型模型,分為初始、已管理、已定義、已測量和優(yōu)化五個成熟度級別。每個級別都有一組過程域,分為四個類別:項目管理類、工程類、過程類和支持類,共16組過程域[7-8]。雖然TMMi可單獨使用,但在大部分情況下,一個確定的TMMi級別需要得到與它對應(yīng)的CMMi級別或者更高的CMMi級別的過程域的支持。嚴格來說,TMMi不只是局限于定義的16組過程域,還同時要滿足CMMi支持的過程域,這種支持關(guān)系并非同等級間的映射,即低級別的CMMi可能由同等級或更高等級的TMMi定義的過程組支持,CMMi對TMMi的支持如圖1所示。
圖1 CMMi對TMMi的支持關(guān)系圖
在改進途徑方面,TMMi提供了一個在測試過程改進中使用的參考模型完整框架。其特點如下所述:
(1)TMMi是基于過程的能力評估模型,模型覆蓋范圍較廣,涉及結(jié)構(gòu)化測試的生命周期、技術(shù)、基礎(chǔ)架構(gòu)和組織等四個基礎(chǔ),同時涉及所有的測試級別(包括靜態(tài)測試)和結(jié)構(gòu)化測試的所有方面。
(2)在級別劃分、過程域定義、術(shù)語使用等方面與CMMi具有高度一致性,部分過程域直接引用CMMi的過程域定義,并且其測試術(shù)語采用國際軟件測試資質(zhì)認證委員會(ISTQB)的標準術(shù)語表。
(3)高級別的能力包含了低級別能力的所有過程域,因此是一個增量提升能力的過程。
(4)與其他國際標準兼容。其過程評估文件TAMAR(TMMi assessment method application requirements)需求來源于ISO 15504《信息技術(shù)-軟件過程評估》。
(5)TMMi主要用于能力評定,SEI推薦IDEAL作為過程改進的過程模型[9]。
SPICE在經(jīng)過了三個階段大量實踐和經(jīng)驗的基礎(chǔ)上,最終形成了國際標準ISO/IEC 15504,可以幫助組織快速提高軟件工程化水平,從而改進軟件開發(fā)過程[10]。模型設(shè)計為能力維和過程維的二維模型。模型一共有29個過程域,這些過程域共劃分為5組,即用戶供應(yīng)者過程(CUS)、工程過程(ENG)、支持過程(SUP)、管理過程(MAN)、組織過程(ORG)。對于每個過程域,根據(jù)對應(yīng)能力的測定分化為6個級別,即不完全級(0級)、已執(zhí)行級(1級)、已管理級(2級)、已定義級(3級)、可預(yù)測級(4級)、持續(xù)優(yōu)化級(5級)[11-12]。其特點是:
(1)對大部分的改進模型有很好的兼容性,同時由于已經(jīng)進行了大量試驗,因此具有較強的實用性。
(2)具有較好的開放性。能夠使用外部過程評估模型(PAM)與過程參考模型(PRM)進行評估和改進,因此更加靈活。
(3)除了可以在軟件過程改進領(lǐng)域應(yīng)用SPICE標準外,同時也可以擴展到其他相關(guān)領(lǐng)域,例如信息技術(shù)與智能制造等。
ISO 15504是針對軟件開發(fā)過程的能力評定和過程改進標準[13],基于SPICE模型的軟件測試過程評估模型框架以及相關(guān)標準之間的關(guān)系如圖2、圖3所示。
圖2 基于SPICE模型軟件測試過程評估框架
圖3 參考標準關(guān)系
PRMs需重點參考關(guān)于軟件測試的新標準ISO/IEC 29119,對于軍用軟件的測試還需參考GJB 2786A的相關(guān)要求,補充或完善工程類過程域,同時應(yīng)參考GJB 2725A和ISO 17025補充或完善其他類別過程域。PAMs同樣需要關(guān)注關(guān)于軟件測試評估的最新標準ISO/IEC 33063,制定與標準相適應(yīng)的評估模型。
TPI-Next模型如圖4所示,由關(guān)鍵域和對應(yīng)的等級構(gòu)成。TPI-Next模型總計有16個關(guān)鍵域[14]。過程成熟度是依據(jù)測試過程中關(guān)鍵域的應(yīng)用情況來判斷的,因為每個測試過程都有它自身的優(yōu)勢和弱勢,因此每一個關(guān)鍵域在使用過程中地位并不是均等的。模型中每個關(guān)鍵域有3或4級,由不同的需求構(gòu)成每個關(guān)鍵域的不同層級,并且在每個關(guān)鍵域的不同級別都定義了里程碑事件。測試成熟度上共分為四個類別一共有13個等級:初始的、受控的(1~5級,做正確的事)、有效的(6~10級,正確的做事)、優(yōu)化的(11~13級,持續(xù)改進)。其特點是:
(1)TPI-Next是綜合因素分析的能力評定模型,其關(guān)鍵域不僅考慮了過程要素,同時也考慮了測試工具、測試技術(shù)等其他要素。
(2)基于工程實踐,具有較強的實用性。
(3)采用矩陣方式計算測試成熟度,并配套成熟度系列工具the Test Maturity Matrix Tool,具有較好的操作性。
(4)TPI-Next的每個級別都包含所有16個關(guān)鍵域,因此關(guān)鍵域與級別是全對應(yīng)關(guān)系。
(5)針對每項關(guān)鍵域,不僅給出了2-4個檢查點,同時也列出達到目標的途徑,并展示了可以從其他IT和SDLC學科分享的最佳實踐。
(6)關(guān)鍵域之間非完全獨立,具有一定的關(guān)聯(lián)性。
圖4 TPI-Next模型框架示意圖
由于TMMi與CMMi高度協(xié)調(diào)且可以免費獲取,TMMi在世界各地的多個領(lǐng)域和行業(yè)得到應(yīng)用。截至2017年,官網(wǎng)顯示的認證情況如下:通過TMMi二級的企業(yè)有5家;通過TMMi三級的企業(yè)有21家;通過TMMi四級的企業(yè)有4家;通過TMMi五級的企業(yè)有11家。值得注意的是,近年來中國大陸企業(yè)也積極地進行TMMi認證,從最早僅有1家上海浦發(fā)銀行通過三級認證到現(xiàn)在已有4家企業(yè)通過TMMi三級認證,1家企業(yè)通過TMMi五級認證。SPICE模型已服務(wù)4 000多家企業(yè),并在汽車、航天、醫(yī)療等相關(guān)領(lǐng)域處于領(lǐng)先地位,軟件測試能力評定和過程改進作為開發(fā)測試能力評定和過程改進的一部分同步開展,并未像TMMi一樣獨立開展,其他模型的應(yīng)用存在同樣的情形,在軟件測試獨立認定方面尚無相關(guān)應(yīng)用數(shù)據(jù)。SPICE模型對于專業(yè)測評機構(gòu)的能力評定和過程改進具有良好的應(yīng)用前景,盡管在SPICE能力認定方面尚未形成標準化模式,但由于有大量的企業(yè)積極應(yīng)用,并且作為一個國際標準,因此其影響力將會越來越大。
在國內(nèi),軟件測試組織通常分為開發(fā)單位內(nèi)部測試組織和獨立軟件測試機構(gòu)兩種形式,內(nèi)部測試組織一般隨同軟件開發(fā)能力的質(zhì)量保證相關(guān)活動一同進行評定,而后者及少數(shù)開發(fā)單位內(nèi)部測試組織采用實驗室認可方式進行評定。在國內(nèi),資質(zhì)授權(quán)在軍用和民用領(lǐng)域采用不同標準獨立授權(quán)。軍用領(lǐng)域主要依據(jù)GJB 2725A-2001《測試實驗室和校準實驗室通用要求》,技術(shù)部分配套采用原總裝下發(fā)文件進行能力認定;民用領(lǐng)域主要依據(jù)ISO/IEC 17025-2005《檢測和校準實驗室認可準則》進行能力評定。兩種方式主體思路相近,都是建立一個能力基準,為滿足該基準的組織獲得相關(guān)資質(zhì)授權(quán),并不涉及過程持續(xù)改進的要素。
綜上所述,不同的模型都有其對應(yīng)的特點。TMMi作為CMMi的補充模型,豐富和完善了CMMi中有關(guān)軟件測試的過程域,覆蓋了軟件生命周期的所有測試過程,因此最適用于已經(jīng)進行了CMMi能力認證的組織內(nèi)部的測試機構(gòu),并且相對于CMMi其更強調(diào)軟件測試能力,同時由于是通過授權(quán)的第三方認證機構(gòu)進行認證,因此認證的結(jié)果公信力和國際影響力都比較大。而TPI旨在改進軟件測試過程,其能力認證部分更多在于為過程改進提供基礎(chǔ),且無需授權(quán)的第三方認證機構(gòu)介入就可以進行認證,能夠以較低的成本讓企業(yè)軟件測試能力得到提高,有助于軟件產(chǎn)品以更高的質(zhì)量推向市場、提高軟件的客戶滿意程度。SPICE最大的優(yōu)勢在于其開放性,能根據(jù)行業(yè)的特定需求與相關(guān)標準進行集成,從而可以用來規(guī)定和評審安全需求、評價過程的符合性、用于定義SIL(safety integrity level)等級等。SPICE標準是由專門的SPICE國際組織進行認證,因此也有較強的公信力,并且為了方便企業(yè)進行能力成熟度的劃分,SPICE也將建立對應(yīng)的等級模型,它將構(gòu)成ISO 15504的第七部分。
以上模型對于企業(yè)內(nèi)部的測試能力評價和過程改進都有積極的借鑒意義。但對于第三方軟件測試機構(gòu)而言,其適用性都存在一定程度的限制,因為兩者測試目的和測試項目實施過程都不盡相同[15]。作為專業(yè)檢測機構(gòu),既有能力成熟度認定需求,也有過程改進的強烈愿望;既有提升軟件質(zhì)量的責任,也有客觀考核、度量軟件質(zhì)量的使命。同時第三方軟件測試機構(gòu)面向的行業(yè)較為廣泛、業(yè)務(wù)模式多樣,對其測評能力的評價要素眾多,要素關(guān)系復(fù)雜。文中從國內(nèi)軟件測試能力認證的現(xiàn)狀出發(fā),綜合以上幾種模型的設(shè)計思想,提出了針對第三方檢測機構(gòu)的軟件測試能力評價模型架構(gòu)。與傳統(tǒng)軟件測試能力評估模型相比較,該模型從多個視角觀測測試過程,突出體現(xiàn)了“從組織到項目、從體系到過程、從技術(shù)到管理、從工程到科研、從軟實力到硬實力”的全要素、綜合化的特點。
模型架構(gòu)建立了測試過程能力、技術(shù)能力、組織管理、核心資產(chǎn)、科研能力和發(fā)展能力六大領(lǐng)域評估點,對軟件測試能力進行全方位的評估如表1所示。
表1 改進模型框架
通過該模型的使用,能夠?qū)Ξ斍败浖y試能力的相關(guān)要素和整體水平進行評估,最終達到軟件測試能力持續(xù)提升的目的。
模型采用評估項和能力級兩個維度進行設(shè)計,每個能力級包含通過對每個評估點的量化考核,綜合權(quán)重計算獲得最終的能力級別。
基于該模型架構(gòu),使用模糊綜合評價方法或參考TPI模型評估過程方法進行。以TPI模型評估過程為例,將測試成熟度數(shù)值域分為3類:受控的(1~5)、有效的(6~10)和優(yōu)化的(11~13),表2演示了不同級別測試能力評估的可能結(jié)果。對于評價結(jié)果的分析,必須考慮評價要素的相關(guān)性因素,來判斷評價結(jié)果是否合理、客觀。為此,評價之前必須開展要素間的相關(guān)性分析,衡量兩個變量因素的相關(guān)密切程度,確定要素間的相關(guān)性矩陣與評價結(jié)果進行比對。
表2 能力評估示例
國內(nèi)軟件檢測機構(gòu)面臨著技術(shù)、管理和市場的多重壓力。一方面,信息化技術(shù)得到飛躍式發(fā)展,要求軟件測試面向新體系、新架構(gòu)需要不斷創(chuàng)新,持續(xù)提升技術(shù)和管理水平,以適應(yīng)新技術(shù)的應(yīng)用和發(fā)展需求,如軍委科技委某領(lǐng)導(dǎo)在視察時強調(diào)“檢測機構(gòu)不僅是醫(yī)院,更應(yīng)該是醫(yī)學研究所?!绷硪环矫?,2014年國務(wù)院辦公廳轉(zhuǎn)發(fā)了中央編辦、質(zhì)檢總局《關(guān)于整合檢驗檢測認證機構(gòu)的實施意見》,未來國家要培育一批技術(shù)能力強、服務(wù)水平高、規(guī)模效益好、具有一定國際影響力的檢驗檢測認證集團。軟件測試機構(gòu)必須立足國家戰(zhàn)略,做好與國際接軌準備。解決這些問題,必須開展軟件測試能力評定和過程改進的研究。而國內(nèi)目前對此方面的研究較少,缺乏可借鑒的成功案例?;诖吮尘?,比較了多種國際通用模型的特點,綜合各方面優(yōu)劣,提出了適應(yīng)國內(nèi)專業(yè)軟件測試機構(gòu)的評估和改進模型。各機構(gòu)可根據(jù)該模型架構(gòu),設(shè)計符合自身需求的指標和度量元,開展相關(guān)的評估和改進工作。未來在大量實踐的基礎(chǔ)上,逐步可形成標準化方法,規(guī)范國內(nèi)專業(yè)軟件測試行業(yè)管理,以提升國家整體檢測能力和水平。