軟件可靠性仿真測試平臺實時技術研究
軟件可靠性測試是當前軟件技術領域中一個比較熱門的話題,軟件可靠性對整個系統(tǒng)可靠性的影響越來越大,尤其對于航空類系統(tǒng)軟件來說,軟件故障往往是導致系統(tǒng)失敗的主要原因之一。采用模擬被測目標軟件實際運行環(huán)境對軟件進行測試是目前國內(nèi)外一致認為比較理想的軟件測試方法之一。合理設計目標軟件可靠性的運行環(huán)境,較為真實地模擬出被測軟件的真實運行環(huán)境,不但可以檢測到目標軟件運行過程中存在的故障,而且也可以保證測試結果的真實性和置信度。
本文引用地址:http://cafeforensic.com/article/83648.htm本文在介紹軟件可靠性仿真測試平臺的組成及功能的基礎上,以仿真器分系統(tǒng)為例,對平臺在實時測試過程中的一些實現(xiàn)技術進行了研究。
1 仿真測試平臺系統(tǒng)功能及組成框架
整個仿真測試平臺采用分布式結構,由主控機分系統(tǒng)(以下簡稱為主控機)、仿真器分系統(tǒng)(以下簡稱為仿真器)和激勵器分系統(tǒng)(以下簡稱為激勵器)三個分系統(tǒng)組成,各分系統(tǒng)與被測目標軟件的交聯(lián)關系如圖1所示。其中,主控機是測試平臺的控制中心,它負責生成原始測試數(shù)據(jù),向仿真器、激勵器分發(fā)測試用例,協(xié)調(diào)兩個分系統(tǒng)的工作,并根據(jù)測試狀況控制仿真器和激勵器的工作模式。仿真器和激勵器將主控機傳送過來的測試用例數(shù)據(jù),生成真正的目標軟件可以接收的測試用例數(shù)據(jù)傳送給目標系統(tǒng),同時,仿真器和激勵器負責將自身工作狀態(tài)信息和從目標系統(tǒng)得到的測試結果數(shù)據(jù)通過底層網(wǎng)絡實時或非實時地傳送回主控機。
圖1 仿真測試平臺的交聯(lián)關系圖
由于目標軟件由匯編語言寫成,內(nèi)部處理過程較為復雜,所以采用黑盒測試方法。目標軟件的處理周期為25 ms,因此在實時測試過程中,需要每25 ms有一組測試用例數(shù)據(jù)由仿真器通過1553B總線,激勵器通過并口同時輸入給目標軟件。仿真器和激勵器不僅需要每25 ms產(chǎn)生目標軟件的輸入數(shù)據(jù),同步向目標軟件發(fā)送數(shù)據(jù),而且仿真器還能接收目標軟件的輸出,并且對輸出數(shù)據(jù)進行相應的實時處理,如結果數(shù)據(jù)的收集、保存及數(shù)據(jù)的顯示等等。由于整個測試平臺是在非實時、多任務的Win98操作系統(tǒng)上實現(xiàn)的,因此,如何利用Win98的多任務并發(fā)的特性,采用合理的任務調(diào)度策略,在任務處理周期內(nèi),按時完成各種任務,并將多個任務協(xié)調(diào)一致,是整個設計過程中主要應該解決的問題。
在圖1所示的平臺各分系統(tǒng)中,主控機與目標軟件是通過仿真器形成實時閉環(huán)的。仿真器通過測試用例,實時給出目標軟件閉環(huán)運行所需要的交聯(lián)子系統(tǒng)發(fā)出的命令和數(shù)據(jù),使得目標軟件能夠在較為真實的仿真任務剖面和交聯(lián)環(huán)境中運行。因此,仿真器是仿真測試平臺中的一個重要組成部分,仿真器的實時實現(xiàn)方法是整個平臺系統(tǒng)設計的重點。
2 仿真器分系統(tǒng)的功能設計及實時實現(xiàn)技術
2.1 仿真器分系統(tǒng)功能結構
仿真器分系統(tǒng)是個實時任務系統(tǒng),在整個測試過程的運行模式下,需要并發(fā)處理不同的任務,如數(shù)據(jù)實時存盤、提取、交互式顯示、每25 ms驅(qū)動1553B總線等任務,任務調(diào)度涉及到CPU、內(nèi)存、網(wǎng)絡、硬盤、數(shù)據(jù)結構、I/O接口等資源,因而合理調(diào)度各個任務,正確分配其所占用的系統(tǒng)資源,是仿真器測試平臺設計的關鍵之一。
為了提高平臺系統(tǒng)的可靠性和故障快速恢復能力,仿真器采用功能模塊化設計方法。不同任務對應的工作模塊工作相對獨立,可以隨時依據(jù)新技術對相應模塊的軟件算法進行更新和擴充,這種設計易于發(fā)揮Win98的多任務的特性,提高平臺系統(tǒng)實時工作的能力。其中,任務調(diào)度管理模塊是仿真器平臺系統(tǒng)的核心,其他各功能模塊的運行都是在管理調(diào)度模塊的統(tǒng)一管理控制下完成的。它與其他任務的功能模塊之間的邏輯調(diào)用關系如圖2所示。
圖2 任務調(diào)度管理模塊調(diào)用關系
在仿真器設計中,除了必要的網(wǎng)卡(和主控機連接)和MBI卡(和目標系統(tǒng)連接)等硬件設備以外,仿真器的各項功能均是通過軟件來完成的,因而系統(tǒng)軟件設計中采用合理的調(diào)度策略,避免操作系統(tǒng)的缺陷,以實現(xiàn)仿真器的功能。
2.2 仿真器分系統(tǒng)實時實現(xiàn)技術
2.2.1 任務調(diào)度管理模塊
從上面的討論知道,仿真器的實時性是通過仿真器的任務調(diào)度管理模塊實現(xiàn)的。任務調(diào)度管理模塊為仿真器分系統(tǒng)的主控模塊,是分系統(tǒng)的全面管理者。該模塊根據(jù)用戶通過仿真器分系統(tǒng)人機接口界面輸入的參數(shù)、顯示過程的控制命令和主控機通過網(wǎng)絡傳送來的控制命令及參數(shù),對并發(fā)執(zhí)行的實時自檢/維護、網(wǎng)絡通信、交聯(lián)仿真數(shù)據(jù)生成、數(shù)據(jù)/狀態(tài)顯示、數(shù)據(jù)記錄、交聯(lián)數(shù)據(jù)驅(qū)動、測試過程分析以及仿真器不同功能模式對應的任務隊列進行管理和調(diào)度,協(xié)調(diào)各模塊的工作,進行各模塊的銜接,實現(xiàn)各線程的管理,完成與目標系統(tǒng)實時交聯(lián)仿真任務。
2.2.2 仿真器分系統(tǒng)任務劃分
由于仿真器分系統(tǒng)是用于目標軟件的實時仿真測試,每個任務都必須根據(jù)目標軟件運行的需要,滿足實時交聯(lián)仿真的定時限制,所以,為保證仿真器的實時性能,根據(jù)任務和平臺系統(tǒng)工作模式的不同,在調(diào)度框架中集中不同的調(diào)度策略,任務調(diào)度涉及到實時任務和普通分時任務的調(diào)度。
評論