鄭宣佩,李 丹
?
艦船電力推進逆變器軟件測試模型的構建與實現(xiàn)
鄭宣佩,李 丹
(武漢船用電力推進裝置研究所,武漢 430064)
本文分析了艦船電力推進逆變器軟件的特點,討論了經(jīng)典軟件測試模型的特點和優(yōu)缺點,提出了一種適用于艦船電力推進逆變器軟件的新型測試模型;通過在艦船電力推進逆變器軟件開發(fā)的三種模型中的應用,應用結果表明,此軟件測試模型相對于經(jīng)典模型能更好的適用于艦船電力推進逆變器軟件開發(fā)、測試活動,更早地發(fā)現(xiàn)問題,提高軟件的開發(fā)效率。
艦船電力推進逆變器軟件 軟件測試模型
艦船電力推進逆變器通過改變電機定子電流的頻率來實現(xiàn)電機調速[1],由逆變橋、控制電路、濾波電路組成。逆變器軟件是逆變器的核心,是一組燒寫在逆變器各組件控制器上的監(jiān)控軟件,用于監(jiān)視并控制逆變器,使其按實際需求進行電機調速。
艦船電力推進逆變器軟件具有采集精度高、層次多、算法復雜、可靠性安全性要求高、開發(fā)周期短等特點,軟件測試的效率和有效性直接影響到艦船電力推進逆變器的質量和研制進度。
軟件測試和軟件開發(fā)都應遵循軟件工程原理,遵循管理學原理[2]。對于軟件測試模型的探討從未間斷,目前已產生了一些經(jīng)典的測試模型,這些模型對測試活動進行了抽象,明確了測試與開發(fā)之間的關系,成為軟件測試活動的理論依據(jù)[3]。一個好的軟件測試模型,應具有以下特征:
1) 它將測試計劃、測試用例設計、測試執(zhí)行、還有測試結果收集與分析結合在一起;
2) 不同的測試技術,應用于不同的時間點;
3) 使軟件設計中的錯誤盡可能早地暴露[4]。
結合艦船電力推進逆變器軟件特點,本文提出一種艦船電力推進逆變器軟件測試模型。通過在艦船電力推進逆變器軟件開發(fā)、測試中的應用并比對經(jīng)典測試模型,得出本文提出的測試模型能更好的適用于艦船電力推進逆變器軟件開發(fā)、測試活動,更早地發(fā)現(xiàn)問題,提高開發(fā)、測試效率。
經(jīng)典測試模型主要有V模型、W模型、H模型。
V模型又叫RAD模型是軟件測試模型中廣泛應用的一種模型,反映了測試活動與軟件分析和軟件設計之間的關系,如圖1所示,描述了軟件需求分析、軟件概要設計、軟件詳細設計、編碼等基本開發(fā)過程和驗收測試、系統(tǒng)測試、集成測試、單元測試等測試行為及開發(fā)與測試級間對應關系[5]。

圖1 V模型
W模型如圖2所示,在V模型基礎上進行了改進,相對于V模型,增加了軟件開發(fā)各階段中同步進行的驗證和確認活動。W模型的核心在于測試伴隨著整個軟件開發(fā)周期,測試對象不僅有代碼,文檔、設計同樣需要測試。測試與開發(fā)是并行的。

圖2 W模型
H模型如圖3,相對于V模型和W模型,將測試活動完全獨立,形成一個完全獨立的流程。

