周云卿,李 鋒,顧 濤,馬 斌
(西北機(jī)電工程研究所,陜西咸陽(yáng) 712099)
某火炮武器系統(tǒng)電氣控制軟件測(cè)試實(shí)踐
周云卿,李 鋒,顧 濤,馬 斌
(西北機(jī)電工程研究所,陜西咸陽(yáng) 712099)
針對(duì)火炮武器系統(tǒng)軟件的特點(diǎn),利用Testbed和RTInsight搭建了嵌入式實(shí)時(shí)系統(tǒng)的軟件測(cè)試平臺(tái),通過將Testbed軟件測(cè)試工具的靜態(tài)分析與代碼插裝技術(shù)和RTinsight實(shí)時(shí)數(shù)據(jù)采集分析設(shè)備相結(jié)合的方式,以某火炮電氣控制軟件為測(cè)試實(shí)例,對(duì)其進(jìn)行了靜態(tài)分析、文檔審查與動(dòng)態(tài)測(cè)試。為提高火炮武器系統(tǒng)軟件的測(cè)試效率和有效性提供了借鑒方法。實(shí)踐表明,此方法對(duì)提高火炮武器系統(tǒng)軟件的質(zhì)量及可靠性具有實(shí)際的應(yīng)用價(jià)值。
計(jì)算機(jī)應(yīng)用;火炮,嵌入式軟件測(cè)試;靜態(tài)分析
隨著武器裝備技術(shù)的不斷更新和發(fā)展,嵌入式系統(tǒng)已應(yīng)用到武器裝備的各個(gè)層面。嵌入式軟件作為嵌入式應(yīng)用的核心,為武器系統(tǒng)提供了各種控制、計(jì)算與管理功能,其復(fù)雜度越來越高、規(guī)模越來越大。因此,嵌入式軟件的質(zhì)量與可靠性往往決定著武器裝備的質(zhì)量和作戰(zhàn)效能。以軟件測(cè)試工作為切入點(diǎn),嚴(yán)格按照GJB5000的相關(guān)規(guī)范,在武器裝備研發(fā)過程中貫徹軟件工程化的思想,是保證軍用軟件產(chǎn)品高可靠性的有效措施[1]。
本文通過研究軟件測(cè)試技術(shù)在火炮武器系統(tǒng)軟件測(cè)試中的應(yīng)用,以某型火炮武器電氣控制軟件為測(cè)試實(shí)例,對(duì)火炮武器系統(tǒng)軟件測(cè)試的內(nèi)涵、測(cè)試策略及方法進(jìn)行了探討。
某火炮軟件系統(tǒng)由隨動(dòng)系統(tǒng)、火控系統(tǒng)、導(dǎo)航系統(tǒng)、電氣控制、任務(wù)終端和初速測(cè)量雷達(dá)等軟件組成,通過CAN2.0總線進(jìn)行信息的交互。被測(cè)系統(tǒng)運(yùn)行于電氣控制系統(tǒng)中,是全炮電氣控制系統(tǒng)中的重要組成部分,主要完成隨動(dòng)系統(tǒng)高低方位驅(qū)動(dòng)器的供電和與全炮電氣控制系統(tǒng)的信息交互。系統(tǒng)采用8051系列單片機(jī),編程語(yǔ)言為8051 C語(yǔ)言,仿真器采用偉福SP51,系統(tǒng)結(jié)構(gòu)與被測(cè)系統(tǒng)連接方式如圖1所示。
軟件測(cè)試工作開始階段需確定測(cè)試范圍、測(cè)試項(xiàng)目和制定測(cè)試方法。根據(jù)被測(cè)軟件的特點(diǎn)和組成。首先應(yīng)對(duì)代碼進(jìn)行靜態(tài)分析,按照國(guó)軍標(biāo)的相關(guān)規(guī)范標(biāo)準(zhǔn)對(duì)被測(cè)代碼進(jìn)行相關(guān)的靜態(tài)技術(shù)分析,包括代碼走查、代碼審查以及質(zhì)量度量標(biāo)準(zhǔn)分析等。
在此基礎(chǔ)上,對(duì)部分重要模塊進(jìn)行單元測(cè)試,以驗(yàn)證重要模塊功能與實(shí)現(xiàn);接下來的集成測(cè)試中,則對(duì)各模塊之間的關(guān)聯(lián)性予以驗(yàn)證。
最后對(duì)配置項(xiàng)進(jìn)行軟件需求規(guī)格中所要求的需求點(diǎn)的測(cè)試,并對(duì)所提交的文檔按照完整性、一致性和準(zhǔn)確性來進(jìn)行檢查,對(duì)其與代碼設(shè)計(jì)中實(shí)現(xiàn)的功能追逐關(guān)系進(jìn)行梳理。在相關(guān)問題修改后,需對(duì)問題更改單中所變動(dòng)的部分進(jìn)行回歸測(cè)試[2]。
Testbed是為應(yīng)用軟件的確認(rèn)和驗(yàn)證提供源代碼測(cè)試和分析的質(zhì)量控制工具,不僅適合于主機(jī)平臺(tái)軟件測(cè)試,同時(shí)也適合于嵌入式平臺(tái)的軟件測(cè)試,支持多種開發(fā)語(yǔ)言。RTInsight是一款定時(shí)硬件數(shù)據(jù)采集設(shè)備,它通過與被測(cè)試系統(tǒng)的總線連接實(shí)時(shí)監(jiān)控系統(tǒng)的總線讀寫情況,配合 Testbed使用實(shí)現(xiàn)覆蓋率分析,時(shí)間性能分析等功能。依據(jù)被測(cè)軟件的運(yùn)行及開發(fā)環(huán)境,采用主機(jī)/目標(biāo)機(jī)的測(cè)試方式搭建測(cè)試環(huán)境[3],如圖2所示。
使用Testbed進(jìn)行靜態(tài)分析后,工具可提供:代碼評(píng)審報(bào)告;度量報(bào)告;線性代碼序列和跳轉(zhuǎn)覆蓋報(bào)告(LCSAJ)以及靜態(tài)調(diào)用圖和控制流圖等。依據(jù)報(bào)告進(jìn)行了代碼審查、靜態(tài)質(zhì)量分析和代碼走查等工作。在代碼審查中參照GJB 5369-2005中強(qiáng)制項(xiàng)的要求對(duì)源程序進(jìn)行檢查,對(duì)不符合項(xiàng)進(jìn)行人工篩選以《問題報(bào)告單》的形式進(jìn)行記錄;代碼靜態(tài)質(zhì)量分析主要對(duì)文本度量、注釋度量、扇如數(shù)、扇出數(shù)、圈復(fù)雜度、基本圈復(fù)雜度、出口度量和不可達(dá)語(yǔ)句等項(xiàng)進(jìn)行檢查,涉及到局部變量與函數(shù)參數(shù)時(shí)需進(jìn)入源程序內(nèi)進(jìn)行檢查,并進(jìn)行記錄。最后,代碼走查則根據(jù)前兩項(xiàng)檢查的結(jié)果采用人工方式對(duì)所發(fā)現(xiàn)的問題予以分析確認(rèn),并對(duì)問題進(jìn)行錯(cuò)誤嚴(yán)重程度劃分。
根據(jù)GJB 2786A-2009《軍用軟件開發(fā)通用要求》、GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》及軟件開發(fā)過程質(zhì)量管理等方面的規(guī)定,對(duì)軟件需求規(guī)格說明書、軟件開發(fā)計(jì)劃書等進(jìn)行審查。軟件需求規(guī)格說明書中主要對(duì)需求內(nèi)容是否滿足產(chǎn)品技術(shù)協(xié)議書或軟件研制任務(wù)書的要求,質(zhì)量要求是否滿足系統(tǒng)定義,是否明確了對(duì)軟件可靠性和安全性的要求,是否明確了對(duì)軟件的維護(hù)性的要求等進(jìn)行了檢查;軟件開發(fā)計(jì)劃書中則主要對(duì)軟件開發(fā)階段劃分是否明確,計(jì)劃是否明確、合理、可行和軟件配置管理的要求是否明確等進(jìn)行檢查。文檔審查采用文檔審查單的形式,在測(cè)試需求分析與策劃階段即開始對(duì)文檔的相關(guān)審查內(nèi)容進(jìn)行記錄匯總,形成文檔審查報(bào)告[4]。
4.3.1 RTInsight的硬件鏈接
由于8051系列CPU地址總線和數(shù)據(jù)總線復(fù)用的特殊性,RTInsight無法將CPU的地址總線分離出來。因此,RTInsight與被測(cè)系統(tǒng)間需要連接一個(gè)仿真器,其作用是將地址總線從CPU內(nèi)部引出。在進(jìn)行連接時(shí),由于系統(tǒng)程序是固化在CPU內(nèi)部存儲(chǔ)器中的,CPU在進(jìn)行指令讀寫時(shí)其外部總線上不會(huì)產(chǎn)生相應(yīng)的信號(hào)。結(jié)合測(cè)試時(shí)系統(tǒng)使用的SP51仿真器,經(jīng)過分析,需將RTInsight Probe置于仿真器的CPU與主板之間,才能完成相關(guān)信息的監(jiān)控[5]。其連接方式如圖3所示。
4.3.2 覆蓋率測(cè)試
采用Bitmap插裝技術(shù)可將插裝代碼對(duì)軟件執(zhí)行率的影響減到最小,其原理為:將插裝后代碼在目標(biāo)機(jī)運(yùn)行時(shí)的相應(yīng)特征信息存放到一個(gè)固定大小的數(shù)組中,當(dāng)需要對(duì)覆蓋率信息進(jìn)行分析時(shí),通過開發(fā)調(diào)試環(huán)境讀取數(shù)組中的內(nèi)容提供給Testbed進(jìn)行覆蓋率分析。覆蓋率信息對(duì)應(yīng)一個(gè)bitmaparr[] 數(shù)組,定義為 unsignedintbitmaparr[(qqqbranches/8)+1]。其中qqqbranches為程序的分支數(shù)且該數(shù)組的大小也由分支數(shù)決定。當(dāng)代碼插裝完成下載到目標(biāo)機(jī)運(yùn)行后,插裝點(diǎn)所形成的覆蓋信息將被寫入數(shù)組 bitmaparr[]中,代碼為bitmaparr[((i一 1)/8)]I=(1<<((i一1)%8));式中:i為分支的索引[6],代碼部分如圖4所示。
在程序的運(yùn)行過程中,從Rtview上可以清晰地觀察到語(yǔ)句覆蓋率、分支覆蓋率和調(diào)用覆蓋率的動(dòng)態(tài)分布過程。此外,還可精確地查看到哪些語(yǔ)句、分支被執(zhí)行,哪些函數(shù)被調(diào)用;如圖5所示。
4.3.3 性能分析
利用平臺(tái)提供的性能分析手段可分析記錄程序中每個(gè)函數(shù)的最大運(yùn)行時(shí)間,最小運(yùn)行時(shí)間,總的運(yùn)行時(shí)間以及運(yùn)行次數(shù),或者任意兩點(diǎn)間的運(yùn)行時(shí)間。對(duì)本次被測(cè)軟件時(shí)間性能分析結(jié)果如圖6所示。
靜態(tài)測(cè)試中多數(shù)的錯(cuò)誤是由編程人員的不良編程習(xí)慣造成,例如:不匹配的參數(shù)、不適當(dāng)?shù)难h(huán)嵌套和未使用的變量空指針等。只要編程人員養(yǎng)成良好的編程習(xí)慣就可解決此類錯(cuò)誤。
覆蓋率測(cè)試中,首次測(cè)試覆蓋率并未達(dá)到預(yù)期的效果,分析其原因是:測(cè)試用例設(shè)計(jì)不夠所致,根據(jù)結(jié)點(diǎn)覆蓋信息重新對(duì)測(cè)試用例進(jìn)行了補(bǔ)充之后再次進(jìn)行測(cè)試,相關(guān)覆蓋率達(dá)到了要求;性能分析方面,考慮到代碼插裝對(duì)其性能的影響,在插裝對(duì)系統(tǒng)實(shí)時(shí)性影響不大的情況下,可采用RTInsight所自帶的性能分析軟件進(jìn)行分析。反之,則需采取其他手段,如利用系統(tǒng)仿真器所具有的性能監(jiān)測(cè)功能進(jìn)行相關(guān)分析。
靜態(tài)分析通過采用人工和工具輔助的手段不但可以提高測(cè)試效率,測(cè)試結(jié)果還可以圖文的方式方便地給出,使測(cè)試人員在較短的時(shí)間對(duì)被測(cè)軟件有一個(gè)大概的了解,從而根據(jù)測(cè)試結(jié)果確定需要重點(diǎn)分析和走查的內(nèi)容,為軟件編寫人員的修改提供了參考。
覆蓋率測(cè)試是嵌入式軟件測(cè)試的難點(diǎn),針對(duì)嵌入式軟件系統(tǒng)的軟硬件資源相對(duì)缺乏、覆蓋測(cè)試數(shù)據(jù)難以采集和代碼插裝對(duì)執(zhí)行效率的影響等特點(diǎn),采用Testbed結(jié)合RTInsight的方式使測(cè)試人員可監(jiān)視和分析到已測(cè)或未測(cè)、覆蓋或未覆蓋的語(yǔ)句和分支,在必要時(shí)通過覆蓋信息啟發(fā)測(cè)試人員補(bǔ)充測(cè)試用例以達(dá)到測(cè)試的充分性。通過使用多種測(cè)試技術(shù)與手段相結(jié)合的方法使火炮型號(hào)軟件的編程更加規(guī)范,為軟件的后續(xù)測(cè)試、系統(tǒng)驗(yàn)收和交付打下了堅(jiān)實(shí)的基礎(chǔ),對(duì)保證火炮武器系統(tǒng)軟件的質(zhì)量和可靠性具有非常重要的現(xiàn)實(shí)意義。
References)
[1]李鋒,溫波,張洪海,等.武器研發(fā)過程軟件工程化實(shí)施研究[C].見:兵器裝備信息化、智能化技術(shù)發(fā)展與應(yīng)用論文集.北京:中國(guó)兵工學(xué)會(huì)計(jì)算機(jī)技術(shù)與應(yīng)用專業(yè)委員會(huì),2009:235-239.
LI Feng,WEN Bo,ZHANG Hong-hai,et al.Weapons research and development process of the implementation of software engineering[C].In:A Release Notes of The Developing and Application of Digitization and IntelligentizeofOrdnanceArming.Beijing:Computer Technology and Applications Speciality Committee of China Ordnance Society,2009:235-239.(in Chinese)
[2]池云.嵌入式軟件測(cè)試研究[J].中國(guó)科技信息,2009(2):80-81.CHI Yun.Application of software test of embedded software Test[J].China Seicen and Technology Information,2009(2):80-81.(in Chinese)
[3]丁旭,崔吉崗,劉春裕.軍用嵌入式軟件結(jié)構(gòu)覆蓋測(cè)試技術(shù)[J].指揮控制與仿真,2008,30(3):120-122.
DING Xu,CUI Ji-gang,LIU Chun-yu.Test technology of procedure structure cover for military embedded software[J].Command Control&Simulation,2008,30(3):120-122.(in Chinese)
[4]高衛(wèi)兵.嵌入式軟件測(cè)試及軍檢驗(yàn)收[J].現(xiàn)代電子工程,2004(4):52-57.
GAO Wei-bing.Embedded software testing and military test collection[J].M odern Electronic Engineering,2004(4):52-57.(in Chinese)
[5]杜延,劉從越.嵌入式實(shí)時(shí)系統(tǒng)軟件測(cè)試實(shí)踐[J].微計(jì)算機(jī)信息,2006,22(9-2):31-33.
DU Yan,LIU Cong-yue.Testing method for embedded realtime system software[J].Control&Automation,2006,22(9-2):31-33.(in Chinese)
[6]陳策,趙春霞,趙紹彩.TESTBED在某型高炮火控軟件測(cè)試中的應(yīng)用[J].測(cè)試技術(shù)學(xué)報(bào),2009,23(2):123-128.
CHEN Ce,ZHAO Chun-xia,ZHAO Shao-cai.Application of testbed to fire control software test of certain antiaircraft artillery[J].Journal of Test and Measurement Technol,2009,23(2):123-128.(in Chinese)
Test Practice of Electric Control Software of A Certain Gun Weapon System
ZHOU Yun-qing,LI Feng,GU Tao,MA Bin
(Northwest Institute of Mechanical&Electrical Engineering,Xianyang 712099,Shaanxi,China)
Aimed at the features of gun weapon system software,a kind of test platform of embedded real-time system software was constructed by use of Testbed and RTInsight.Combined static analysis of Testbed software test tool with code plug-in mounting technologies and devices of RTInsight real-time data acquistion and analysis,taking the electric control software of a certain gun system as an actual test example,its static analysis,document examination and dynamic test were carried out.The results of study can provide reference method for improving test efficiency and validity of gun weapon system software.The practice showed that this method has actual application value for improving quality and reliability of gun weapon system software.
computer application;gun;embedded software test;static analysis
TJ306
A
1673-6524(2010)04-0028-04
2010-05-21;
2010-07-12
周云卿(1981-),男,碩士研究生,主要從事計(jì)算機(jī)軟件工程研究。E-mail:jayyunqing333@163.com