《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 軟件可靠性測試及評估平臺的設計與實現
軟件可靠性測試及評估平臺的設計與實現
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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一区二区三区在线免费视频 | 亚洲天堂色视频 | 免费一级做a爰片性色毛片 免费一极毛片 | 国产亚洲一级精品久久 | 欧美日韩专区国产精品 | 99久久精品久久久久久婷婷 | 日韩在线观看不卡 | 毛片免费全部免费观看 | 免费一级在线 | japanese色系tube护士 | 国产精品综合一区二区 | 99pao在线视频成精品 | 亚洲国产精品久久综合 | 国产一区二区三区免费播放 | 日本精品三级 | 高清国产亚洲va精品 | 亚洲黄色小视频 | 99在线观看巨臀大臀视频 | 九九精品在线视频 | 亚洲精品高清在线观看 | 日本加勒比网站 | 成 人 亚洲 综合天堂 | 免费成年人视频网站 | 成人在线视频国产 | 国产精品亚欧美一区二区三区 | 看国产一级片 | 男人的天堂免费 | 国产日韩欧美在线观看不卡 | 日韩欧美一区二区久久 | 亚洲精品午夜一区二区在线观看 | 欧美精品v欧洲精品 | 精品综合久久久久久蜜月 | 国产成人精品系列在线观看 | 国产盗摄一区二区三区 | 久久精品最新免费国产成人 | 日韩亚洲欧美一区噜噜噜 | 国产毛片久久久久久国产毛片 | 国产在线欧美日韩一区二区 | 国产三级做爰在线观看∵ | 国产成人在线播放视频 | 2000xxxxav影院|