劉軍
(中國航天科工集團(tuán)第二研究院七〇六所 北京市 100854)
隨著裝備信息化程度的提升,裝備的“軟件密集型系統(tǒng)”特征日益凸顯,系統(tǒng)的軟件組成復(fù)雜,一般都會包含多達(dá)幾十個(gè)處理器軟件配置項(xiàng)以及若干個(gè)FPGA/CPLD軟件配置項(xiàng)。軟件呈現(xiàn)“規(guī)模龐大、結(jié)構(gòu)復(fù)雜、一體化綜合”的趨勢,為適應(yīng)未來戰(zhàn)爭對信息化、網(wǎng)絡(luò)化、體系化使用的需求,對互聯(lián)互通互操作提出了更高要求。
然而,目前對裝備的軟件測評仍然以單一配置項(xiàng)為主,軟件系統(tǒng)層次的需求分析和架構(gòu)設(shè)計(jì),以及系統(tǒng)級測試驗(yàn)證都是薄弱環(huán)節(jié)。近幾年裝備軟件定型測評數(shù)據(jù)分析表明,在完整、充分的配置項(xiàng)測試后,裝備系統(tǒng)級測試依然能發(fā)現(xiàn)不少涉及系統(tǒng)層面的軟件缺陷,它們多為配置項(xiàng)之間、分系統(tǒng)之間的協(xié)調(diào)匹配性問題,其中的關(guān)鍵、重要問題將直接影響裝備系統(tǒng)任務(wù)使命的完成。重要級以上的軟件質(zhì)量歸零問題中,有51.4%的歸零問題涉及系統(tǒng)層面,暴露在系統(tǒng)聯(lián)試、靶場飛行試驗(yàn)前。這些數(shù)據(jù)表明,盡管對軟件配置項(xiàng)的功能、性能進(jìn)行了全面驗(yàn)證,并通過了特定使用模式下的系統(tǒng)聯(lián)試,但是面向使命任務(wù)的軟件系統(tǒng)級測試驗(yàn)證仍然很不充分。
目前裝備軟件的特點(diǎn)主要表現(xiàn)在以下幾方面:
(1)大多系統(tǒng)裝備已初步具備組網(wǎng)能力,部分系統(tǒng)還可與其他裝備進(jìn)行混編,與外圍指揮單元通訊多元化;
(2)裝備系統(tǒng)內(nèi)部結(jié)構(gòu)復(fù)雜,軟件規(guī)模龐大,甚至包含多層子系統(tǒng),軟件規(guī)模一般在幾十萬至幾百萬行不等;
(3)為滿足當(dāng)前發(fā)展需求,各裝備系統(tǒng)軟件研發(fā)、硬件選型中已適應(yīng)了復(fù)雜電磁環(huán)境下的能力需要,完成了相關(guān)設(shè)計(jì)內(nèi)容;
(4)對于研制總要求或等效文件中提到的性能指標(biāo),在系統(tǒng)/子系統(tǒng)規(guī)格說明中,很少能做到軟/硬件性能指標(biāo)分離、指標(biāo)實(shí)現(xiàn)的有效分解。
面對以上軟件系統(tǒng)特點(diǎn),傳統(tǒng)的軟件配置項(xiàng)測試充分暴露自身“只見樹木、不見森林”的缺陷:測試力度不夠,無法驗(yàn)證軟件配置項(xiàng)之間的功能協(xié)調(diào)性和接口協(xié)調(diào)性。
面對復(fù)雜的使用需求、日趨龐大的裝備系統(tǒng)軟件規(guī)模,相關(guān)訂購部門更需要得到的是這些裝備投入到復(fù)雜戰(zhàn)場環(huán)境中的應(yīng)用能力評價(jià),而不是單一設(shè)備和單一軟件的運(yùn)行能力,這樣對裝備軟件的測試評價(jià)提出了更高的要求。軟件測評從以單一配置項(xiàng)的功能測試為主,轉(zhuǎn)變?yōu)閷δ芎托阅芸己瞬⒅?,突出對面向使命任?wù)的軟件系統(tǒng)的考核,對體系貢獻(xiàn)度的評估。
在此背景下,系統(tǒng)級軟件測試能夠?yàn)槿嬖u價(jià)裝備軟件效能提供有效手段,為全面評價(jià)裝備系統(tǒng)效能提供了依據(jù)。
目前軟件系統(tǒng)級測試主要采用動(dòng)態(tài)測試為主的策略,以裝備研制總要求、系統(tǒng)任務(wù)書、系統(tǒng)需求規(guī)格說明為測試依據(jù),在真實(shí)環(huán)境下開展測試,普遍采用的測試方法包括:
(1)基于使命任務(wù)和典型應(yīng)用場景的測試。
(2)基于工作流程和控制流程覆蓋的測試。
(3)專項(xiàng)審查:接口分析、安全性分析、時(shí)序?qū)彶?、使用流程審查?/p>
專項(xiàng)審查的采用彌補(bǔ)了裝備軟件缺乏有效動(dòng)態(tài)測試環(huán)境的問題,可以發(fā)現(xiàn)各分系統(tǒng)或配置項(xiàng)對于系統(tǒng)需求分解、指標(biāo)分解、接口協(xié)議理解不一致的問題。
(4)采用“系統(tǒng)特征狀態(tài)驗(yàn)證率”的系統(tǒng)測試充分性量化指標(biāo)度量方法,針對系統(tǒng)關(guān)鍵特征狀態(tài)測試覆蓋情況進(jìn)行分析和測試。
在對各裝備件系統(tǒng)級測試發(fā)現(xiàn)的問題分析中,發(fā)現(xiàn)有以下產(chǎn)生原因:
(1)系統(tǒng)級測試特點(diǎn)決定的:單個(gè)軟件配置項(xiàng)執(zhí)行沒有問題,但作為系統(tǒng)執(zhí)行時(shí)就有問題,此類問題為典型的系統(tǒng)級問題,配置項(xiàng)無法發(fā)現(xiàn);
(2)系統(tǒng)工作流程問題,對于需要各個(gè)分系統(tǒng)或配置項(xiàng)配合才能完成的任務(wù),任務(wù)完成過程中會暴露出配置項(xiàng)測試未暴露的問題;
(3)系統(tǒng)設(shè)計(jì)缺陷(邏輯缺陷、異常處理、邊界處理、臨界點(diǎn)處理)導(dǎo)致的問題;
(4)各分系統(tǒng)或配置項(xiàng)設(shè)計(jì)師對于系統(tǒng)模型(協(xié)議)理解不一致或不到位導(dǎo)致的問題;
(5)各分系統(tǒng)或配置項(xiàng)在需求分析、設(shè)計(jì)時(shí)重點(diǎn)關(guān)注了對其本身的要求,忽略了研制總要求等頂層輸入文件中項(xiàng)目的設(shè)計(jì)通用要求對本分系統(tǒng)/配置項(xiàng)的相關(guān)性分析和分解;
(6)配置項(xiàng)測試環(huán)境和系統(tǒng)實(shí)裝環(huán)境的差異性導(dǎo)致的配置項(xiàng)測試遺漏的部分問題;
(7)測試人員認(rèn)識提高,測試用例設(shè)計(jì)足夠復(fù)雜激活潛在的軟件缺陷。
看到以上問題產(chǎn)生的原因,不難發(fā)現(xiàn)如果在軟件研制過程中采取一些措施,上述(1)~(5)問題在一定程度上是可以避免的。對此在軟件研制過程中,應(yīng)采取以下措施:
4.2.1 重視軟件系統(tǒng)需求分析與系統(tǒng)設(shè)計(jì)
系統(tǒng)需求是介于用戶需求和軟件需求之間的重要橋梁,是確保用戶需求能正確實(shí)現(xiàn)的重要保障,更是系統(tǒng)級測試的唯一依據(jù)。提供的系統(tǒng)軟件需求類文檔中,應(yīng)明確系統(tǒng)軟件用途,重點(diǎn)描述系統(tǒng)軟件的任務(wù)使命、系統(tǒng)能力(覆蓋技術(shù)指標(biāo))、軟硬件環(huán)境要求、系統(tǒng)/分系統(tǒng)軟件體系結(jié)構(gòu)設(shè)計(jì)等(即系統(tǒng)的任務(wù)流、功能流、信息流)。
存在工作狀態(tài)轉(zhuǎn)換的,在提供的需求類文檔中,應(yīng)詳細(xì)說明系統(tǒng)軟件所包含的各種工作狀態(tài)、轉(zhuǎn)換方式,必要時(shí),給出狀態(tài)轉(zhuǎn)換圖進(jìn)行說明轉(zhuǎn)換條件、轉(zhuǎn)換點(diǎn)。對于各種工作方式,應(yīng)描述清楚對應(yīng)的能力需求組,以及參與實(shí)現(xiàn)的軟件,推薦使用表格進(jìn)行說明。
提供的需求類文檔中,在對系統(tǒng)能力需求展開描述時(shí),建議從系統(tǒng)/分系統(tǒng)的角度出發(fā),對每一組能力需求進(jìn)行詳細(xì)描述,建議給出工作流程圖、數(shù)據(jù)流圖,文字描述實(shí)現(xiàn)路徑,哪些軟件參與了哪些操作,并說明執(zhí)行過程中的重點(diǎn)數(shù)據(jù)判讀要求、數(shù)據(jù)執(zhí)行周期要求(處理時(shí)間分布情況),應(yīng)列出研制總要求中與軟件相關(guān)的所有技術(shù)指標(biāo),并進(jìn)行有效分解。
提供的需求類文檔中,應(yīng)詳細(xì)描述整個(gè)系統(tǒng)軟件的內(nèi)/外部接口通訊內(nèi)容,應(yīng)詳細(xì)描述切實(shí)可行的安全性需求與措施。
4.2.2 加強(qiáng)使用總體與設(shè)計(jì)總體、設(shè)計(jì)總體與設(shè)計(jì)師的溝通
軟件研制中設(shè)計(jì)總體、設(shè)計(jì)師應(yīng)定期與使用總體進(jìn)行溝通,這樣才能保證系統(tǒng)貼近用戶使用;設(shè)計(jì)總體和設(shè)計(jì)師定期溝通,能夠消除彼此理解上的一些差異,同時(shí)形成頭腦風(fēng)暴,完善模型設(shè)計(jì),提高軟件質(zhì)量。
基于提高軟件質(zhì)量的要求,只在軟件驗(yàn)收階段進(jìn)行系統(tǒng)級測試又顯得有些不夠,那在軟件研制過程中是否可以實(shí)施系統(tǒng)級測試呢?而軟件研制過程中各軟件狀態(tài)不定、測試周期短,導(dǎo)致無法完全進(jìn)行系統(tǒng)級測試。針對此種情況,應(yīng)從軟件測試的思路和方法進(jìn)行改進(jìn):
(1)測試設(shè)計(jì)時(shí)應(yīng)多從使用者的角度進(jìn)行設(shè)計(jì),而不應(yīng)只對軟件進(jìn)行覆蓋性測試;
(2)需對軟件任務(wù)剖面進(jìn)行分析,構(gòu)造任務(wù)應(yīng)用場景;
(3)充分考慮與軟件有關(guān)的所有硬件和設(shè)備對軟件的影響;
(4)測試用例設(shè)計(jì)應(yīng)增加針對飽和或滿負(fù)荷情況下的設(shè)計(jì)且用例應(yīng)盡量復(fù)雜;
(5)測試執(zhí)行時(shí)耦合度高的軟件應(yīng)協(xié)同測試。
軟件系統(tǒng)聯(lián)調(diào)一般是依據(jù)實(shí)驗(yàn)任務(wù)對軟件系統(tǒng)主要功能和流程進(jìn)行驗(yàn)證,缺乏充分性。軟件系統(tǒng)級測試是以測試的角度對軟件系統(tǒng)的所有設(shè)計(jì)分支進(jìn)行測試,功能覆蓋全面充分。在對系統(tǒng)級測試結(jié)果分析中,發(fā)現(xiàn)有些問題如果系統(tǒng)聯(lián)調(diào)能夠測試充分一些,那這些問題本可以很早就能發(fā)現(xiàn)。針對此種情況,應(yīng)該在軟件系統(tǒng)聯(lián)調(diào)中采取以下措施,提高軟件可靠性。
(1)軟件系統(tǒng)聯(lián)調(diào)應(yīng)轉(zhuǎn)變思想:系統(tǒng)聯(lián)調(diào)不應(yīng)只為實(shí)驗(yàn)任務(wù)服務(wù),而是應(yīng)該提高軟件系統(tǒng)可靠性為目的;
(2)組織軟件系統(tǒng)聯(lián)調(diào)的總體人員應(yīng)了解軟件測試,以軟件測試的角度結(jié)合軟件系統(tǒng)聯(lián)調(diào)本身的特點(diǎn),綜合考慮制定聯(lián)調(diào)方案;
(3)軟件系統(tǒng)聯(lián)調(diào)依據(jù)實(shí)驗(yàn)任務(wù)制定聯(lián)調(diào)方案時(shí),應(yīng)盡可能充分考慮系統(tǒng)功能,提高測試充分性;
(4)軟件系統(tǒng)聯(lián)調(diào)應(yīng)多考慮異常分支、異常情況,驗(yàn)證系統(tǒng)可靠性;
(5)必要時(shí),軟件系統(tǒng)聯(lián)調(diào)應(yīng)請測試人員參與。
調(diào)研多個(gè)項(xiàng)目的軟件系統(tǒng)級測試,發(fā)現(xiàn)軟件系統(tǒng)級測試存在以下問題:
軟件配置項(xiàng)級測試的依據(jù)是軟件研制任務(wù)書、軟件需求規(guī)格說明、軟件用戶手冊等技術(shù)文檔;那么裝備軟件系統(tǒng)級測評的依據(jù)應(yīng)該是什么?作為軟件系統(tǒng)級測評,既然要摸清裝備的性能底數(shù)、使用的邊界條件和運(yùn)行的極限狀態(tài),除了裝備軟件之間的接口協(xié)議、用戶使用需求,還應(yīng)該具有描述系統(tǒng)軟件能力和使用條件頂層技術(shù)文檔,以及具備領(lǐng)域知識的使用約束條件,如軟件系統(tǒng)設(shè)計(jì)方案、軟件系統(tǒng)運(yùn)行方案、軟件系統(tǒng)能力技術(shù)要求等。
目前,通過部分測評機(jī)構(gòu)開展的一些系統(tǒng)級測評項(xiàng)目來看,研制方提交的軟件系統(tǒng)級文檔,仍然以配置項(xiàng)級功能、性能“塊狀”描述為主,不能轉(zhuǎn)化為系統(tǒng)典型應(yīng)用場景的用戶需求和任務(wù)需求,難以作為系統(tǒng)測評的依據(jù),這就需要系統(tǒng)軟件設(shè)計(jì)人員充分了解裝備使用需求,提出與軟件相關(guān)的能力需求和使用需求,測評人員根據(jù)輸入的使用需求和領(lǐng)域知識開展對軟件能力需求的驗(yàn)證和摸底。
裝備軟件系統(tǒng)級測評主要方法應(yīng)以為黑盒測試方法或灰盒測試方法為主,一般不包括代碼級的白盒測試,除非對于系統(tǒng)級發(fā)現(xiàn)問題,進(jìn)行問題定位和歸零時(shí)進(jìn)行專項(xiàng)的代碼級白盒測試。
各項(xiàng)標(biāo)準(zhǔn)中都規(guī)定系統(tǒng)級測試需要在實(shí)裝環(huán)境中測試,但在實(shí)裝中測試能否保證測試充分性?有些操作不能確定不損傷裝備,誰敢去操作?有些裝備屬于小子樣裝備,無法提供給測試,如果沒有條件怎么辦,如何給出結(jié)論?
系統(tǒng)級測試不同于配置項(xiàng)測試,傳統(tǒng)配置項(xiàng)測試只針對單軟件單功能的驗(yàn)證,很少針對系統(tǒng)整個(gè)流程進(jìn)行驗(yàn)證。相應(yīng)地系統(tǒng)級測試應(yīng)以貼近實(shí)際、貼近用戶、貼近使用為基本原則,以摸清系統(tǒng)軟件的性能底數(shù)、極限狀態(tài)、邊界條件為根本要求,盡可能發(fā)現(xiàn)影響用戶使用、影響任務(wù)流程、影響使用效能的軟件問題,而如何對系統(tǒng)進(jìn)行測試設(shè)計(jì)、測試執(zhí)行則需要建立一套有別于傳統(tǒng)配置項(xiàng)測試的操作流程或指南。
由于裝備中軟件數(shù)量眾多、軟件規(guī)模大,依據(jù)文件種類、內(nèi)容繁多,有研制總要求、系統(tǒng)需求規(guī)格說明、工作流程描述、模型和協(xié)議等一系列文檔,雖然系統(tǒng)需求規(guī)格說明是系統(tǒng)及測試的主要依據(jù)已達(dá)成共識,文檔的描述應(yīng)該覆蓋到哪些內(nèi)容、哪個(gè)層次就是完備的從技術(shù)上未有好的理論指導(dǎo),因此這種覆蓋是一種弱覆蓋。
現(xiàn)階段,系統(tǒng)級測試主要是基于任務(wù)使命和典型應(yīng)用場景的測試,測試過程中需要構(gòu)建符合測試要求的應(yīng)用場景,但應(yīng)用場景覆蓋是否充分,并沒有理論進(jìn)行指導(dǎo)。
對于整體性,是現(xiàn)在大多數(shù)系統(tǒng)級測試最關(guān)注的,也是考慮最多的,多集中在典型工作場景測試、功能覆蓋測試、工作流程測試等等,但筆者認(rèn)為,真正體現(xiàn)系統(tǒng)整體性的除了以上幾種覆蓋性測試,更應(yīng)該關(guān)注系統(tǒng)輸出,具體為任務(wù)使命是否達(dá)成、受軟件影響的工作效能是否達(dá)標(biāo)。對此類系統(tǒng)輸出的覆蓋性測試在配置項(xiàng)級測試時(shí)往往會弱化,應(yīng)在系統(tǒng)級測試強(qiáng)化。
目前的軟件測試充分性指標(biāo)主要是針對程序代碼的,適用于單元測試、部件測試和軟件配置項(xiàng)測試,針對系統(tǒng)測試均顯得無能為力。系統(tǒng)測試關(guān)心的是系統(tǒng)任務(wù)的驗(yàn)證充分性,針對程序代碼的充分性指標(biāo)顯然無法適應(yīng)系統(tǒng)測試的工程需求。
細(xì)化頂層論證,提供輸入依據(jù)。應(yīng)在研制總要求、裝備立項(xiàng)論證報(bào)告等頂層文件明確裝備試驗(yàn)鑒定中軟件系統(tǒng)級測試涉及哪些系統(tǒng)/分系統(tǒng)/子系統(tǒng),每個(gè)系統(tǒng)包括哪些軟件配置項(xiàng),明確測試的軟件工作過程要求以及遵循的標(biāo)準(zhǔn)規(guī)范,如果在頂層文件制定時(shí)來不及明確,應(yīng)該最晚在試驗(yàn)鑒定初案和試驗(yàn)鑒定總案中明確,在軍方主導(dǎo)下完成相關(guān)各方參與的評審,作為系統(tǒng)級測試頂層的管理性依據(jù)。
在技術(shù)層面,對軟件系統(tǒng)的描述應(yīng)該是有層次的,在頂層輸入之下,應(yīng)該按層次構(gòu)建完整的裝備軟件系統(tǒng)架構(gòu),對頂層需求逐層分解,對系統(tǒng)需求的描述也應(yīng)該本著從宏觀到具體的原則,裝備的應(yīng)該是從任務(wù)使命和任務(wù)要求,分解到具體的分系統(tǒng)/子系統(tǒng)。而針對不同層次,應(yīng)解決當(dāng)前層次系統(tǒng)的多元性、相關(guān)性和整體性描述問題,為系統(tǒng)級測試提供技術(shù)輸入。
系統(tǒng)級的測評需求分析,應(yīng)以用戶使用需求為主,結(jié)合用戶使用的典型場景,覆蓋系統(tǒng)/子系統(tǒng)/分系統(tǒng)的能力需求為基本原則開展測評需求分析,測試需求分析內(nèi)容應(yīng)覆蓋用戶使用剖面、功能剖面,對于軟件的使用邊界、極限狀態(tài)進(jìn)行驗(yàn)證和摸底。
系統(tǒng)級測試應(yīng)在配置項(xiàng)級測試完成,軟件版本狀態(tài)相對固化的狀態(tài)下開展,先開展分系統(tǒng)級,再開在子系統(tǒng)級,最后開展系統(tǒng)級測試。系統(tǒng)級測試設(shè)計(jì),應(yīng)按照測試需求分析,依據(jù)用戶使用需求的輸入組合開展測試設(shè)計(jì),包含正常的用戶使用流程和異常的用戶使用流程設(shè)計(jì)。對于典型的使用場景,應(yīng)增加測試用例設(shè)計(jì)密度,盡可能覆蓋典型使用場景下不同輸入的多種組合。
系統(tǒng)測試執(zhí)行,應(yīng)嚴(yán)格按照用戶使用需求說明書開展測試用例的執(zhí)行。對于異常流程的測試用例,應(yīng)充分評估對系統(tǒng)實(shí)物設(shè)備的影響,避免損壞實(shí)際設(shè)備。對于測試環(huán)境不支持的測試用例,應(yīng)盡可能的模擬外圍的環(huán)境,提高測試用例環(huán)境的執(zhí)行率。系統(tǒng)測試數(shù)據(jù)分析不限于對測試用例、執(zhí)行過程發(fā)現(xiàn)的軟件缺陷的數(shù)據(jù)分析,還應(yīng)該對系統(tǒng)測試用例執(zhí)行過程產(chǎn)生的軟件配置項(xiàng)之間實(shí)時(shí)交互的數(shù)據(jù)進(jìn)行分析。通過對該部分的數(shù)據(jù)發(fā)現(xiàn)系統(tǒng)軟件配置項(xiàng)之間存在不協(xié)調(diào)、不一致、不正確的蛛絲馬跡;通過對該部分的數(shù)據(jù)分析定量評估系統(tǒng)級測試覆蓋性,確定測試是否可以終止;通過對該部分?jǐn)?shù)據(jù)分析,定位軟件故障,發(fā)現(xiàn)軟件缺陷,修正軟件錯(cuò)誤。
軟件系統(tǒng)級測評環(huán)境構(gòu)建,應(yīng)借助一定的實(shí)物設(shè)備,構(gòu)建的半實(shí)物的系統(tǒng)級測試環(huán)境,對于指揮信息化裝備,也可構(gòu)建全數(shù)字的系統(tǒng)級測試環(huán)境。構(gòu)建的環(huán)境應(yīng)苛刻或等效于實(shí)際使用環(huán)境,能夠支持系統(tǒng)邊界外異常數(shù)據(jù)的輸入能力,能夠模擬軟件運(yùn)行極限狀態(tài)的外部環(huán)境條件,支撐全過程的軟件配置項(xiàng)之間交互數(shù)據(jù)的采集和重演。如圖1 所示,對于被測系統(tǒng)而言,構(gòu)建系統(tǒng)測試的關(guān)鍵是外圍環(huán)境的模擬,如果外圍環(huán)境能以軟件模擬的方式實(shí)現(xiàn)的,盡量以軟件的方式實(shí)現(xiàn);對于外圍實(shí)物難以直接模擬的,可以增加一層實(shí)物設(shè)備。
圖1:系統(tǒng)級測試環(huán)境示意圖
針對裝備軟件研制特點(diǎn)以及系統(tǒng)測試或系統(tǒng)試驗(yàn)發(fā)現(xiàn)的問題,本文開展了研究,建議裝備軟件系統(tǒng)級測試應(yīng)從以下兩方面進(jìn)行研究:
6.4.1 面向使用過程的系統(tǒng)級測試用例生成技術(shù)
裝備軟件系統(tǒng)使用環(huán)境復(fù)雜,使用過程綜合程度高,軟件系統(tǒng)級高精度、抗干擾、快速反應(yīng)性能的考核需要在系統(tǒng)級集成測試環(huán)境下開展。面對復(fù)雜軟件系統(tǒng),測試用例是一個(gè)與被測軟件的交互執(zhí)行過程相對應(yīng)的、由輸入控制點(diǎn)及其輸入指令或數(shù)據(jù)等要素組成的多元組的序列。裝備軟件系統(tǒng)作為復(fù)雜大系統(tǒng),對于裝備軟件系統(tǒng)級測試用例的描述應(yīng)包括使用環(huán)境情景想定、使用過程描述、測試激勵(lì)數(shù)據(jù)三個(gè)層次。系統(tǒng)級測試用例的描述示意圖如圖2所示。
圖2:系統(tǒng)級測試用例的描述示意圖
(1)使用環(huán)境情景想定。控制系統(tǒng)裝備軟件系統(tǒng)級測試用例的前置條件需要想定符合實(shí)際使用過程的情景,涵蓋系統(tǒng)要求的各個(gè)性能指標(biāo)、系統(tǒng)功能、任務(wù)剖面等。
(2)基于UML順序圖的使用過程描述。UML順序圖可以用來描述控制系統(tǒng)中不同對象之間的動(dòng)態(tài)交互,顯示一個(gè)使用過程中涉及對象間的消息傳遞關(guān)系。而消息是由系統(tǒng)特征狀態(tài)構(gòu)成的,課題研究應(yīng)用UML順序圖依照由系統(tǒng)特征狀態(tài)構(gòu)造的任務(wù)剖面描述控制系統(tǒng)的測試場景,將輸入、輸出及約束條件合理組合生成覆蓋該場景的測試流程,提高測試充分性。
(3)針對GUI的測試激勵(lì)數(shù)據(jù)生成。裝備軟件系統(tǒng)包括嵌入式軟件和GUI軟件,針對嵌入式軟件通常采用數(shù)據(jù)文件形式的測試用例,包括時(shí)間驅(qū)動(dòng)和事件響應(yīng)兩類用例激勵(lì)方式,目前已經(jīng)較好的解決了這類軟件的用例生成和用例加載方式。
6.4.2 軟件系統(tǒng)級驗(yàn)證技術(shù)
(1)系統(tǒng)級形式化驗(yàn)證。將組成控制系統(tǒng)的各分系統(tǒng)作為對象,構(gòu)建狀態(tài)圖,應(yīng)用形式化語言描述上層設(shè)計(jì)的軟件模型規(guī)格,研究形式化方法驗(yàn)證系統(tǒng)行為正確性和完備性。狀態(tài)圖用于對系統(tǒng)模型元素的動(dòng)態(tài)行為進(jìn)行建模,它描述一個(gè)實(shí)體基于事件反應(yīng)的動(dòng)態(tài)行為,顯示該實(shí)體如何根據(jù)當(dāng)前所處的狀態(tài)對不同的事件做出不同的反應(yīng)。形成狀態(tài)機(jī)模型后,定義驗(yàn)證規(guī)則使用CTL語句對模型進(jìn)行仿真驗(yàn)證。
(2)系統(tǒng)級協(xié)議分析。調(diào)研發(fā)現(xiàn),近年的系統(tǒng)試驗(yàn)所暴露出的軟件問題,誘因已經(jīng)不是單一軟件配置項(xiàng)處理的特殊數(shù)據(jù)或異常數(shù)據(jù),而是在系統(tǒng)/子系統(tǒng)內(nèi)、系統(tǒng)/子系統(tǒng)外流轉(zhuǎn)的數(shù)據(jù)流在實(shí)際使用過程中發(fā)生的特例,也許基于本系統(tǒng),它是有效數(shù)據(jù),但由于它到來的時(shí)序特殊、與其他數(shù)據(jù)產(chǎn)生了疊加、軟件集成后與整系統(tǒng)硬件未良好匹配等因素,導(dǎo)致其觸發(fā)軟件缺陷,因此需要通過系統(tǒng)地分析、審查接口通訊的協(xié)議,發(fā)現(xiàn)設(shè)備之間接口通訊方面可能存在的潛在隱患,進(jìn)一步提高軟件接口以及系統(tǒng)的可靠性水平。協(xié)議分析技術(shù)包括接口設(shè)計(jì)與實(shí)現(xiàn)審查、通訊設(shè)計(jì)與實(shí)現(xiàn)審查兩部分。
針對裝備軟件系統(tǒng)級測試中的應(yīng)用場景設(shè)計(jì)是否充分、任務(wù)使命是否達(dá)標(biāo)的問題,現(xiàn)階段本文認(rèn)為基于裝備系統(tǒng)的使用效能分析評估指標(biāo)體系,構(gòu)造適用于系統(tǒng)級測試的指標(biāo)評價(jià)體系能夠較好解決該問題。系統(tǒng)級測試最終是希望能夠?qū)ο到y(tǒng)軟件的使用效能進(jìn)行評價(jià),裝備系統(tǒng)的使用效能分析評估指標(biāo)體系是用來對整個(gè)裝備系統(tǒng)的使用效能進(jìn)行評價(jià)的,而基于此構(gòu)建的適用系統(tǒng)級測試的評價(jià)體系能夠很好地貼合使用效能評價(jià)體系。那么該如何構(gòu)建適用系統(tǒng)級測試的評價(jià)體系?本文認(rèn)為應(yīng)該從以下步驟進(jìn)行操作:
(1)根據(jù)裝備系統(tǒng)的使用效能分析評估的指標(biāo)體系,對相關(guān)指標(biāo)進(jìn)行裁剪,保留軟件指標(biāo)或與軟件相關(guān)的指標(biāo),分析出適用系統(tǒng)級測試的評價(jià)指標(biāo);
(2)根據(jù)系統(tǒng)規(guī)格說明、模型和協(xié)議等輸入類文檔,增補(bǔ)、完善軟件評價(jià)指標(biāo)體系(功能、性能、安全性),并最終構(gòu)建適用于系統(tǒng)測試的指標(biāo)評價(jià)體系;
(3)針對軟件系統(tǒng)級測試的指標(biāo)評價(jià)體系,依據(jù)系統(tǒng)規(guī)格說明、模型等文檔,由功能反推應(yīng)用場景,設(shè)計(jì)應(yīng)用場景。
軟件系統(tǒng)級測試評估不僅應(yīng)該關(guān)注系統(tǒng)測試充分性的評估,包括用戶對典型用戶場景的覆蓋、使用功能剖面的覆蓋、軟件能力項(xiàng)目的覆蓋、系統(tǒng)配置項(xiàng)目交互數(shù)據(jù)的覆蓋等;還應(yīng)該對系統(tǒng)級的軟件能力、適用條件、極限狀態(tài)以及完成任務(wù)的能力給出評價(jià)的指標(biāo)體系和評價(jià)方法,通過此項(xiàng)的評價(jià)能夠給出軟件系統(tǒng)的質(zhì)量評價(jià),為軟件系統(tǒng)的試驗(yàn)鑒定提供依據(jù)和支撐。
采用“系統(tǒng)特征狀態(tài)驗(yàn)證率”的系統(tǒng)測試充分性量化指標(biāo)度量方法,針對系統(tǒng)關(guān)鍵特征狀態(tài)測試覆蓋情況進(jìn)行分析和測試,理論上回答了面向使用任務(wù)的測試是否充分的問題。系統(tǒng)具有許多特征,每一特征具有若干狀態(tài),所有的系統(tǒng)特征狀態(tài)刻畫了系統(tǒng)的行為特性。系統(tǒng)特征狀態(tài)測試驗(yàn)證的是否充分理應(yīng)成為系統(tǒng)測試所關(guān)心的核心問題。
系統(tǒng)級測試在未來很長一段時(shí)間,將是裝備鑒定或大型試驗(yàn)前需要面臨的一道考題,現(xiàn)有的軟件測試技術(shù)應(yīng)用于系統(tǒng)級測試不能很好的兼顧效率和成本、滿足各方對系統(tǒng)級測試的期望,從某種層面上來說,隨著裝備的快速迭代,系統(tǒng)級測試的有效性將會成為制約裝備軟件測試有效性的決定性因素,因此,加大系統(tǒng)級測試技術(shù)、環(huán)境、人力等資源的投入將會是必然趨勢。