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