圖3 H模型
相比較而言,V模型的優(yōu)點在于結構清晰,測試過程和開發(fā)過程各階段一一對應;局限性是各階段順序執(zhí)行不可跨越,編碼后直接進入單元測試,無法測出由需求、設計輸入的缺陷,導致缺陷發(fā)現(xiàn)時機過晚。待系統(tǒng)測試階段測試人員測出需求問題,開發(fā)人員修復缺陷、進行單元測試、集成測試,測試人員進行回歸測試,工作量大增,風險極高。適合于需求明確,技術成熟的項目。
W模型的優(yōu)點在于將測試活動作為開發(fā)活動的一部分,在各個階段將開發(fā)活動與測試活動并行,從而發(fā)現(xiàn)能盡早發(fā)現(xiàn)缺陷;局限性在于每個階段的測試輸入不明,應交付的產品不明,與V模型類似,階段不可跨越。適合于開發(fā)周期較長的項目。
H模型的優(yōu)點在于測試活動獨立,一旦測試條件準備到位就可以開始測試,從而加快項目進度;局限性在于未明確測試活動的切入點,如何與開發(fā)協(xié)調。適合于測試保障到位、對資源要求不高的項目。
艦船電力推進逆變器軟件測試有其專業(yè)特殊性,經(jīng)典測試模型直接移植到艦船電力推進逆變器軟件測試并不完全適用,必須結合軍用軟件測試要求,并將軍用軟件測試流程、測試輸出結合到軟件測試模型中。在軟件測試過程中,必須與艦船電力推進逆變器軟件開發(fā)模型進行融合,而艦船電力推進逆變器軟件開發(fā)模型分通用模型、簡化模型和增量模型。因此,艦船電力推進逆變器軟件測試模型會根據(jù)軟件開發(fā)模型的不同輸出略有不同,具體體現(xiàn)在簡化模型時,配置項測試階段和系統(tǒng)測試階段合并,文檔只輸出一次;其他兩個模型,配置項測試階段和系統(tǒng)測試階段分別獨立,文檔分別輸出。但共同點是:測試活動有獨立于開發(fā)模型的完全、獨立的流程和準則,在項目成立之初平行介入項目開發(fā)各個階段,在介入后,在各個階段明確地對代碼、文檔、設計進行測試,并形成結論、閉環(huán)。每個階段均有明確的輸入、輸出和確認準則。依據(jù)測試流程和準則如圖4所示,在開發(fā)的每個階段,進行測試活動,是一種基于H模型和W模型的測試模型。
艦船電力推進逆變器軟件開發(fā)模型分通用模型、簡化模型和增量模型。
通用模型如圖5所示,其開發(fā)活動按順序執(zhí)行。在需求規(guī)格說明評審后,開始進行軟硬件集成測試計劃的策劃及輸出文檔的編寫。此階段結束后,進入軟件設計階段,針對設計進行單元測試級、集成測試級的測試策劃、測試用例設計,形成單元測試文檔,而編碼活動和測試活動可以同步開始。編碼完成后,依次執(zhí)行單元測試、集成測試、軟硬件集成測試、系統(tǒng)測試等測試活動。
通用模型中,必選的里程碑有兩個,分別為需求里程碑和軟件發(fā)布里程碑,其余可選里程碑時間點可根據(jù)項目的實際情況自行定義。
簡化模型是對通用模型的簡化,主要思想是簡化通用模型,提高開發(fā)交付速度。簡化模型中只需針對軟件非復用部分進行可行性分析與設計,必選的里程碑有兩個,分別為需求里程碑和軟件發(fā)布里程碑,其余可選里程碑時間點可根據(jù)項目的實際情況自行定義。簡化模型流程圖見圖6所示。
增量模型是增量式地進行分析、設計、實現(xiàn)的軟件開發(fā)模型。其特點在于,需求一旦明確一點便可進行設計、編碼、單元測試形成構件,隨著需求的逐步明確,構件分步完成,最終形成組件成軟件系統(tǒng)。增量模型具有過程漸進性。
增量模型開發(fā)過程中,無需等待所有需求都確認,只要某個增量已得到確認且滿足進入下一個階段的條件,就可以進行下一階段的工作。后一個增量所在的開發(fā)階段可能滯后于前一個增量的開發(fā)階段,例如:后一個增量可能正處于需求分析階段,而前一個增量已經(jīng)進入設計階段。所以,各個增量的開發(fā)階段可能存在進度不同或重疊的情況。但是在提交集成測試前,需要將所有增量產生的代碼進行整合。
增量模型的必選的里程碑有兩個,分別為需求里程碑和產品發(fā)布里程碑,其余可選里程碑時間點可根據(jù)項目的實際情況自行定義。增量模型見圖7所示。

