趙 嚴(yán),宋文愛(ài),張日飛,張紫芫,張 靜
(1.中北大學(xué)軟件學(xué)院山西省軍民融合軟件工程技術(shù)研究中心,太原 038507;2.北方自動(dòng)控制技術(shù)研究所,太原 030006;3.南京郵電大學(xué)通達(dá)學(xué)院,江蘇 揚(yáng)州 225127)
軟件測(cè)試是軟件工程中一個(gè)必不可少的重要組成部分。在軟件工程基本原理指導(dǎo)下的軟件開發(fā)流程包括需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、交付、驗(yàn)收和運(yùn)行維護(hù)等環(huán)節(jié),其中軟件測(cè)試不僅能對(duì)軟件的質(zhì)量進(jìn)行評(píng)價(jià),而且是軟件質(zhì)量保證的重要手段之一[1]。
遵從《GJB 5000A-2008 軍用軟件研制能力成熟度模型》和《GJBZ 141-2016 軍用軟件測(cè)試指南》標(biāo)準(zhǔn)的軍用軟件測(cè)試過(guò)程,包括測(cè)試工程過(guò)程、測(cè)試項(xiàng)目管理過(guò)程、測(cè)試支持過(guò)程和測(cè)試組織過(guò)程,構(gòu)成了完整的軟件測(cè)試生命周期。對(duì)于軍用軟件來(lái)說(shuō),軟件質(zhì)量直接影響武器的質(zhì)量和軍事行動(dòng)的成敗[2],所以軟件測(cè)試的質(zhì)量顯得尤為關(guān)鍵,而測(cè)試過(guò)程的質(zhì)量又直接決定了測(cè)試結(jié)果的質(zhì)量[3]。目前,我國(guó)軟件測(cè)評(píng)實(shí)驗(yàn)室獲取到國(guó)家和軍方認(rèn)證的已經(jīng)達(dá)到300 多家[4],軟件測(cè)試工作實(shí)施過(guò)程中各項(xiàng)活動(dòng)的生命周期,目前主要還是由測(cè)評(píng)實(shí)驗(yàn)室的測(cè)評(píng)人員進(jìn)行人工驅(qū)動(dòng)。如何對(duì)軟件測(cè)試的生命周期進(jìn)行更高效的管控,以提高測(cè)試效率和測(cè)試質(zhì)量,是目前國(guó)內(nèi)外學(xué)者研究的重要課題。為此,參考項(xiàng)目管理和控制論的相關(guān)思想、軍用軟件測(cè)試的相關(guān)技術(shù)方法,提出了一種基于平臺(tái)支撐流程驅(qū)動(dòng)的軍用軟件測(cè)試過(guò)程實(shí)施模型。
在《GJB 5000A-2008 軍用軟件研制能力成熟度模型》和《GJBZ 141-2016 軍用軟件測(cè)試指南》指導(dǎo)下的完整的軍用軟件測(cè)試過(guò)程體系,應(yīng)當(dāng)包括測(cè)試項(xiàng)目管理過(guò)程、測(cè)試工程過(guò)程、測(cè)試支持過(guò)程和測(cè)試組織過(guò)程。
在《GJBZ 141-2016 軍用軟件測(cè)試指南》指導(dǎo)下,軍用軟件測(cè)試的工程流程可分為測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)與實(shí)現(xiàn)、測(cè)試執(zhí)行和測(cè)試總結(jié)5 個(gè)階段,每個(gè)階段又包括一系列具體的活動(dòng)和要素,構(gòu)成了一個(gè)完整的工程生命周期,參見(jiàn)表1。
表1 測(cè)試工程過(guò)程
項(xiàng)目管理是管理學(xué)的一個(gè)分支學(xué)科,所謂項(xiàng)目管理,就是項(xiàng)目的管理者,在資源有限的限制條件下,運(yùn)用相關(guān)的工具、方法、理論等,對(duì)項(xiàng)目中所涉及到的全部?jī)?nèi)容進(jìn)行有效的監(jiān)測(cè)和管控,最終實(shí)現(xiàn)項(xiàng)目的期望和需求的過(guò)程[5]。
軟件測(cè)試項(xiàng)目具有很多的不確定因素,而項(xiàng)目管理,從本質(zhì)上來(lái)講,就是一個(gè)不斷整合、不斷平衡的過(guò)程,因此,對(duì)于軟件測(cè)試項(xiàng)目非常適用[6]。軟件測(cè)試項(xiàng)目管理的內(nèi)容包括策劃管理、成本管理、進(jìn)度管理、資源管理和風(fēng)險(xiǎn)管理[7]。
測(cè)試支持過(guò)程,是指測(cè)試方依據(jù)他們所支持的測(cè)試目標(biāo),所從事的一系列相關(guān)活動(dòng)的集合,最終有利于測(cè)試結(jié)果質(zhì)量的提升。主要包括文檔編制過(guò)程、配置管理過(guò)程、過(guò)程和產(chǎn)品質(zhì)量保證過(guò)程、審核過(guò)程等。
組織過(guò)程,主要目的是為了創(chuàng)建與維護(hù)組織可用的測(cè)試過(guò)程資產(chǎn)和工作環(huán)境標(biāo)準(zhǔn)。通過(guò)采集各個(gè)項(xiàng)目的有用信息,不斷累積過(guò)程資產(chǎn),從而推動(dòng)組織標(biāo)準(zhǔn)過(guò)程得到持續(xù)改進(jìn),最終可以使組織長(zhǎng)期受益。該過(guò)程主要包含培訓(xùn)、環(huán)境、資源、人員、工具等內(nèi)容。
測(cè)試工作中涉及到的工作角色如表2 所示。
表2 工作角色表
傳統(tǒng)的軟件測(cè)試過(guò)程主要由人工進(jìn)行驅(qū)動(dòng),各項(xiàng)工作主要由人來(lái)負(fù)責(zé),其特點(diǎn)是主觀性較強(qiáng),同時(shí)人為控制的靈活性較強(qiáng),在要求不太嚴(yán)格的小型測(cè)試項(xiàng)目上尚且適用。但是在過(guò)程規(guī)范、要求嚴(yán)格的大型軍用軟件測(cè)試過(guò)程項(xiàng)目中,如果依然由人工進(jìn)行驅(qū)動(dòng),容易造成進(jìn)度失調(diào)、資源浪費(fèi)、過(guò)程不受控等局面,導(dǎo)致計(jì)劃于實(shí)際偏差過(guò)大,最終導(dǎo)致項(xiàng)目失敗。
控制反轉(zhuǎn)(IOC)不是一種技術(shù),只是一種思想,所謂控制反轉(zhuǎn),就是控制權(quán)的轉(zhuǎn)移[8]。由于人工驅(qū)動(dòng)的局限性,我們希望將測(cè)試過(guò)程的控制權(quán)從人轉(zhuǎn)移到流程,從人工驅(qū)動(dòng)轉(zhuǎn)化為流程驅(qū)動(dòng)。
通俗地講,流程是具有起點(diǎn)和終點(diǎn)的、有嚴(yán)格先后順序的一系列業(yè)務(wù)活動(dòng)的組合。它具有明確的輸入資源,通過(guò)一系列增值過(guò)程,最終轉(zhuǎn)化為有價(jià)值的輸出結(jié)果[9]。它主要關(guān)注誰(shuí)做了什么事,產(chǎn)生了什么結(jié)果,傳遞了什么信息給誰(shuí)。
流程驅(qū)動(dòng),就是以流程為中心,將所需要的業(yè)務(wù)活動(dòng)進(jìn)行組合,并明確輸入和輸出,從而使得這些業(yè)務(wù)活動(dòng)以流程的方式有序開展,最終達(dá)到所期望的目標(biāo)[10-11]。
閉環(huán)控制的概念來(lái)源于控制論,具體是指系統(tǒng)在運(yùn)行過(guò)程中,將控制信息輸向受控對(duì)象,并將受控對(duì)象輸出的狀態(tài)信息反饋回輸入中,以調(diào)整修正運(yùn)行過(guò)程,使系統(tǒng)的輸出符合預(yù)期要求[12]。閉環(huán)控制與開環(huán)控制的區(qū)別在于:1)有無(wú)反饋;2)是否對(duì)當(dāng)前控制起作用。
多閉環(huán)的思想來(lái)源于工業(yè)領(lǐng)域?qū)λ欧姍C(jī)的控制,一般為兩個(gè)環(huán)控制,所謂雙環(huán)就是兩個(gè)閉環(huán)負(fù)反饋PID 調(diào)節(jié)系統(tǒng)。第1 環(huán)是速度環(huán),輸入目標(biāo)速度,反饋實(shí)時(shí)速度。第2 環(huán)是位置環(huán),輸入目標(biāo)位置,反饋實(shí)時(shí)位置。
閉環(huán)控制算法眾多,其中應(yīng)用最為廣泛、最成熟的應(yīng)當(dāng)是PID 算法[13]。PID 是比例(P),積分(I),微分(D)的縮寫,分別代表了3 種控制算法。單獨(dú)或組合使用這3 種算法,可有效地糾正被控對(duì)象的偏差,從而使系統(tǒng)達(dá)到一個(gè)穩(wěn)定的狀態(tài)。
1)比例,即成比例地反映控制系統(tǒng)的偏差信號(hào),偏差一旦產(chǎn)生,立即產(chǎn)生控制作用以減小偏差。
2)積分,即積分環(huán)節(jié)的作用,主要用于消除靜差提高系統(tǒng)的無(wú)差度。
3)微分,微分環(huán)節(jié)的作用能反映偏差信號(hào)的變化趨勢(shì),并能在偏差信號(hào)的值變得太大之前,在系統(tǒng)中引入一個(gè)有效的早期修正信號(hào),從而加快系統(tǒng)的動(dòng)作速度,減小調(diào)節(jié)時(shí)間。
完善的實(shí)施過(guò)程離不開信息平臺(tái)有力的支撐,信息平臺(tái)作為整個(gè)體系的一種工具、一種載體,將體系中涉及到的人、機(jī)、料、法、環(huán)進(jìn)行記錄、關(guān)聯(lián)、呈現(xiàn),其重要性不言而喻。
在上節(jié)中提到,閉環(huán)控制的核心在于收集反饋然后對(duì)系統(tǒng)進(jìn)行調(diào)控,那么,如何獲得反饋,則需要通過(guò)度量來(lái)實(shí)現(xiàn)。
GQM(Goal-Question-Measurement)即“目標(biāo)-提問(wèn)-測(cè)量”方法,是一種面向目標(biāo)的、自上而下的由目標(biāo)逐步細(xì)化到度量的度量定義方法[14]。GQM的實(shí)施過(guò)程是自上而下的分析過(guò)程和自下而上的執(zhí)行過(guò)程,首先確定需要度量的目標(biāo),然后通過(guò)回答問(wèn)題的方式來(lái)衡量這些目標(biāo)是否可以實(shí)現(xiàn),最終將抽象模糊的目標(biāo),分解成具體的、可量化測(cè)量的問(wèn)題。GQM 模型具有3 層架構(gòu),如圖1 所示。
圖1 GQM 模型
基于GQM 模型的思想,將軍用軟件測(cè)試的4個(gè)過(guò)程作為度量的目標(biāo),然后對(duì)每個(gè)過(guò)程的度量要素進(jìn)行抽取,范圍包含測(cè)試設(shè)計(jì)、需求、成本、進(jìn)度、質(zhì)量、規(guī)模等,得到對(duì)應(yīng)的度量指標(biāo)和度量項(xiàng),最終提出由10 個(gè)度量組成的度量體系,如表3 所示。實(shí)際上,軍用軟件測(cè)試過(guò)程涵蓋的度量指標(biāo)遠(yuǎn)不止10個(gè),此處僅僅列出其中有代表性的指標(biāo)作為參考,在實(shí)際項(xiàng)目中可以根據(jù)項(xiàng)目情況進(jìn)行增減以適應(yīng)項(xiàng)目需要。
表3 度量體系表
整個(gè)體系分為兩層,上層為流程管控層,下層為平臺(tái)支撐層,如圖2 所示。上層為流程的具體情況,下層為平臺(tái)的功能細(xì)節(jié),下層為上層提供平臺(tái)支撐,使上層的思想得以實(shí)現(xiàn),上層則為下層提供實(shí)現(xiàn)邏輯上的支持。
圖2 體系結(jié)構(gòu)示意圖
軍用軟件測(cè)試過(guò)程具有投資大、周期長(zhǎng)、風(fēng)險(xiǎn)高的特點(diǎn),在測(cè)試過(guò)程存在很多的不確定因素,導(dǎo)致了測(cè)試結(jié)果的不確定性和不可預(yù)見(jiàn)性,我們希望可以對(duì)測(cè)試項(xiàng)目進(jìn)行全過(guò)程的動(dòng)態(tài)監(jiān)控,然后對(duì)項(xiàng)目進(jìn)行持續(xù)的改進(jìn),以確保項(xiàng)目順利實(shí)施。
PDCA 循環(huán)是一個(gè)持續(xù)改進(jìn)模型[15],主要包括4 個(gè)階段,即計(jì)劃(P)- 執(zhí)行(D)- 檢查(C)- 處理(A)。
對(duì)于任何一件事情,通常會(huì)先制定計(jì)劃(P),計(jì)劃完成以后去實(shí)施(D),在實(shí)施的過(guò)程中進(jìn)行檢查(C),通過(guò)檢查來(lái)判斷執(zhí)行結(jié)果是否達(dá)到了預(yù)期,進(jìn)而分析影響的因素、出現(xiàn)問(wèn)題的原因,并提出解決的措施,最后根據(jù)檢查的結(jié)果進(jìn)行改進(jìn)(A)。PDCA不是一個(gè)水平單次執(zhí)行的過(guò)程,而是一個(gè)循環(huán)執(zhí)行、螺旋上升的過(guò)程。
可以看出,PDCA 的核心在于C 和A,也就是檢查和改進(jìn)的過(guò)程。結(jié)合上文的論述,檢查過(guò)程即可對(duì)應(yīng)度量過(guò)程,改進(jìn)過(guò)程對(duì)應(yīng)閉環(huán)控制過(guò)程,基于此,設(shè)計(jì)出持續(xù)改進(jìn)的管理過(guò)程模型,如圖3 所示。
圖3 持續(xù)改進(jìn)的管理過(guò)程模型
檢查階段的分析對(duì)處理階段起著決定性作用,而檢查的主要方式就是度量,通過(guò)度量將我們需要評(píng)估的指標(biāo)進(jìn)行量化評(píng)估,為下一階段的改進(jìn)提供依據(jù)。通過(guò)度量階段收集的數(shù)據(jù),經(jīng)過(guò)分析和處理建立組織性能基線,確定基準(zhǔn)值和上下控制區(qū)間。
處理階段主要是根據(jù)檢查結(jié)果,采取相應(yīng)的措施。例如在檢查過(guò)程中,發(fā)現(xiàn)某一個(gè)度量項(xiàng)的度量結(jié)果偏離基準(zhǔn)值或者超出控制區(qū)間,則會(huì)將其判定為不合格狀態(tài)。發(fā)現(xiàn)不合格狀態(tài)后,則需要通過(guò)采取相應(yīng)的措施來(lái)改進(jìn)。
前饋控制,可以對(duì)應(yīng)PID 算法中的微分(D)算法,即根據(jù)當(dāng)前的變化趨勢(shì),在測(cè)量值發(fā)生變化但還沒(méi)有超出預(yù)期值時(shí),提前實(shí)施相應(yīng)的調(diào)控措施進(jìn)行干預(yù)。反饋控制,可以對(duì)應(yīng)PID 算法中的比例算法(P)算法,即在測(cè)量值出現(xiàn)偏差而且超過(guò)預(yù)期值后,再采取相應(yīng)的措施進(jìn)行調(diào)整。
將其應(yīng)用在工程領(lǐng)域,前饋控制在持續(xù)改進(jìn)的質(zhì)量管理過(guò)程模型中對(duì)應(yīng)速度環(huán),主要進(jìn)行初期的、小范圍的調(diào)節(jié)。反饋控制對(duì)應(yīng)模型中的位置環(huán),主要負(fù)責(zé)后期的、里程碑式的調(diào)整。例如假設(shè)當(dāng)前項(xiàng)目的進(jìn)度偏離了基準(zhǔn)值,有延期的趨勢(shì)時(shí),應(yīng)當(dāng)先進(jìn)行速度環(huán)的調(diào)節(jié),可以通過(guò)增加人員、延長(zhǎng)每日工作時(shí)長(zhǎng)等方式來(lái)加快進(jìn)度;如果速度環(huán)的調(diào)節(jié)沒(méi)有達(dá)到預(yù)期效果,進(jìn)度依然滯后,且超出了控制區(qū)間,超出可接受的范圍,則應(yīng)當(dāng)進(jìn)行位置環(huán)的調(diào)節(jié),比如修改測(cè)試計(jì)劃等。這樣通過(guò)先速度環(huán)后位置環(huán),前饋加反饋的調(diào)節(jié)方式,可以結(jié)合二者的優(yōu)點(diǎn),有效地對(duì)問(wèn)題進(jìn)行改進(jìn)。
希望將流程驅(qū)動(dòng)和閉環(huán)控制的相關(guān)思想運(yùn)用到工程領(lǐng)域,結(jié)合軍用軟件測(cè)試過(guò)程進(jìn)行設(shè)計(jì)。通過(guò)對(duì)軍用軟件測(cè)試過(guò)程的研究,可以發(fā)現(xiàn)軍用軟件測(cè)試工程過(guò)程具有流程的典型特征,其中,每個(gè)階段都有對(duì)應(yīng)的輸入、輸出和處理過(guò)程,將其業(yè)務(wù)活動(dòng)組合,然后以流程的方式有序開展,也恰好符合流程驅(qū)動(dòng)的核心思想。流程驅(qū)動(dòng)的同時(shí),需要結(jié)合閉環(huán)控制的思想,將軍用軟件測(cè)試流程進(jìn)行閉環(huán)控制管理,核心在于收集反饋然后對(duì)系統(tǒng)進(jìn)行調(diào)控。進(jìn)一步結(jié)合PDCA 模型,以及具體的度量方式,控制調(diào)節(jié)方法,設(shè)計(jì)出軍用軟件測(cè)試過(guò)程實(shí)施模型,如圖4 所示。
圖4 軍用軟件測(cè)試過(guò)程實(shí)施
宏觀上整個(gè)體系在平臺(tái)的支撐上運(yùn)行,包含了工程、管理、支持和組織過(guò)程,其中我們對(duì)整個(gè)工程體系進(jìn)行了分層,包含流程層、輸入層、輸出層和評(píng)審層共4 層架構(gòu),其中流程層作為整個(gè)體系的核心,控制整個(gè)流程體系的運(yùn)轉(zhuǎn)。微觀上每一層都包含若干組成部分,包括流程、文檔、組件和行為等。下面通過(guò)具體的運(yùn)作步驟,來(lái)了解整個(gè)工作體系的運(yùn)行原理。
步驟1:整個(gè)體系的主體是流程層,整個(gè)測(cè)試項(xiàng)目流程從開始啟動(dòng),在相關(guān)測(cè)試文檔的指導(dǎo)下(P 過(guò)程),按照測(cè)試順序依次進(jìn)行(D 過(guò)程),首先進(jìn)行測(cè)試需求分析業(yè)務(wù)的處理,進(jìn)行相應(yīng)的活動(dòng),輸入層有對(duì)應(yīng)的輸入(文檔),評(píng)審層在業(yè)務(wù)完成后會(huì)進(jìn)行測(cè)試需求評(píng)審,評(píng)審結(jié)束后輸出層會(huì)有對(duì)應(yīng)輸出(文檔),業(yè)務(wù)處理結(jié)束后到達(dá)反饋點(diǎn)1(反饋點(diǎn)的位置和數(shù)量可以根據(jù)項(xiàng)目實(shí)際需要來(lái)制定)將本流程產(chǎn)生的文檔等資料提交到流程控制中心。
步驟2:流程控制中心在收到反饋點(diǎn)1 提交的資料后,會(huì)根據(jù)度量表的內(nèi)容對(duì)當(dāng)前狀態(tài)進(jìn)行逐一度量(C 過(guò)程),參見(jiàn)表3,如果度量情況沒(méi)有偏離基準(zhǔn)值或超出控制區(qū)間,則返回到反饋點(diǎn)1 繼續(xù)進(jìn)行下一業(yè)務(wù)活動(dòng)。
步驟3:如果流程控制中心在度量過(guò)程中,發(fā)現(xiàn)偏離基準(zhǔn)值或超出控制區(qū)間,則需要在表中找到對(duì)應(yīng)的測(cè)試工作人員,按照先速度環(huán)后位置環(huán)的原則進(jìn)行調(diào)整(A 過(guò)程)。
步驟4:流程控制中心根據(jù)異常狀態(tài)反饋?zhàn)鞒鱿鄳?yīng)調(diào)整后,流程控制中心繼續(xù)審查剩余資料,如果依然有異常狀態(tài)反饋的話,則繼續(xù)提交給對(duì)應(yīng)的角色進(jìn)行處理,如果沒(méi)有異常則繼續(xù)逐項(xiàng)度量,直到度量結(jié)束,流程返回反饋點(diǎn)位置,流程繼續(xù)向后進(jìn)行。
步驟5:正常情況下流程重復(fù)執(zhí)行步驟1、步驟2,出現(xiàn)異常則執(zhí)行步驟3、步驟4(PDCA 循環(huán)),直到執(zhí)行完最后一個(gè)業(yè)務(wù)活動(dòng),后續(xù)無(wú)未處理業(yè)務(wù),流程結(jié)束。
綜上所述,可以得出基于平臺(tái)支撐流程驅(qū)動(dòng)的軍用軟件測(cè)試過(guò)程成功實(shí)施需要具備4 個(gè)要素:①全程策劃,②嚴(yán)格執(zhí)行,③精準(zhǔn)監(jiān)督,④及時(shí)整改回歸。全程策劃的基礎(chǔ)在于嚴(yán)格遵守各類國(guó)/軍標(biāo)體系文件來(lái)進(jìn)行策劃和設(shè)計(jì);嚴(yán)格執(zhí)行的核心在于嚴(yán)格的過(guò)程管理;精準(zhǔn)監(jiān)督的實(shí)施取決于精準(zhǔn)的度量;及時(shí)整改回歸則依賴于科學(xué)有效的整改方式。
與傳統(tǒng)的軟件測(cè)試實(shí)施過(guò)程相比,基于平臺(tái)支撐流程驅(qū)動(dòng)的軍用軟件測(cè)試過(guò)程具有如下優(yōu)勢(shì):
第一,相比于傳統(tǒng)的人工業(yè)務(wù)推進(jìn)模式,基于流程驅(qū)動(dòng)的軍用軟件測(cè)試過(guò)程,通過(guò)建立流程驅(qū)動(dòng)機(jī)制,在平臺(tái)的支撐下,整個(gè)體系在流程的推進(jìn)下自動(dòng)運(yùn)轉(zhuǎn),有效減少了人工的干預(yù)。
第二,區(qū)別于傳統(tǒng)獨(dú)立的、松散的管理模式,整個(gè)項(xiàng)目從業(yè)務(wù)到人員都通過(guò)流程有機(jī)地結(jié)合起來(lái),無(wú)論是組織還是管理都與流程緊密結(jié)合,有利于整個(gè)項(xiàng)目的良好運(yùn)轉(zhuǎn)。
第三,將關(guān)注點(diǎn)更多的放在項(xiàng)目實(shí)施過(guò)程上,而不是實(shí)施結(jié)果,以往通過(guò)結(jié)果發(fā)現(xiàn)問(wèn)題時(shí)再進(jìn)行糾正,往往需要付出較大的代價(jià)來(lái)彌補(bǔ),強(qiáng)化過(guò)程管理,有利于項(xiàng)目實(shí)施質(zhì)量的保證。
本文基于軍用軟件測(cè)試過(guò)程要求和特點(diǎn),提出一種基于平臺(tái)支撐流程驅(qū)動(dòng)的軍用軟件測(cè)試過(guò)程實(shí)施模型,該模型旨在推動(dòng)測(cè)試過(guò)程的自動(dòng)化實(shí)施,在減少人工驅(qū)動(dòng)干預(yù)的同時(shí),將過(guò)程所涉及到的人、機(jī)、料、法、環(huán)等有機(jī)地結(jié)合起來(lái),有助于提升軍用軟件測(cè)評(píng)實(shí)驗(yàn)室對(duì)測(cè)試項(xiàng)目的管理能力,提高測(cè)試效率,降低測(cè)試成本,可為今后軍用軟件測(cè)試過(guò)程的研究提供一定的參考。