《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 软件可靠性测试及评估平台的设计与实现
软件可靠性测试及评估平台的设计与实现
2014年微型机与应用第15期
李建军1,2,邵培南1,段晓峰1,晏新晃1,2,赵 辉1,2
1.华东计算技术研究所,上海 2.国家工程软件产品质量监督检验中心
摘要: 设计并实现了软件可靠性测试与评估平台,支持软件可靠性测试用例自动生成,便于可靠性数据收集以及软件可靠性评估和预测,解决了软件可靠性测试难以有效开展的问题。通过与SMERFS预测结果对比,表明本平台对软件可靠性测试与评价具有较强的实用性。
Abstract:
Key words :

  摘  要: 設計并實現了軟件可靠性測試與評估平臺,支持軟件可靠性測試用例自動生成,便于可靠性數據收集以及軟件可靠性評估和預測,解決了軟件可靠性測試難以有效開展的問題。通過與SMERFS預測結果對比,表明本平臺對軟件可靠性測試與評價具有較強的實用性

  關鍵詞: 軟件可靠性測試;軟件可靠性測試平臺;軟件可靠性評估

  隨著軟件核心地位日益突出,軟件越來越影響著整個系統裝備的可用性,軟件失效造成的故障已成為新的焦點,軟件的質量和可靠性已成為制約裝備質量和性能的瓶頸。軟件可靠性是指軟件在規定的條件和時間內正確完成規定功能的能力。開展軟件可靠性的測試和評估工作對于提高武器裝備的軟件質量具有重大意義。軟件可靠性的度量和預測一般是通過軟件可靠性模型來進行的,軟件可靠性模型的應用又是一個很復雜的過程,如果完全用手工來實現這一過程要花費大量的人力物力,還不能保證準確性。我國軟件可靠性測試和評價工作仍處于起步階段,參考文獻[1]、[2]主要分析了關于軟件可靠性測試的研究,大多數還停留在理論上,與國際先進水平相比,還存在很大的差距,因此,迫切需要一個集成的工具來輔助軟件可靠性測試和可靠性模型的應用。

  為此,本文分析了軟件可靠性測試技術,設計并實現了軟件可靠性測試和評估平臺,通過基于UML順序圖的軟件可靠性測試用例生成技術生成測試用例,在執行過程中自動收集軟件可靠性數據,結合軟件可靠性模型進行評估,并通過將評估結果與SMERFS工具相對照,證明了該平臺的有效性,最終為軟件可靠性測試、評價提供了相應的手段。

1 總體架構

  建立軟件可靠性測試與評估平臺,首先要了解軟件可靠性測試的涵義、測試方法和測試過程等,而進行軟件可靠性評估則需選取合適的可靠性指標體系和評估模型。

  軟件可靠性測試是指在軟件的預期使用環境中,為進行軟件可靠性評價而對軟件實施的一種測試。參考文獻[3]指出:為了滿足用戶對軟件的可靠性要求、評價軟件可靠性水平及驗證軟件產品是否達到可靠性要求,開展軟件可靠性測試是一個比較有效的方法。

  當前軟件可靠性測試方法主要有兩種。(1)基于應用場景模型的統計測試方法,其通過定義系統所有的典型應用場景及其發生的概率,然后由該模型生成測試用例;(2)基于操作剖面的可靠性測試方法,其建立由操作集合和所對應的概率組成的操作剖面。由于在目前裝備軟件開發過程中大量使用Rational Rhapsody進行軟件需求建模和軟件設計建模,而且使用UML模型比采用軟件運行剖面更容易獲得。Musa指出,開發一個由任務操作集合和任務操作所對應的概率組成的運行剖面在實際測試工作中不現實。而使用軟件應用場景模型來建立系統的測試模型,可較容易確定軟件所處的狀態和該狀態可能出現的輸入,通過提取等價的輸入序列,可容易歸納出系統中有限的輸入組合[4]。統計測試被稱為最成功的基于模型的軟件測試[5]。本文采用了基于擴展的UML順序圖的應用場景模型測試方法進行可靠性測試。

  軟件可靠性測試與評估的一般過程主要包括:構造測試模型、選取測試用例、測試運行、可靠性測試執行、可靠性故障數據收集、軟件可靠性評估與可靠性增長測試等。

  軟件可靠性測試和評價工作需要根據可靠性指標體系選取合適的軟件可靠性參數,業界提出的較常用的軟件可靠性參數主要包括:估計潛在的缺陷密度、已發現的失效密度、已發現的缺陷密度、平均失效時間(MTBF)、測試覆蓋率、防止失效能力、防止不正確操作能力、特定時間可用性、平均恢復時間及可恢復能力等。

  軟件可靠性測試和評估平臺由軟件可靠性測試控制臺和軟件可靠性測試運行支撐環境組成[6],如圖1所示。

