李 晉
(信陽師范學(xué)院網(wǎng)絡(luò)信息與計算中心 河南 464002 )
軟件可靠性測試共分為兩種:可靠性驗證測試和可靠性增長測試,這兩種測試的主要區(qū)別在于,驗證性測試對軟件測試過程中表現(xiàn)出的故障不進行改正,而本文為了便于研究僅取用驗證性測試的流程分析數(shù)據(jù)。
軟件可靠性測試的目的是為了發(fā)現(xiàn)軟件在開發(fā)過程中出現(xiàn)的錯誤而對程序采取執(zhí)行措施的過程,同時軟件的測試是要根據(jù)軟件開發(fā)過程的不同時期的需要和程序整體結(jié)構(gòu)的完整性而精心設(shè)計的測試用例集合,通過對這些測試用例的運行情況分析以發(fā)現(xiàn)程序中設(shè)計上或者程序中的錯誤。因此,可以根據(jù)這種需要,制定出軟件可靠性測試的需求要滿足以下幾點:
(1)可靠性測試的測試用例輸入環(huán)境與用戶的典型使用環(huán)境在統(tǒng)計特性上要保持一致,尤其是要強調(diào)測試用例在功能、數(shù)據(jù)域、輸入等相關(guān)概率的前期識別特性;
(2)軟件的可靠性測試用例的選擇要與用戶的使用概率分布情況相吻合,并且要隨機選擇,才能得確??煽啃怨烙嫷臏?zhǔn)確性,同時也更有可能找出容易造成軟件出錯的故障;
(3)軟件的可靠性測試整個過程中,對運行時間的記錄一定要詳細、準(zhǔn)確、完整,同時測試用例的輸入覆蓋率至少要大于軟件功能測試的普遍要求;
(4)軟件可靠性測試需要準(zhǔn)備實施多種測試環(huán)境可支持軟件的可靠性測試,因為在一些特殊運行環(huán)境中,比如實時嵌入式和容錯軟件等類型軟件在使用情況下難以在軟件中植入錯誤,需要在測試之前做好多條件測試軟件的準(zhǔn)備工作;
(5)軟件可靠性測試的測試用例切入點對可靠性影響比較大的漏洞的搜索,所以在進行可靠性評估的測試中,要選擇測試效果更明顯的可靠性測試,而非功能性測試;
完善的軟件可靠性測試流程設(shè)計,對提高軟件可靠性測試的工作效率有極大的幫助作用,這個作用主要表現(xiàn)在這幾點:(1)合理劃分和整體規(guī)劃軟件可靠性測試的工作進程;(2)根據(jù)軟件可靠性測試的積累經(jīng)驗表明,軟件內(nèi)容復(fù)雜、缺陷類型多樣,測試手段也需要隨之變化,因此很難在規(guī)定時間內(nèi)完成全部測試工作;所以需要以個設(shè)計合理的流程計劃來幫助測試如期順利完成;(3)流程化、工程化的軟件可靠性測試流程, 有利于軟件測試的管理人員對軟件可靠性測試的過程科學(xué)地規(guī)劃,并統(tǒng)籌管理。綜上所述,不難發(fā)現(xiàn)軟件可靠性測試的必備條件,除了有效的測試環(huán)境、必備的功能測試軟件和和諧的測試人員團隊,更需要有一個可靠的測試流程。
基于對上述可靠性測試的需求分析和概念理解,我們可將可靠性測試流程暫定義為三部分:可靠性測試準(zhǔn)備、可靠性測試執(zhí)行和可靠性測試結(jié)果分析。
依據(jù)前面一節(jié)對可靠性測試流程的原則性定義,現(xiàn)將該測試過程的具體流程詳述如下:
第一步:在進行軟件可靠性測試之前,從理論上首先要對軟件進行一次評估。第二步:簽訂測試合同。第三步:由于測試技術(shù)的產(chǎn)權(quán)歸屬問題,承接測試方與委托方需要在測試之前簽訂保密協(xié)議,避免雙方在這方面發(fā)生不必要的糾紛。第四步:承接測試方在簽訂合同和保密協(xié)議后,要及時成立項目測試組。第五步:測試項目組成立之后,就要試紙測試任務(wù)書。第六步:測試任務(wù)書后需要制定測試計劃書。第七步:在計劃制定結(jié)束項目運行啟動之間,需要對軟件測試所需要的運行環(huán)境進行測試配置。第八步:配置結(jié)束后需要構(gòu)造整個測試流程的操作剖面。第九步:根據(jù)測試操作圖生成的測試用例,滿足剖面圖對輸入變量取值范圍的規(guī)定,并默認變量在這個范圍內(nèi)按照分段分布或者均勻分布方式取值。第十步:也是測試前最后一個步驟就是自動生成測試腳本,并對腳本進行錄制,便于今后的工作使用。
測試執(zhí)行階段的步驟簡單,僅分為運行、數(shù)據(jù)收集和測試停止,但是每個步驟需要注意的問題還有很多:運行部分工作需要注意測試過程雖然只需要根據(jù)準(zhǔn)備工作時生成的腳本運行,但是需要注意測試工具在測試進行時是否能夠自動記錄下測試用例執(zhí)行的時間數(shù)據(jù)和軟件缺陷信息,保證能夠為測試分析提供足夠數(shù)量的原始數(shù)據(jù)。同時,測試工作人員需要盡可能的詳細的編寫測試日志,要包括:測試編號、用例編號、測試標(biāo)題、測試人員簽名、計劃和實際的運行時間、產(chǎn)生問題的單號等。
軟件可靠性測試的數(shù)據(jù)的是軟件可靠性評估的核心,因此該部分的工作需要投入最多精力。本文擬對數(shù)據(jù)的記錄主要包含:單次失效的總失效時間;兩次失效的間隔時間;統(tǒng)計時間段內(nèi)失效的次數(shù);某種失效在某時間段內(nèi)的失效次數(shù)等四類數(shù)據(jù)。由于測試結(jié)果的不確定性導(dǎo)致了測試結(jié)束的時間也不能完全確定,嚴格分析,測試停止的時間需要分為三類。
首先需要對測試結(jié)果進行再次的可靠性分析,然后需要測試團隊組織編制測試報告,最后是根據(jù)可靠性分析編制測試問題報告單,再次進行可靠性分析時。通過建立數(shù)學(xué)概率論模型對故障和發(fā)生時間進行數(shù)學(xué)分析,得出故障—時間的概率分布情況。編制測試報告就是將測試過程和測試結(jié)果編制成文,分析測試過程中發(fā)現(xiàn)的缺陷和隱患,為寫下來對軟件糾錯的工作提供參考,同時也是可靠性測試的交付依據(jù)。撰寫測試問題報告單時需要對如下內(nèi)容逐一列舉:測試軟件標(biāo)識、測試運行計算機系統(tǒng)、記錄文檔、產(chǎn)品測試描述、數(shù)據(jù)和程序腳本的測試結(jié)果、不達標(biāo)內(nèi)容清單、未按要求進行測試的清單和說明、測試結(jié)束日期。
[1]陳春秀,馬力. 軟件可靠性測試技術(shù)研究[J]. 計算機工程與設(shè)計, 2010.
[2]張俊萍,朱小冬,張魯, 余文定. 軟件可靠性測試流程設(shè)計及其應(yīng)用[J].計算機測量與控制, 2011,19(4).
[3]于琛琛,劉瑞方. 軟件可靠性測試方法探析[J].國防技術(shù)基礎(chǔ),2009.
[4]陳偉 .針對軟件可靠性測試的測試用例集精簡方法[J]. 理論與研究, 2011.