圖5 通用模型流程圖
艦船電力推進逆變器軟件開發(fā)模型雖然分為通用模型、簡化模型、增量模型三種,但本質上均基于瀑布開發(fā)模型進行簡化和階段內局部增量,因此屬于瀑布開發(fā)模型。而瀑布開發(fā)模型的特點在于各階段按線性序列組織,每個階段有確認、入口和出口標準[6]。結合測試模型,軟件生命周期分六個階段,分別是系統(tǒng)分析階段、軟件需求分析階段、軟件設計階段、軟件實現(xiàn)和單元測試階段、軟硬件集成測試階段和系統(tǒng)測試階段。其中,軟件實現(xiàn)和單元測試階段集合了軟件單元測試與集成測試,軟硬件集成測試階段的測試對應配置項測試,而系統(tǒng)測試對應于驗收測試。
系統(tǒng)分析階段,測試人員參與到軟件研制任務書的制定。工程方面,測試人員參與到利益相關方與項目負責人間的需求溝通,從測試的角度,對軟件研制任務書的編制,提供源頭上的對需求的理解一致性。在系統(tǒng)分析階段各工程文檔的評審中,依據(jù)測試規(guī)程,按文檔審查要求,從測試的角度對需求漏洞進行檢查并提交,問題未閉環(huán)不得轉階段。
軟件需求分析階段,測試人員工程方面,測試人員參與到項目負責人與軟件項目負責人間的需求溝通。由于測試人員直接從源頭開始跟蹤需求,從測試的角度,對軟件需求規(guī)格說明的編制,進一步提供對需求的理解一致性。與系統(tǒng)分析階段一樣,測試人員依據(jù)測試規(guī)程,按文檔審查要求,從測試的角度對需求漏洞、需求一致性進行檢查并提交問題,問題未閉環(huán)不得轉階段。管理方面,測試人員參與軟件項目的WBS分解,工作量估算,關鍵路徑的確認等,將測試管理活動與軟件開發(fā)活動從計劃的制定開始融合。有效的梳理整個軟件生命周期的流程,確定最優(yōu)的關鍵路徑。從而減少需求變更率,同時提高SPI。

圖6 簡化模型流程圖

圖7 增量模型流程圖
軟件設計階段,測試人員在工程文檔方面的作用與前兩個階段一樣,從文檔上對設計進行漏洞檢查。不同點在于,此階段末,進行配置項級測試策劃,并形成策劃的輸出,明確測試需求、測試項、測試方法及測試進度等。
軟件實現(xiàn)和單元測試階段,按傳統(tǒng)瀑布開發(fā)模型需要等到編碼完成進行單元測試、集成測試。而測試模型在編碼過程中介入,每個單元邊編碼,邊測試,邊回歸。單元一旦達到組合條件,進入集成測試。一旦編碼與測試活動完畢,版本受控,便可進入下一階段,軟硬件集成測試階段。
軟硬件集成測試階段和系統(tǒng)測試階段是獨立的測試活動。此二階段均開始與對前期工程文檔和數(shù)據(jù)的文檔審查,但測試側重點依據(jù)測試規(guī)程不同。后續(xù)的活動按測試流程,進行測試策劃、測試設計、測試執(zhí)行和測試結論。具體活動與H模型同,此處不一一分解。
通過具體實踐,H模型無法直接移植到艦船電力推進逆變器軟件測試活動中,艦船電力推進逆變器軟件測試模型相對于單純的W模型節(jié)省軟件實現(xiàn)和單元測試階段的時間,通過測試與開發(fā)并行,節(jié)省時間近三分之一。后續(xù)的測試活動按H模型,極大地提高了軟件研發(fā)周期。
此測試模型在簡化模型和增量模型中應用,進一步節(jié)省原型、成熟項目的開發(fā)時間。其中,增量模型的測試模型由于設計、編碼、測試活動的進一步整合,開發(fā)周期相對于瀑布開發(fā)模型進一步提高近四分之一。
艦船電力推進逆變器軟件測試模型相對于經(jīng)典模型能更好的適用于艦船電力推進逆變器軟件開發(fā)、測試活動,更早地發(fā)現(xiàn)問題,提高軟件的開發(fā)效率。
[1] R. Krishnan. 永磁無刷電機及其驅動技術[M]. 柴鳳,譯. 2013.
[2] Pressman R S. 軟件工程:實踐者的研究方向[M]. 鄭人杰,馬素霞,譯. 7版. 北京: 機械工業(yè)出版社, 2011.
[3] 王建強,楊欣,張鼎周. 指揮信息系統(tǒng)軟件測試模型構建與應用[J]. 指揮信息系統(tǒng)與技術, 2014,(4): 85-90.
[4] 孟慶鑫, 張龍. 軟件測試模型的探討[J]. 計算機與網(wǎng)絡, 2014,(5): 66-69.
[5] 柳純錄. 軟件評測師教程[M]. 北京:清華大學出版社, 2005.
[6] Kan S H. 軟件質量工程的度量與模型[M]. 王振宇,陳利, 余揚, 譯. 北京: 機械工業(yè)出版社, 2003.
Construction and Realization of Software Testing Model for the Inverter of Electric Propulsion Ship
Zheng Xuanpei, Li Dan
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TM351 TP216
A
1003-4862(2016)10-0001-04
2016-05-06
鄭宣佩(1974-),男,高級工程師。主要研究方向:質量管理。