001.jpg

  其中,軟件可靠性測試控制臺主要提供軟件可靠性使用模型建模,基于UML順序圖的可靠性測試用例生成,在根據測試用例生成測試腳本后,由集成的可靠性測試流程協同服務驅動下發給框架代理執行引擎執行,在可靠性測試用例執行過程中,部署在可靠性測試支撐環境中的代理會自動對測試執行結果進行數據收集工作。測試用例執行完畢后對所收集的軟件可靠性數據進行可靠性評估,目前該框架支撐5種類型的軟件可靠性評估模型。另外,測試控制臺提供了軟件失效數據庫和可靠性模型參數庫的功能。

  軟件可靠性測試運行支撐環境主要通過代理(Agent)集合實現在不同的運行平臺(Windows、UNIX和Linux)對可靠性測試用例腳本的執行。

  下面針對主要功能模塊進行說明。

  (1)軟件使用模型建模

  本文平臺采用基于UML2.0規范擴展的UML順序圖結合OCL語言來描述軟件應用場景模型,使用警戒條件表示發生的概率。

  (2)可靠性測試用例生成模塊

  軟件可靠性測試用例生成模塊實現從使用模型自動或人工生成測試用例,其主要功能如下。

  ①可靠性測試用例自動化生成。其主要根據基于UML順序圖的測試用例生成技術[7],由軟件使用場景模型自動生成可靠性測試用例。

  ②人工生成測試用例。在根據軟件使用模型自動化生成的測試用例不足時,作為一種補充手段,提供用例設計界面輔助測試人員人工設計測試用例。

  (3)可靠性測試執行引擎

  可靠性測試執行引擎主要包括一系列服務。其中,腳本服務主要基于測試工具對腳本的錄制和回放。時統服務主要是為確保在可靠性測試活動中,各節點所獲取、記錄的測量數據和事件都有嚴格統一的時間標準,這樣采集的數據才具有使用價值;框架代理執行引擎服務根據測試場景動態部署相應的代理(Agent),針對已有的測試運行環境啟動代理的執行。測試流程協同服務根據可靠性測試流程,在分布式環境中協調和同步各個測試用例腳本的執行。

  (4)軟件可靠性數據采集

  對于基于失效時間間隔可靠性評估模型數據收集主要包括:故障發生時刻、故障間隔時間、各間隔時間內程序中的殘留錯誤數及故障等級。

  對于基于缺陷計數可靠性評估模型需要收集:在每一測試區間的故障統計數、每個測試區間的完成時間及故障等級。

  基于輸入域評估模型需要收集如下數據:每個輸入被選取的概率,輸入集中被隨機選中的輸入總數,所有被選中的輸入導致程序失效的個數及故障等級。

  (5)軟件可靠性評估

  軟件可靠性評估模塊主要完成軟件可靠性數據選擇、數據變換、模型選擇與應用、模型結果的圖形顯示和模型評估等功能。

2 軟件可靠性評估和預測模塊的設計

  軟件可靠性模型的應用涉及到模型選擇、參數估計、可靠性評估及預測和模型評價。實現時首先采用MATLAB根據軟件可靠性模型算法進行相關方程的求解,封裝成相關的API接口,再編譯成DLL文件供調用。

  該模塊主要包括以下部分。

  (1)模型選擇。可對當前故障數據選擇應用一個或多個可靠性模型。

  (2)參數估計。提供最大似然估計方法(默認參數估計)或最小二乘法兩種參數估計方法。

  (3)可靠性評估及預測。利用所選擇的模型和故障數據對軟件未來的可靠性進行預測。軟件可靠性模型評估采用了5類模型,其中,基于失效時間間隔可靠性評估模型采用Jelinski-Moranda、Schick-Wolverton和L-V的貝葉斯模型;基于缺陷計數的軟件可靠性評估模型采用Goel-Okumoto的NHPP模型、Schneidewind模型和FC型J-M模型;基于輸入域可靠性評估模型采用Nelson模型和Brown-Lipow模型;基于錯誤植入可靠性評估采用Mills-Basin模型;基于測試覆蓋軟件可靠性評估模型采用NHPP模型[8]。預測指標如下。

  ①TBF預測。橫座標:故障號(Failure Number),縱座標:TBF值(Time Between Failures-時間單位)。

  ②累計故障數預測。橫座標:累計故障間隔時間(Cumulative Time Between Failures-時間單位),縱座標:總的故障數(Total Failures)。

  ③故障強度預測。橫座標:累計故障間隔時間(Cumulative Time Between Failures-時間單位),縱座標:每時間單位故障數(Failures Per TimeUnit)。

  ④可靠性預測。橫座標:累計故障間隔時間(Cumulative Time Between Failures-時間單位),縱座標:可靠性(Reliability)。

  (4)模型評價。模型評價為故障數據選擇最合適的可靠性模型,主要通過模型排名(Ranking)方式,即根據模型的匹配程度,選擇匹配程度最高的模型進行可靠性評估和預測。排名指標包括:預測準確性(基于PLR),偏移程度(Biasedness,基于U-Plot),走向(Trend,基于Y-Plot),預測噪聲(Noisiness of Prediction)[9]。

