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