摘要:軟件可靠性問題是軟件測試中的重要難題之一,由于程序語言的復雜性以及被測程序的多樣性,一直沒有一個好的可靠性模型來評價它。鑒于此,提出了一個有關黑盒測試的可靠性分析模型,模型在結合等價類和邊界值劃分的基礎上充分考慮軟件復雜性、缺陷后果嚴重性和信息不足等因素等原因,根據矩陣和數理統計的知識得出相關的可靠性模型,并使用EM算法對該模型的置信下限做出了相應的理論證明。實驗表明,該模型在實用性和可靠性方面都取得了較大的進展。
中圖分類號: TP311
文獻標識碼:A
0引言?
隨著軟件應用的日益廣泛及重要性的不斷增強,人們對軟件質量的要求也越來越高??煽啃宰鳛楹饬寇浖|量的重要特性,其定量評估和預測已成為人們關注和研究的焦點。軟件可靠性模型作為可靠性評測的核心和關鍵,可用于軟件生命周期的不同階段,定量地估計和預測軟件可靠性行為。一個好的可靠性模型可以準確評估和預測軟件可靠性行為,這對于軟件資源分配、軟件市場決策有著重要的意義。??
軟件可靠性模型這一領域的研究在 20 世紀 70 年代獲得較大發展后,很多可靠性模型已經投入使用??梢哉f,軟件可靠性模型已從研究階段發展到了工程階段。但是,面對軟件自身及其開發過程日益復雜的情形,它仍然呈現出其自身的不足。 首先,在軟件可靠性建模方面,傳統的軟件可靠性模型主要是從時間域和輸入域兩個方面來考慮軟件缺陷發生的概率或缺陷總數,很少從缺陷自身的因素論述;其次,在軟件可靠性建模過程中,基本上是根據測試結果直接來推導模型,很少關注軟件測試的設計過程;最后,在適應性方面也存在著一定的缺陷。 ?
鑒于此,要想建立比較適用的軟件可靠性模型,必須改變傳統可靠性建模思路,采用新的觀點、方法和新的數學工具來研究軟件故障過程。論文將測試用例的設計融入到軟件可靠性建模過程中去,在充分考慮軟件缺陷影響因子和復雜性等因素基礎上,采取合適的數學處理方法構建出一個基于測試用例的軟件可靠性模型,并結合EM算法對該模型的可靠性作了驗證。該模型不但考慮了失效出現的概率,還考慮了失效后可能產生后果的嚴重性。?
論文主要工作如下:(1)根據等價類、邊界值等方法來設計測試用例模型;(2)在一定假設的基礎上,通過觀測數據推導出測試用例的可靠性并得出相應的軟件可靠性;(3)利用EM算法對軟件可靠性進行相應的檢驗。?
1測試用例模型的構建?
測試用例的設計是軟件測試過程中最為關鍵的一個環節,一個軟件測試成功與否與其測試用例設計成功與否有很大的關系。所謂測試用例,也就是為特定目標開發的測試輸入、執行條件和預期結果的集合。也可以說是對軟件運行過程中所有可能存在的目標、運動、行動、環境和結果的描述,這些特定目標可以是驗證一個特定的程序路徑或核實是否符合特定需求。而測試活動要建立必要的前提條件,提供測試用例輸入、觀察輸出,然后將這些輸入和輸出進行比較,以確定測試是否通過測試某個程序路徑或何時滿足軟件規定的要求。簡言之,測試用例就是設定輸入數據,運行被測試函數,然后判斷實際輸出是否符合預期結果。?
通常造成軟件缺陷的主要原因有:(1)軟件設計文檔規范不一;(2)測試用例設計過程中引入了人為的錯誤;(3)測試執行后,復雜的決策條件、循環和分支的覆蓋率目標并沒有達到等。而一個完整的測試應該包含正面測試(Positive Testing,PT)和負面測試(Negative Testing,NT)。正面測試是驗證程序應該執行的工作,而負面測試是驗證程序不應該執行的工作。只有面面俱到,才能保證測試的充分性。要想保證測試用例設計質量,必須遵循四個原則:(1)測試準則,每個測試用例應當有一組有限可枚舉的待測目標的判定準則;(2)測試用例輸入域的劃分和輸入點集的提取;(3)測試目標的復雜性問題,應盡量化復雜為簡單;(4)對測試用例進行測試的力度,就是在特定輸入條件下進行測試的細分程度和測試的次數。在黑盒測試中,不可能采取窮舉式測試。只能選取輸入域中有代表性樣本點來運行程序,然后通過程序運行的結果(成功率或失效率)來推斷出軟件可靠性。綜上可知,一個好的測試用例既要有完善的輸入域也要有代表性的輸入點集。?
原文轉自:http://www.uml.org.cn/Test/200903242.asp