3 試驗及驗證

  在某型號軟件測評中,通過使用本平臺進行測試,自動生成可靠性測試用例,并通過測試運行平臺驅動執行后采集到一組軟件故障數據,數據為TBF類型的,如表1所示。

003.jpg

  使用Jelinski-Moranda模型的最小二乘法進行計算,與美軍可靠性評估軟件SMERFS的計算結果進行對比的具體情況如表2所示。

004.jpg

  圖2是采用本平臺與SMERFS預測平均失效前時間間隔的曲線圖,可看到兩條預測曲線非常接近(標準偏差為0.138 9),圖中離散點為原始數據。

002.jpg

  本文實現了軟件可靠性測試和評估平臺,并結合一個實例與美國SMERFS工具預測結果相對照,證明本平臺對開展軟件可靠性測試和評估工作的有效性和實用性。本研究成果已被用于某國家級軟件質量監督檢驗中心的可靠性測試工作中,取得了良好的效果。

  參考文獻

  [1] 陳春秀,馬力.軟件可靠性測試技術研究[J].計算機工程與設計,2010,31(21):4628-4631.

  [2] 劉志方,鐘德明,曾福萍,等.軟件可靠性測試的理論分析[J].測控技術,2008,27(10):62-64.

  [3] LYU MICHAELR.軟件可靠性工程手冊[M].劉喜成,譯.北京:電子工業出版社,1996.

  [4] MUSA J D. Software reliability engineering: more reliable software, faster development and testing[M]. New York: The McGraw-Hill, 1999.

  [5] 顏炯,王戟,陳火旺.基于模型的軟件測試綜述[J].計算機科學,2004,31(2):184-186.

  [6] 朱敏,李建軍,王莉華,等.分布式系統綜合集成測試技術[J].計算機工程,2008,34(S1):57-59.

  [7] 李建軍,朱敏,劉曉娟,等.基于UML順序圖測試用例的生成[J].計算機工程,2008,34(21):73-75.

  [8] 袁春如,廖泰安,賀紅衛.基于測試覆蓋的嵌入式軟件可靠性評估[J].計算機工程與設計,2009,30(9):2198-2200.

  [9] 騰靈靈,邵棟,榮國平.軟件可靠性模型選擇研究[J].計算機應用與軟件,2010,27(6):128-130.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产一区二中文字幕在线看| 在线观看亚洲视频啊啊啊啊| 国产日韩亚洲精品| av观看久久| 激情小说网站亚洲综合网| 久久久久高清| 久久久久久综合网天天| 国产精品 欧美在线| 国产精品爽爽ⅴa在线观看| 国产精品区免费视频| 国产黄页在线观看| 91成人国产在线观看| 欧美精品v日韩精品v国产精品| 久久亚洲欧美日韩精品专区| 精品欧美日韩在线| y111111国产精品久久婷婷| 亚洲精品欧美日韩专区| 日韩亚洲不卡在线| 欧美日韩亚洲一| 精品91免费| 一区二区在线中文字幕电影视频| 色综合久久久久久久久五月| 日韩视频一区在线| 欧美在线一区二区三区四| www婷婷av久久久影片| 日本成人中文字幕在线| 久久久天堂国产精品女人| 国产亚洲精品久久久久久久 | 久久艹在线视频| 国产精品久久网| 日韩人妻精品一区二区三区| 国产亚洲精品网站| 欧美日本高清一区| 亚洲中文字幕无码不卡电影| 亚洲综合av一区| 日本免费高清一区二区| 国产精品视频免费在线观看| 欧洲中文字幕国产精品| 国产精品aaaa| 国产日韩亚洲精品| 精品国产一区二区三区在线|