?

嵌入式軟件開發中的軟件測試流程

2016-12-26 11:12陳天樂李海峰
電子技術與軟件工程 2016年22期
關鍵詞:嵌入式流程軟件

陳天樂++李海峰

摘 要

軟件測試工作是軟件開發過程的一個重要組成部分。在軍品嵌入式軟件開發過程中,特別是在并行工程中,無法按常規的軟件工程方法開展軟件測試工作,需對軟件測試工作流程重新進行策劃和設計,以適應軍品嵌入式軟件開發過程的特殊性。本文提出了嵌入式軟件開發過程軟件測試流程的一種思路。

【關鍵詞】嵌入式 軟件 測試 流程

隨著軟件規模和結構復雜度的提高,軟件開發過程存在的問題逐年上升,在近幾年的軍品軟件研制過程中,軟件開發過程延期、經費開支超出預算等情況比比皆是,甚至出現項目失敗的極端情況,交付產品存在的軟件缺陷和軟件質量問題也時常出現。軟件開發過程質量控制已成為系統中風險最大的問題。近年來,軟件工程方法在軍品軟件開發過程中的重要性逐步被人們所認識,其中重要的一項質量控制手段就是由專門的軟件測試人員開展的獨立于開發部門的軟件測試工作。通過軟件測試來發現軟件開發過程中的缺陷和問題,并通過各種軟件缺陷和問題的解決以及相應的回歸測試來提高軟件質量。實踐證明軟件測試工作是提高軟件質量水平的一種十分有效的方法。

由于軍品實時處理等特殊性,嵌入式軟件越來越多地用于軍用裝備中。嵌入式軟件開發過程是一個軟硬件相互支持相互作用的復雜過程,系統軟件功能和性能的實現與硬件功能和性能的實現是捆綁在一起的,且當前軍品研制過程大部分采取的是并行工程,軟件開發過程中硬件平臺開發過程同步進行,有時甚至軟件編碼完成時硬件還未完成研制?,F有的軟件測試程序和辦法主要針對的硬件平臺明確的獨立軟件產品,不能很好地解決嵌入式系統中軟件硬件功能實現上相互作用的問題。因此需針對軍品開發特點進一步明確嵌入式軟件開發過程中軟件測試工作的流程、要求和規范,以適應軍品并行工程中嵌入式軟件開發過程的特殊性。

1 嵌入式軟件的特點

嵌入式系統開發過程通常是先分別進行軟硬件的獨立開發,硬件部分獨立開發形成裸機平臺,軟件部分獨立進行單元、部件、配置項開發編程,硬件平臺測試通過后,將相應開發的軟件在該硬件平臺上進行集成,開展各項功能和性能調試。

在嵌入式系統開發過程中底層驅動程序、操作系統和應用程序的界線是不清晰的,根據需要甚至混編在一起。系統功能和性能要求必須在軟硬件共同作用下才能實現,因此嵌入式軟件開發過程是軟硬件之間相互協調、互相反饋和互相測試的過程。同時由于嵌入式系統中軟件對硬件的依賴性,軟硬件開發各項功能和性能要求的實現需軟件和硬件結合才能得到結果,這就使得嵌入式軟件功能和性能的實現與外部硬件和設備聯系緊密,在大部分情況下嵌入式軟件缺乏繼承性,軟件與硬件形成一對一的關系,隨著硬件的不斷升級,必須不斷地重新開發相應的軟件。造成軟件編程工作量大,繼承性差,另一方面,由于硬件更新速度快,又存在著軟件編制過程中缺乏硬件平臺支持的問題,往往軟件編程完成時硬件還在研發過程中,軟件編程完成后還不能確定是否能實現產品的功能和性能要求,需要在硬件平臺上完成相互的聯調測試后才能最終確定嵌入式系統基本的功能、性能要求是否能實現。

2 軟件測試過程中遇到的問題

從預防為主的角度出發,軟件測試工作開展得越早對軟件的質量控制越有利。

傳統的軟件測試工作分為單元測試、部件測試、配置項測試、系統集成測試四個層次,對可以脫離硬件平臺的純軟件產品,這一測試方法無疑是可以實現的,但在嵌入式軟件開發過程中,如何開展軟件測試工作遇到了一些問題,主要問題有:

