新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 嵌入式軟件系統測試中的仿真系統結構設計

        嵌入式軟件系統測試中的仿真系統結構設計

        作者: 時間:2013-11-11 來源:網絡 收藏


        (4)樁模塊為提供各種必要的輸入數據。的正常運行需要必要的外界輸入數據,以完成系統的正常運行和交互。無論這些輸入數據通過什么方式提供,樁模塊都應該為模擬各種輸入數據。對于系統測試來說,輸入數據也應該包括正常數據和非法數據兩種。

        (5)分析模塊包括測試結果、預期結果和故障模型三部分。測試結果為執行測試用例以后被測軟件執行的結果;預期結果為測試開始之前,測試人員針對不同測試用例輸入的預期結果;故障模型中包括對各種故障的定位。故障模型在一個測試結束后,積累的錯誤定位模型可以通過外部接口導出,既可以用作其他測試系統的故障模型,也可以導出Word或Excel文件,用于開發人員進行分析總結。

        分析模塊在得到測試結果以后,首先與預期結果比較。如果相同,則測試通過;否則在故障模型中搜索相應的故障,并定位故障。如果故障模型中沒有相應的錯誤定位,分析模塊直接將未通過測試的測試結果和測試用例反饋給測試人員,由測試人員進行定位。當錯誤定位以后,測試人員根據測試實例修改故障模型,增加錯誤判斷事件。通過不斷循環,故障模型部分的各種故障定位逐漸增加,在不斷學習過程中實現錯誤定位。

        (6)人機界面用于各種數據、結果的輸入和顯示,以及交互操作的人工輸入界面。

        3 鐵路微機聯鎖系統測試

        被測鐵路微機聯鎖2乘2取2系統運行在CPU(486DX)上,屬于典型的嵌入式軟件。邏輯圖如圖3所示。


        被測嵌入式軟件運行在圖3中A系和B系的CPU中,通過以太網接收人工下達的聯鎖命令,經過處理后通過DP協議網絡傳輸給輸出模塊,控制現場設備。A、B系中只能以一個系為主系,主從系的切換可以通過手動切換實現,也可以自動切換。

        3.1 測試實施

        測試實施之前,首先編制測試用例,并針對每個測試用例給出預期結果和可能產生的錯誤以及相應錯誤的故障定位。把這些數據輸入的分析模型中,為即將進行的測試工作做準備。

        在測試實施過程中,首先利用此按照第一類測試方法進行測試,驗證鐵路聯鎖2乘2取2系統被測軟件是'工作的',也就是軟件的功能是按照預先的設計執行的。然后按照第二類測試方法進行測試,驗證軟件是不工作的。

        使用仿真系統設計并實施了很多在實際軟硬件環境中不可能實現的測試用例。舉例說明如下:

        (1)非法數據的輸入。正常運行的系統,操作人員不可能發送錯誤的聯鎖命令給被測軟件,輸入模塊也不可能產生測試需要的各種非法輸入數據。使用仿真系統的驅動模塊和樁模塊,可以很輕松地發送任何組合形式的非法數據,以測試鐵路聯鎖2乘2取2系統被測軟件的安全性。結合分析模塊的使用,具體實施過程為:
        通過人機界面輸入超長非法測試數據6,244,244,80,0,17,1,0,80,0,255,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0給被測軟件,預期結果為無測試結果數據返回,即嵌入式軟件將非法數據過濾掉,不進行任何操作。仿真系統通過人機界面提示測試通過,實際情況也確實是微機聯鎖系統未進行任何操作,便將超長的非法數據過濾了。通過人機界面輸入固定碼的非法測試數據170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,預期結果為無測試數據返回,即嵌入式軟件將非法數據過濾,不進行任何操作。仿真系統通過人機界面提示測試通過,而實際情況是微機聯鎖單元出現了死機現象。針對這種情況,修改預期結果內容為“無測試數據返回且與被測應用軟件正常通訊”,而在故障模型中增加了“與被測應用軟件無任何通訊”項,以修正仿真系統的錯誤定位為微機聯鎖單元死機。同理也要修改前面超長非法測試數據的預期結果和故障模型的內容。如此反復,仿真系統的分析模型也在不斷完善中。

        (2)通信容量測試。鐵路聯鎖2乘2取2系統被測軟件中的基本功能包括系統通信最大I/O模塊總數為100。在正常測試過程中,一般無法為測試搭建如此大規模的硬件測試環境,即使可以搭建,也會因為性價比較低而不實施此項測試。使用仿真系統,可以通過樁模塊和驅動模塊輕松實現100個I/O模塊的通信量,同時可以省去購置I/O硬件模塊的費用。

        (3)鐵路聯鎖系統軟件需要滿足IEC61508標準[4]中SIL4的要求。通過仿真軟件驅動模塊重復發送聯鎖命令,可以很容易地測試鐵路聯鎖2乘2取2系統中的軟件是否滿足SIL4的要求,而這些測試如果單純用人工輸入進行測試是不可能實現的。交互操作模塊則可以在測試過程中完成軟件與人必需的交互操作功能。

        被測軟件第一次測試結束后,開發人員根據仿真系統的錯誤定位集中修改軟件中的BUG,然后提交進行第一次回歸測試。經過在第一次測試中人機交互的不斷完善,仿真系統的分析模型趨于成熟,在回歸測試過程中能很快定位錯誤,為測試及開發人員節省了大量時間,縮短了軟件開發周期。

        3.2 測試結果

        通過使用仿真系統對鐵路聯鎖2乘2取2系統被測軟件實施測試,共發現涉及軟件故障安全原則的致命問題和嚴重問題10個,涉及軟件漏洞安全的致命問題和嚴重問題5個,涉及功能未實現的致命問題和嚴重問題6個,涉及可靠性的致命問題1個,一般和提示問題30個。

        針對嵌入式軟件的特點提出的具備交互式錯誤檢測定位功能的仿真系統架構模型,實現了在系統測試過程中檢測定位軟件錯誤,解決了嵌入式軟件系統測試過程中,由于被測程序與嵌入式系統平臺和底層程序融合在一起,錯誤不容易定位的問題。通過在鐵路微機聯鎖測系統試項目中的應用,發現了很多關鍵性問題,并且為測試人員和開發人員節省了大量時間,加快了測試進度,在回歸測試階段表現尤為明顯。事實表明,此仿真系統架構模型不僅可以應用于嵌入式軟件的系統測試,也可以應用于非嵌入式軟件的黑盒測試。在以后的研究中,將應用人工智能學科的學習理論,實現仿真系統分析模塊的自動學習功能,以實現在測試過程中自動定位軟件錯誤,而無需人工干預。

        熱式質量流量計相關文章:熱式質量流量計原理
        流量計相關文章:流量計原理

        上一頁 1 2 下一頁

        關鍵詞: 嵌入式軟件 仿真系統 結構設計

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大新县| 普陀区| 靖边县| 苍山县| 定西市| 金沙县| 曲阳县| 衢州市| 千阳县| 东平县| 唐山市| 来凤县| 海原县| 巢湖市| 江津市| 留坝县| 林口县| 卢氏县| 清新县| 积石山| 开鲁县| 扎赉特旗| 辉南县| 临西县| 阳泉市| 黑山县| 馆陶县| 阿勒泰市| 阿拉尔市| 叶城县| 尼玛县| 东安县| 宁河县| 雅江县| 公主岭市| 封开县| 麦盖提县| 绥芬河市| 绥中县| 开远市| 高清|