肖靜杰
摘要:在高可靠軟件加速測試中,畸化操作剖面測試方法能夠解決測試用例過多的難點。畸化操作剖面的基本思想是根據操作重要度來提升重要操作的發生概率,因此構建一個準確的操作重要度因子是使用該方法的前提。針對現有操作重要度還未建立定量的評估體系這個問題,本文提出了軟件操作的重要度概念及度量定義,并給出了操作重要度的分析計算方法。定量的操作重要度能夠有助于更加準確地構造畸化操作剖面。
關鍵詞:高可靠軟件;加速測試;畸化操作剖面;操作重要度
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)06-0226-02
軟件可靠性測試的主要思想是按照用戶對軟件實際使用的統計規律進行隨機測試,目前通常采用操作剖面的形式對軟件的使用情況進行建模,然后在建模的基礎之上生成測試數據進行測試。
在高可靠軟件中,存在一些重要操作,這些操作可能發生的概率很小,如果按照用戶操作剖面來進行測試的話,這些操作得到的測試資源將可能會非常少,或者是得到的測試資源不夠充足。通過畸化操作剖面方面,人為地將重要操作的發生概率提高。為了構造準確的畸化操作剖面,首先要對操作的重要度進行定量評估。
本文首先對現有的畸化操作剖面的軟件重要度評估方法進行分析,隨后提出了定量的重要度評估方法。
1現有的關鍵操作的區分
畸化操作剖面的概念是由Tang D提出的,基本思想是假設關鍵操作在原始操作剖面中所占的比例較低,但具有較高的失效率。針對這些重要操作,將發生的概率人為提高,就可以加速軟件的失效過程,從而加速軟件可靠性測試的過程。同時通過似然比理論,將基于畸化操作剖面情況下的可靠性測試中收集得到的失效數據轉化為正常操作剖面情況下的失效數據,進而可以使用傳統的軟件可靠性模型對目標軟件的可靠性進行評估。其中,關鍵操作的劃分是根據NASA航天飛機的數據統計。在這份數據中表明稀有事件是軟件系統失效的重要原因。
根據這份數據統計,現有的操作重要度的定義為發生概率稀少的操作。因此,在Tang D的畸化操作剖面方法中,對發生概率小的操作統一定義為重要操作。在這其中忽略了小概率操作中的非重要操作與中概率中重要度較高的操作。同時沒有針對操作的重要度建立定量的評估體系,這樣構造的畸化操作剖面是不準確的。
2操作重要度分析計算
對軟件來說,不同軟件操作的重要度并不相同,對于由于操作輸入造成嚴重事故的失效輸出,在測試時應該投入更大的測試資源來提高該操作的測試充分性,保證引發失效的操作得到了充分測試,從而避免重大事故的發生。所以對于操作重要度的度量不能僅僅以操作的發生概率來定義,需要同時考慮該操作可能引發的事故的嚴重程度。
定義1:操作的重要度是通過該操作在軟件中的失效概率與失效產生的嚴重度來綜合評估。
操作的重要度:操作的失效概率*失效嚴重程度
其中操作的失效概率是操作的發生概率與操作的失效概率的乘積,操作的失效嚴重程度是失效帶來的經濟損失和人員傷亡人數的乘積。
對于操作的失效發生概率高,導致的嚴重程度高的操作,其重要度比較高,從而需要重點測試。
由于在進行重要度分析時,在某些情況下會得到不明確的結果。例如:
第一個操作的評分結果為:
操作的失效概率=0.55;失效嚴重程度=100(元)。操作重要度評分結果:55
第二個操作的評分結果為:
操作的失效概率=0.00011;失效嚴重程度=100000(元)*5(名人員傷亡)。操作重要度評分結果:55
這兩種的操作重要度值一致,但是第二種操作的失效程度更為嚴重,應該更加需要測試。
為了避免這種情況重要度降級的情況發生,針對操作失效嚴重程度制定一個失效程度的門限值,對同一嚴重度范圍內的操作重要度進行單獨評估,之后再與不同的嚴重度等級操作進行評估。
首先將操作的失效嚴重程度劃分等級,等級根據具體軟件的不同而有所區別,在這里列出一個通用的操作嚴重度等級如表格 1所示。將操作對應到五種等級上,在同一個等級內的操作,通過計算操作的重要度得到操作的重要度因子,同一等級內的操作的重要度大小由重要度大小得出;處于不同等級的兩個操作,嚴重等級大的操作無論重要度因子大小,它的重要度是大于嚴重等級小的操作。
3結束語
畸化操作剖面的可操作前提是區分出重要操作,根據重要度的大小進行設計畸化操作剖面,對于重要度大的,應該分配更多的測試資源。所以建立重要度評估模型,有助于更加準確建立畸化操作剖面。同時對于可能造成重要度減少的情況做出了分級處理,能有有效的解決畸化操作剖面的準確性構造問題。
參考文獻:
[1]Hecht H.Rare conditions- an important cause of failures[C].Proceedings of the Eighth Annual Conference on Computer Assurance,1993: 81-85.
[2]Hecht H, Crance P.Rare conditions and their effect on software failures[C]. Proceedings of the Annual Reliability and Maintainability Symposium, 1994: 334-337.
[3]Tang D, Hecht H.An approach to measuring and assessing dependability for critical software systems[C].Proceedings The Eighth International Symposium On Software Reliability Engineering, 1997 :192-202.
[4]Hecht M, Hecht H.Use of importance sampling and related techniques to measure very high reliability software[C].Aerospace Conference Proceedings, 2000; 4: 533-546.
[5]陸民燕. 軟件可靠性工程[M]. 北京:國防工業出版社,2011:282-296.
【通聯編輯:梁書】