• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 可靠性測試

    上一篇 / 下一篇  2007-05-24 13:57:41 / 個人分類:理論知識

    • 文件版本: V1.0
    • 開發商: 來源網絡
    • 文件來源: 網絡
    • 界面語言: 簡體中文
    • 授權方式: 免費
    • 運行平臺: Win9X/Win2000/WinXP

    軟件可靠性測試

    發布: 2007-4-22 17:39 | 作者: 周新蕾 繆… &nb | 來源: 計算機世界報     | 查看: 0次

    一、對軟件可靠性測試的認識

    1.有關術語
    (1)軟件可靠性 在規定條件下,在規定時間內,軟件不引起系統失效的概率。該概率是系統輸入和系統使用的函數,也是軟件中存在故障的函數,系統輸入將確定是否會遇到存在的故障。
    (2)軟件可靠性估計 應用統計技術處理在系統測試和運行期間采集、觀察到的失效數據,以評估該軟件的可靠性。
    (3)軟件可靠性測試 在有使用代表性的環境中,為進行軟件可靠性估計對該軟件進行的功能測試。
    需要說明的是,"使用代表性"指的是在統計意義下該環境能反映出軟件的使用環境特性 。

    2.軟件可靠性測試的目的
    軟件可靠性測試的主要目的有:
    (1)通過在有使用代表性的環境中執行軟件,以證實軟件需求是否正確實現。
    (2)為進行軟件可靠性估計采集準確的數據。估計軟件可靠性一般可分為四個步驟,即數據采集、模型選擇、模型擬合以及軟件可靠性評估?梢哉J為,數據采集是整個軟件可靠性估計工作的基礎,數據的準確與否關系到軟件可靠性評估的準確度。
    (3)通過軟件可靠性測試找出所有對軟件可靠性影響較大的錯誤。

    3.軟件可靠性測試的特點
    軟件可靠性測試不同于硬件可靠性測試,這主要是因為二者失效的原因不同。硬件失效一般是由于元器件的老化引起的,因此硬件可靠性測試強調隨機選取多個相同的產品,統計它們的正常運行時間。正常運行的平均時間越長,則硬件就越可靠。軟件失效是由設計缺陷造成的,軟件的輸入決定是否會遇到軟件內部存在的故障。因此,使用同樣一組輸入反復測試軟件并記錄其失效數據是沒有意義的。在軟件沒有改動的情況下,這種數據只是首次記錄的不斷重復,不能用來估計軟件可靠性。軟件可靠性測試強調按實際使用的概率分布隨機選擇輸入,并強調測試需求的覆蓋面。軟件可靠性測試也不同于一般的軟件功能測試。相比之下,軟件可靠性測試更強調測試輸入與典型使用環境輸入統計特性的一致,強調對功能、輸入、數據域及其相關概率的先期識別。測試實例的采樣策略也不同,軟件可靠性測試必須按照使用的概率分布隨機地選擇測試實例,這樣才能得到比較準確的可靠性估計,也有利于找出對軟件可靠性影響較大的故障。
    此外,軟件可靠性測試過程中還要求比較準確地記錄軟件的運行時間,它的輸入覆蓋一般也要大于普通軟件功能測試的要求。
    對一些特殊的軟件,如容錯軟件、實時嵌入式軟件等,進行軟件可靠性測試時需要有多種測試環境。這是因為在使用環境下常常很難在軟件中植入錯誤,以進行針對性的測試。

    4.軟件可靠性測試的效果
    軟件可靠性測試是軟件可靠性保證過程中非常關鍵的一步。經過軟件可靠性測試的軟件并不能保證該軟件中殘存的錯誤數最小,但可以保證該軟件的可靠性達到較高的要求。從工程的角度來看,一個軟件的可靠性高不僅意味著該軟件的失效率低,而且意味著一旦該軟件失效,由此所造成的危害也小。一個大型的工程軟件沒有錯誤是不可能的,至少理論上還不能證明一個大型的工程軟件能沒有錯誤。因此,保證軟件可靠性的關鍵不是確保軟件沒有錯誤,而是要確保軟件的關鍵部分沒有錯誤。更確切地說,是要確保軟件中沒有對可靠性影響較大的錯誤。這正是軟件可靠性測試的目的之一。
    軟件可靠性測試的側重點不同于一般的軟件功能測試,其測試實例設計的出發點是尋找對可靠性影響較大的故障。因此,要達到同樣的可靠性要求,可靠性測試比一般的功能測試更有效,所花的時間也更少。
    另外,軟件可靠性測試的環境是具有使用代表性的環境,這樣,所獲得的測試數據與軟件的實際運行數據比較接近,可用于軟件可靠性估計。
    總之,軟件可靠性測試比一般的功能測試更加經濟和有效,它可以代替一般的功能測試,而一般的軟件功能測試卻不能代替軟件可靠性測試,而且一般功能測試所得到的測試數據也不宜用于軟件可靠性估計。

    二、軟件可靠性測試中需注意的問題
    軟件可靠性測試一般可分為四個階段:制定測試方案,制定測試計劃,進行測試并記錄測試結果,編寫測試報告。
    制定測試方案時需要特別注意被測功能的識別和失效等級的定義。制定測試計劃時需設計測試實例,決定測試時要確定輸入順序,并確定程序輸出的預期結果,這時也需注意測試覆蓋問題。

    1.功能識別
    軟件可靠性測試的第一步就是進行功能識別,確定使用剖面。功能識別的目標是:識別所有被測功能以及執行這些功能所需的相關輸入,識別每一個使用需求及其相關輸入的概率分布。為達到第一個目標,需要分析軟件功能的所有集合,這些功能之間全部的約束條件,功能之間的獨立性、相互關系和相互影響,還需分析系統的不同運行模式、失效發生時系統重構策略等對軟件運行方式有較大影響的因素。第一個目標也是一般軟件功能測試需要達到的目標,但第二個目標則是軟件可靠性測試特別強調的。為了得到能夠反映軟件使用的有代表性的概率分布,測試人員必須和系統工程師、系統運行分析員和顧客共同合作。需要指出的是,由于可靠性的要求,輸入數據的概率分布應包括合法數據的概率分布和非法數據的概率分布兩部分。有時為了更好地反映實際使用狀況,還需給出那些影響程序運行方式的條件,如硬件配置、負荷等的概率分布。

    2.定義換效等級
    定義失效等級主要是為了解決下面兩個問題:
    ·對發生概率小但失效后危害嚴重的功能需求的識別。
    ·對可不查找失效原因、并不做統計的功能需求的識別。
    在制定測試計劃時,失效及其等級的定義應由測試人員、設計人員和用戶共同商定,達成協議。一般的等級定義如表所示。
    @@16115000.GIF;表1 失效等級定義@@
    如果存在1級和2級失效可能性,那么就應該進行故障樹分析,標識出所有可能造成嚴重失效的功能需求和其相關的輸入域、外部條件和發生的可能性。
    對引起1級和2級失效的功能需求及其相關的輸入域必須進行嚴格的強化測試。對引起3級失效的功能可按其發生概率選擇測試實例。第4級失效可不查找原因,可在以后的版本中處理。

    3.可靠性測試覆蓋
    可靠性測試必須保證輸入覆蓋和環境覆蓋,這是準確估計軟件可靠性的基礎。
    輸入覆蓋包括下面幾個內容:
    ·輸入域覆蓋,即所有被測輸入值域的發生概率之和必須大于軟件可靠度的要求。
    ·重要輸入變量值的覆蓋。
    ·相關輸入變量可能組合的覆蓋,以確保相關輸入變量的相互影響不會導致軟件失效。
    ·設計輸入空間與實際輸入空間之間區域的覆蓋,即不合法輸入域的覆蓋。
    ·各種使用功能的覆蓋。
    環境覆蓋是指測試時必須覆蓋所有可能影響程序運行方式的條件。

    三、軟件可靠性測試的步驟
    軟件可靠性測試分為四個階段:

    1.制訂測試方案
    本階段的目標是識別軟件功能需求,觸發該功能的輸入和對應的數據域,確定相關的概率分布及需強化測試的功能。
    以下是我們推薦的步驟。在一些特定的應用中,有的步驟并不是必須的。
    (1)分析功能需求 分析各種功能需求,識別觸發該功能的輸入及相關的數據域(包括合法與不合法的兩部分)。分析時要注意下述問題:
    ·該軟件是否存在不同的運行模式?如果存在,那么應列出所有的系統運行模式。
    ·是否存在影響程序運行方式的外部條件?如果存在,那么有多少?它們的影響程度如何
    ·各種功能需求之間是相互獨立的還是相關的?如果相關,是密切相關還是部分相關?如果兩種功能密切相關,那么可將兩種功能合并為一種功能。如果功能之間為部分相關,則需列出相應輸入變量的合法組合。
    (2)定義失效等級 判斷是否存在出現危害度較大的1級和2級失效的可能性。如果這種可能性存在,則應進行故障樹分析,標識出所有可能造成嚴重失效的功能需求和其相關的輸入域。
    (3)確定概率分布
    ·確定各種不同運行方式的發生概率,判斷是否需要對不同的運行方式進行分別測試。
    如果需要,則應給出各種運行方式下各數據域的概率分布;否則,給出各數據域的概率分布。
    ·判斷是否需要強化測試某些功能。
    (4)整理概率分布的信息 將這些信息編碼送入數據庫。

    2.制訂測試計劃
    本階段的目標是:
    (1)根據前一階段整理的概率分布信息生成相對應的測試實例集,并計算出每一測試實例預期的軟件輸出結果。
    本階段需要注意:在按概率分布隨機選擇生成測試實例的同時,要保證測試的覆蓋面。
    (2)編寫測試計劃,確定測試順序,分配測試資源。由于本階段前一部分的工作需要考慮大量的信息和數據,因此需要一個軟件支持工具,建立數據庫,并產生測試實例。另外,有時預測軟件輸出結果也需要大量的計算,有些復雜的軟件甚至要用到仿真器模擬輸出結果。
    總之,具體實施與被測應用軟件的實際功能類型有關。

    3.測試
    本階段進行軟件測試。需注意的是被測軟件的測試環境(包括硬件配置和軟件支撐環境)應和預期的實際使用環境盡可能一致,對某些環境要求比較嚴格的軟件(如嵌入式軟件)則應完全一致。
    測試時按測試計劃和順序對每一個測試實例進行測試,判斷軟件輸出是否符合預期結果。測試時應記錄測試結果、運行時間和判斷結果。如果軟件失效,那么還應記錄失效現象和時間,以備以后核對。

    4.編寫測試報告
    按軟件可靠性估計的要求整理測試記錄,并將結果寫成報告。
    筆者認為,軟件可靠性測試的關鍵在于:
    ·對需求、輸入、數據域的識別及相關概率分布的確定。
    ·按照概率分布隨機生成測試實例,并確定測試順序。
    據國外有關文獻報導,這種測試方法已成功應用于大量應用軟件的可靠性測試,包括一些商用軟件和航空、航天電子設備中嵌入式軟件的測試,其效果很好。因此,我們有必要投入一定的人力、物力,針對我們的實際需要,有目的地對各類應用軟件進行軟件可靠性測試,從實踐中逐步積累經驗。同時需要軟件開發方和使用方共同合作,進行軟件可靠性測試方法的研究和有關支持工具的開發,促進我國軟件可靠性水平的提高。

    TAG:

     

    評分:0

    我來說兩句

    顯示全部

    :loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

    我的欄目

    日歷

    « 2011-03-22  
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  

    我的存檔

    數據統計

    • 訪問量: 684
    • 文件數: 1
    • 建立時間: 2007-05-24
    • 更新時間: 2007-05-24

    RSS訂閱

    Open Toolbar
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>