劉軍
關(guān)鍵詞 大型指揮自動化信息系統(tǒng) 鑒定測評 分析
1概述
大型指揮自動化信息系統(tǒng)作為情報支持的主要裝備,具有以下特征:(1)信息處理數(shù)據(jù)量大,速度快。在指揮自動化系統(tǒng)中,各個分系統(tǒng)和數(shù)據(jù)處理組合之間采用了數(shù)字化的數(shù)據(jù)交換方式,并且最快的每幾秒甚至幾毫秒交換一次數(shù)據(jù),每次達(dá)數(shù)百個字節(jié),要求處理的數(shù)據(jù)量很大;(2)控制復(fù)雜性高,系統(tǒng)包括多個分系統(tǒng)及其組合或設(shè)備,有很多狀態(tài)量和數(shù)據(jù)量,并且其周期不盡相同,系統(tǒng)軟件要對它們進(jìn)行統(tǒng)一管理,邏輯關(guān)系非常復(fù)雜;(3)實(shí)時性要求強(qiáng),各個分系統(tǒng)和數(shù)據(jù)處理組合之間的數(shù)據(jù)交換周期是不同的,指控計算機(jī)按照統(tǒng)一的時序來協(xié)調(diào)分系統(tǒng)的工作,實(shí)現(xiàn)多個設(shè)備的同步。一旦在實(shí)時性方面出現(xiàn)錯誤,就會造成整個系統(tǒng)的失敗;(4)可靠性要求高,系統(tǒng)很小的失誤可能引起重大損失。所以,系統(tǒng)中指揮控制系統(tǒng)的仿真與測試是非常重要的,在飛行試驗(yàn)前要對指揮自動化系統(tǒng)進(jìn)行大量的測試和驗(yàn)證工作。
針對本類軟件,目前已開展了不少的鑒定測評工作,從頂層的管理要求上與嵌入式軟件系統(tǒng)沒有區(qū)別。本文根據(jù)前期工程實(shí)踐情況,將指揮自動化信息系統(tǒng)軟件鑒定測評工作中的經(jīng)驗(yàn)、存在的問題和建議進(jìn)行總結(jié)。
2軟件特點(diǎn)
大型指揮自動化信息系統(tǒng)軟件主要特點(diǎn)包括:(1)多為非嵌入式軟件,使用多任務(wù)操作系統(tǒng)、Oracle數(shù)據(jù)庫等基礎(chǔ)商用軟件,硬件設(shè)備也多采用商用服務(wù)器、工作站等,大型指揮自動化信息系統(tǒng)作為裝備,多以軟件系統(tǒng)的形式進(jìn)行軟件鑒定;(2)規(guī)模巨大,一般在幾十萬甚至上百萬行,而對于如此巨大的軟件系統(tǒng)軟件的需求分析、設(shè)計文檔內(nèi)容相對單一,對之前研制的項(xiàng)目進(jìn)行過統(tǒng)計匯總,發(fā)現(xiàn)有的軟件需求文檔的描寫力度是平均每條軟件需求對應(yīng)一萬行左右的程序;(3)系統(tǒng)職責(zé)分層、數(shù)據(jù)分布處理,往往將系統(tǒng)劃分為分系統(tǒng)、子系統(tǒng)以及配置項(xiàng)等,不同的配置項(xiàng)部署于支持層、傳輸層、應(yīng)用層等,處于不同層次的配置項(xiàng)行使的職責(zé)不同,支持層、傳輸層等配置項(xiàng)的功能在系統(tǒng)中對用戶不可見,應(yīng)用層配置項(xiàng)的功能需要經(jīng)由支持層、傳輸層的功能協(xié)助完成;(4)體系結(jié)構(gòu)構(gòu)成的成分較復(fù)雜,有通用配置項(xiàng)/ 構(gòu)件、系統(tǒng)共用配置項(xiàng)/ 構(gòu)件等,這些配置項(xiàng)/ 構(gòu)件的開發(fā)單位、技術(shù)狀態(tài)和主管研制部門不同,技術(shù)和管理性因素都很多,不完全受控于系統(tǒng)鑒定;(5)人機(jī)交互多,系統(tǒng)的可用性、易用性必須符合用戶的使用習(xí)慣和使用需要,受人員影響很大,是使用需求驅(qū)動的軟件系統(tǒng)。
3鑒定測評情況分析
3.1研制過程分析
過程控制:針對此類軟件系統(tǒng),主管機(jī)關(guān)一直強(qiáng)調(diào)其為“永遠(yuǎn)不交鑰匙的系統(tǒng)”,顧名思義,該系統(tǒng)無論是鑒定過程中,還是鑒定交付之后,需要研制單位永遠(yuǎn)無條件的給予技術(shù)支持和維護(hù)。這種觀念本身是正確的,軟件裝備研制的目的是讓用戶用好裝備,滿足其使用需求是軟件裝備的最終目標(biāo)。但是,有些研制單位卻因此產(chǎn)生誤解,認(rèn)為軟件即使交給用戶隊也可以隨時更改,不用控制版本,導(dǎo)致研制過程不規(guī)范,同時給測評過程帶來了巨大的困難。
軟件重用:由于此類軟件系統(tǒng)功能需求多,程序規(guī)模大,因此研制單位在軟件需求分析和開發(fā)中,一般會選擇較為成熟的軟件構(gòu)件或商用軟件進(jìn)行重用集成,以期降低研制成本,提高軟件的可靠度,但會造成3 個問題。一是對重用的軟件/ 構(gòu)件是否適用于本系統(tǒng),調(diào)研不充分,集成后(有時到交付階段)發(fā)現(xiàn)此類問題但又難于更改;二是重用或購買的軟件/ 構(gòu)件有缺陷無人維護(hù);三是此類軟件/ 構(gòu)件的問題在某個分系統(tǒng)中暴露和更改后,沒有同步更改到其他分系統(tǒng)。
內(nèi)部測試情況參差不齊:研制階段過程中對軟件的內(nèi)部測試不充分,有時僅在研制開始階段進(jìn)行了測試,且測試僅做到大功能的覆蓋,后續(xù)軟件更改后未進(jìn)行測試,許多問題留到了鑒定階段。
軟件的文檔質(zhì)量一般不高,往往軟件功能和設(shè)計等技術(shù)內(nèi)容高度概括。一是出于對本單位軟件知識產(chǎn)權(quán)的保護(hù),擔(dān)心文檔寫得太細(xì)或涉及軟件算法會泄露單位的核心技術(shù);二是受時間、進(jìn)度的限制,軟件文檔跟不上軟件更新的速度,只能先更改軟件文檔在升級文檔,因此常出現(xiàn)文文不一致、文實(shí)不相符的情況[1] 。
3.2鑒定測評過程分析
時間因素與節(jié)奏:鑒定測試是軟件系統(tǒng)交付之前的重要質(zhì)量保障環(huán)境之一,軟件測評質(zhì)量和進(jìn)度受到研制進(jìn)度的影響。理論上進(jìn)入設(shè)計鑒定階段的一個重要標(biāo)志是軟件技術(shù)狀態(tài)固化,由于指揮自動化信息系統(tǒng)使用需求驅(qū)動和“不交鑰匙”的特點(diǎn),技術(shù)狀態(tài)固化幾乎不可能。根據(jù)用戶需求軟件的功能、界面和操作流程處于一個始終變化的狀態(tài),軟件的更改會包含測試中發(fā)現(xiàn)問題和用戶使用的要求,這就給鑒定測評工作帶來了巨大的挑戰(zhàn)和制約。
測試策略方面:由于指揮自動化系統(tǒng)往往由多個配置項(xiàng)組成,在有限的測試時間內(nèi)如何突出重點(diǎn)提高測試質(zhì)量是很重要的測試策略問題,如果按照對裝備軟件的測試策略,過分強(qiáng)調(diào)配置項(xiàng)測試的測試級別問題,會忽略本類系統(tǒng)的結(jié)構(gòu)特點(diǎn)。針對系統(tǒng)中多數(shù)軟件配置項(xiàng)不能單獨(dú)運(yùn)行實(shí)現(xiàn)系統(tǒng)功能的情況,對配置項(xiàng)之間組合能力的驗(yàn)證不充分,容易造成“只見樹木不見森林”的問題。
測試環(huán)境方面:測試環(huán)境多是以系統(tǒng)集成聯(lián)試為目的開發(fā)的,難以支持軟件的有些接口測試、甚至部分軟件的功能測試,相應(yīng)的測試用例只能通過代碼審查加以驗(yàn)證。此外,指揮自動化信息系統(tǒng)測試環(huán)境難于與實(shí)裝環(huán)境完全一致,測評單位甚至研制單位都不能準(zhǔn)確獲得網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、電磁干擾情況等信息,受資金限制,研制單位也很難提供與實(shí)裝一致的高配置服務(wù)器等設(shè)備,只能按研制方和測試方現(xiàn)有條件和理解在盡可能最相似環(huán)境中進(jìn)行測試。
文檔質(zhì)量和人員配合方面:由于研制單位軟件需求過于粗放,對軟件測試的充分性依賴于軟件測試人員的溝通能力、系統(tǒng)理解能力和對背景的了解程度,同時依賴測試人員的責(zé)任心。
4過程改進(jìn)建議
通過指揮自動化信息系統(tǒng)的鑒定測評工作,本文主要從測評的角度和對研制過程改進(jìn)的引導(dǎo)方面提出以下建議。
4.1多層次、多途徑控制軟件的質(zhì)量
(1)引導(dǎo)研制單位加強(qiáng)內(nèi)部測試,加大內(nèi)部測試的檢查/ 評審力度,內(nèi)部測試以軟件單元和配置項(xiàng)測試為重點(diǎn),測試功能、接口、邊界乃至性能等方面的正確性,盡可能暴露軟件問題,這部分工作在后期系統(tǒng)集成后不易暴露,帶來的影響和更改風(fēng)險很大;提交評測時,應(yīng)出具內(nèi)部測試報告。
(2)建議主管機(jī)關(guān)適當(dāng)調(diào)整鑒定測評與用戶試驗(yàn)試用嚴(yán)格分開的程序,采用鑒定測評與用戶試驗(yàn)試用迭代前進(jìn)的工作方式。由于“軟件裝備”人機(jī)交互量大、使用需求驅(qū)動軟件需求、在用戶的使用中系統(tǒng)不斷成熟,而軟件鑒定測評解決軟件與研制總要求的符合性問題,用戶試用可解決“軟件裝備”可用性、易用性問題,因此建議在軟件鑒定測評后研制單位解決主要問題,即可提交用戶試驗(yàn)試用,在用戶提出更改意見后,更改程序并進(jìn)行回歸測試,如此幾輪,可將問題逐步收斂,最終滿足鑒定測評的要求,基本達(dá)到滿足用戶使用要求的目標(biāo)[2] 。
4.2加強(qiáng)實(shí)驗(yàn)驗(yàn)證平臺和測試環(huán)境建設(shè)
對于“軟件裝備”,研制方在立項(xiàng)研制之初就應(yīng)該充分考慮試驗(yàn)驗(yàn)證平臺和測試環(huán)境的搭建,將之作為研制工作的一部分,并應(yīng)該充分考慮經(jīng)費(fèi)投入。系統(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)的,盡量以運(yùn)行軟件的方式實(shí)現(xiàn);對于外圍實(shí)物難以直接模擬的,可以增加一層實(shí)物設(shè)備[3]。
4.3重視系統(tǒng)級測試,加大系統(tǒng)級測試和功能組合測試力度
鑒定測評工作應(yīng)重點(diǎn)進(jìn)行系統(tǒng)級測試,嚴(yán)格驗(yàn)證“軟件裝備”對研制總要求的任務(wù)使命和任務(wù)功能等使用要求的滿足程度。其中,系統(tǒng)級測試是指將子系統(tǒng)、分系統(tǒng)乃至系統(tǒng)均作為獨(dú)立運(yùn)行保障用戶使用的系統(tǒng)進(jìn)行完整、全面的測試。經(jīng)歷了軟件內(nèi)部測試(單元測試、部件測試、配置項(xiàng)測試、系統(tǒng)聯(lián)試)、第三方評測,系統(tǒng)裝備是否還需要開展系統(tǒng)級測試? 答案是肯定的,因?yàn)檫@些測試都不能替代系統(tǒng)級測試工作。據(jù)不完全統(tǒng)計,軟件質(zhì)量問題中系統(tǒng)級問題占20%以上。事實(shí)上,一方面,系統(tǒng)級測試是對配置項(xiàng)測試的補(bǔ)充,可以發(fā)現(xiàn)配置項(xiàng)測試中遺漏的問題,另一方面,系統(tǒng)級測試可以發(fā)現(xiàn)配置項(xiàng)之間工作不協(xié)調(diào)的問題,是軟件測試中不可或缺的一部分。
4.4注重測試策略的實(shí)效性
由于“軟件裝備”規(guī)模巨大,進(jìn)行全面的代碼審查不太現(xiàn)實(shí),即使進(jìn)行10%的代碼審查也要審查幾萬行或十幾萬行(不包括被審查范圍相關(guān)的程序量),審查規(guī)模過于龐大,帶來的開銷和時間周期對于鑒定工作均可能難以承受,因此建議不以代碼審查比例評價測試,關(guān)注代碼審查范圍的選擇原則和理由是否合理、充分。
“軟件裝備”需求復(fù)雜,制約功能的進(jìn)入和狀態(tài)轉(zhuǎn)移的因素很多,有些和具體設(shè)備情況、用戶使用習(xí)慣等有關(guān),需要通過數(shù)據(jù)庫或配置文件加以約束;軟件運(yùn)行流程復(fù)雜,有些功能軟件運(yùn)行路徑長,多個子系統(tǒng)或配置項(xiàng)配合才能完成一個測試用例,對整個系統(tǒng)來講可用較少的測試用例對軟件做較充分的驗(yàn)證,有些功能軟件運(yùn)行路徑短則需要大量的測試用例來覆蓋,因此每百行測試用例的個數(shù)不是衡量測試的唯一標(biāo)準(zhǔn),應(yīng)具體情況具體分析。
4.5重視用戶需求,加強(qiáng)需求管理
用戶需求驅(qū)動的模式?jīng)Q定了“軟件裝備”需求變化大的特點(diǎn),建議加強(qiáng)需求評審和需求變更控制,尤其是在設(shè)計定型過程中嚴(yán)格控制需求變更,對需求改動量、變化內(nèi)容進(jìn)行分析;測試需求應(yīng)根據(jù)軟件需求的變更及時更新,分析需求變更對已有需求的影響,及時調(diào)整測試內(nèi)容;加強(qiáng)需求評審,一項(xiàng)需求改動應(yīng)將與該需求相關(guān)的總體人員、軟件設(shè)計師、測試人員聚到一起,對需求進(jìn)行評審并提交詳盡的軟件更改單,詳細(xì)描述更改原因、更改內(nèi)容及影響域分析、驗(yàn)證措施。
4.6嚴(yán)格控制重用/ 外購軟件質(zhì)量
針對“軟件裝備”構(gòu)成系統(tǒng)的成分較復(fù)雜的特點(diǎn),建議研制單位在系統(tǒng)研制伊始應(yīng)確保共用軟件配置項(xiàng)的質(zhì)量,選擇已通過鑒定測評的成熟軟件,或安排專門的鑒定測評,共用軟件的質(zhì)量風(fēng)險應(yīng)在鑒定測評開展之前排除,鑒定測評開展時研制主管部門和定辦協(xié)商明確鑒定測評的范圍,規(guī)定非測評范圍的軟件的使用原則和發(fā)現(xiàn)問題的處理方法和通報途徑;對于多個系統(tǒng)或子系統(tǒng)共用的構(gòu)件/ 軟件,應(yīng)嚴(yán)格配置管理和配管檢查機(jī)制,避免造成型號內(nèi)版本不一致的情況。在嚴(yán)格配置管理的前提下,可在某個子系統(tǒng)中對共用的構(gòu)件/ 軟件進(jìn)行全面測試,其他子系統(tǒng)直接采信結(jié)果[4] 。
5結(jié)束語
軟件測試在保障軟件質(zhì)量方面起發(fā)揮著重要作用,通過軟件測試發(fā)現(xiàn)并彌補(bǔ)的軟件缺陷非常多。在鑒定評測中若能從管理要求、測試技術(shù)、測試流程、測試策略等方面進(jìn)行不斷改進(jìn)與完善,必能更好保證鑒定測評的質(zhì)量,從而為指揮自動化軟件質(zhì)量提供更大保障。