(1)在嵌入式軟件開發過程中,由于產品功能性能的實現是軟硬件相互結合的過程,在軟硬件結合過程中會根據軟硬件的實際情況進行大量的調整,在沒有通過硬件平臺驗證以前單純對軟件進行正式合格性測試是沒有意義的,但在貫徹預防為主的軟件質量管理過程中又要求盡早安排軟件測試工作,如何協調這一矛盾需要進一步的明確。

(2)對于重大修改或新研設備,由于算法、功能、性能要求沒有在實際平臺上進行驗證,產品功能性能需進一步驗證,其新開發的軟件一些算法、性能需要在整機功能性能試驗期間確定、驗證;另一方面在C3I等控制軟件開發過程中,由于各設備與指控中心均為獨立開發,往往由于對接口協議理解的不一致性或協議的周全性不夠,在系統對接聯調過程中對軟件進行較大改動,用早期的軟件版本進行測試對實際軟件質量起不到太大作用。

(3)在軟件測試工作中單元測試、部件測試、配置項測試、系統集成測試等,每項測試中均包含有功能測試和性能測試內容,但在嵌入式軟件實際開發過程中由于絕大多數裝備在軟件開發過程中只有單臺套裝備,沒有測試平臺,因此對嵌入式系統軟件的功能測試和性能測試的安排在實際工作中無法實現,造成了諸多矛盾。

種種矛盾和問題使嵌入式軟件測試成了無從下手的死循環:一方面要求軟件必須經過單元、部件和配置項測試才能與硬件結合開展調試工作,另一方面由于軟件單元、部件和配置項沒有裝入硬件實際平臺的測試,又無法最終確認軟件的功能性能是否符合要求,無法完成軟件測試工作。

3 對嵌入式軟件開發過程軟件測試工作的過程分解

為解決這一問題,在貫徹海軍裝備軟件質量管理要求和軟件質量測試實施細則過程中,本著預防為主、實事求是的原則,針對嵌入式軟件開發的特殊情況,綜合考慮測試成本、時間、有效性,重新明確軟件測試階段與硬件研制階段的對應關系,在軟件開發過程中,根據軟件開發過程實際情況,在承制單位軟件測試工作中軟件測試內容重新劃分,打破單元、部件、配置項測試界限,各類測試不一刀切,各部分交叉分批進行,以推進軟件測試工作的進展,提高軟件開發質量水平和過程控制能力。

具體方法和思路:

(1)對軟件測試項目分類,打破原先單元、部件、配置項測試的過程模式,除按軟件測試要求中將軟件測試工作分為單元測試、部件測試、配置項測試、系統集成測試四個過程外,再將單元測試、部件測試按靜態測試、動態測試兩部分進行區分,具體分類見表1。

(2)對單元測試、部件測試中凡能脫離硬件平臺進行的軟件測試工作,如文檔審查、代碼審查等,統稱為靜態測試,這部分測試內容均應盡量安排在軟硬件聯調前進行并完成回歸。

(3)對在單元測試、部件測試中需結合硬件真實環境進行測試的內容如性能測試等,統稱為動態測試,這部分測試內容根據設備是否存在硬件平臺,是否屬成熟產品等實際情況,可以安排在前期進行,也可與配置項測試、系統集成測試內容一起安排在軟硬件調試完成,通過相關試驗驗證功能性能達到要求后開始。

各部分軟件測試工作具體開展時機見表2。

4 結語

要做好嵌入式軟件測試工作,即要貫徹預防為主的方針,按軟件工程的方法開展軟件開發和測試工作,又要綜合考慮軟件測試的成本、進度、風險、有效性等因素,以保證測試的可靠性。在實際工作中我們根據實際產品特點和軟件開發過程,對通用的軟件測試過程重新進行了分解和細化,將事前預防和提高軟件測試質量,減少重復性勞動,提高工作效率等有機地結合起來,我們認為這會有助于進一步縮短開發時間,減少開發成本,進一步提高軍品軟件質量水平。

作者單位

1.海軍駐南京九二四廠軍事代表室 江蘇省南京市 211100

2.海軍駐北京地區電子設備代表室 北京市 100000

猜你喜歡
嵌入式流程軟件
禪宗軟件
吃水果有套“清洗流程”
軟件對對碰
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
本刊審稿流程
析OGSA-DAI工作流程
談軟件的破解與保護
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合