摘要:隨著科學(xué)技術(shù)的飛速發(fā)展,軟件的功能越來(lái)越強(qiáng)大,軟件的復(fù)雜性也越來(lái)越高,從而大大增加了軟件測(cè)試與可靠性評(píng)估的難度。為了保證一個(gè)軟件系統(tǒng)的質(zhì)量,有必要針對(duì)軟件的測(cè)試與可靠性評(píng)估方法進(jìn)行專門(mén)地研究。本文就是針對(duì)這一領(lǐng)域所做的一些研究。
關(guān)鍵詞:軟件測(cè)試 可靠性 軟件評(píng)估
一.軟件測(cè)試的定義
軟件測(cè)試(Software testing)是軟件生存期(Software life cycle)中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼進(jìn)行最終復(fù)審的活動(dòng)。1983年IEEE提出的軟件工程術(shù)語(yǔ)中給軟件測(cè)試下的定義是:“使用人工或自動(dòng)的手段來(lái)運(yùn)行或測(cè)定某個(gè)軟件系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別”。這個(gè)定義明確指出:軟件測(cè)試的目的是為了檢驗(yàn)軟件系統(tǒng)是否滿足需求。
從用戶的角度來(lái)看,普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測(cè)試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程”?;蛘哒f(shuō),軟件測(cè)試應(yīng)該根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。
二.軟件測(cè)試的生命周期
測(cè)試主要依據(jù)是被試系統(tǒng)的研制任務(wù)書(shū)和技術(shù)規(guī)格書(shū),是對(duì)軟件整體功能和性能的綜合測(cè)試與評(píng)估。測(cè)試原理是軟件測(cè)試活動(dòng)的理論基礎(chǔ),測(cè)試方法是測(cè)試原理的實(shí)際應(yīng)用和獲得測(cè)試數(shù)據(jù)的手段?;谲浖墓残裕瑢?duì)于軟件的測(cè)試要遵循一般軟件的測(cè)試原理和方法。同時(shí),針對(duì)軟件的特性,必須找到合適的測(cè)試方法。測(cè)試用例的合理性對(duì)于軟件的測(cè)試與評(píng)估具有關(guān)鍵作用,而如何使設(shè)計(jì)的用例合情、合理并且典型有效并不容易。所以應(yīng)該與軟件的研制人員以及最終用戶一起,有針對(duì)性地研究實(shí)際操作環(huán)境并加以描述,形成合理的測(cè)試用例集。另一方面,軟件運(yùn)行環(huán)境的復(fù)雜程度對(duì)軟件評(píng)估具有重要作用,所以應(yīng)產(chǎn)生盡量逼真的運(yùn)行背景以便于研究。軟件測(cè)試的周期如圖1所示。
實(shí)踐證明,盡管人們?cè)陂_(kāi)發(fā)軟件的過(guò)程中使用了許多保證軟件質(zhì)量的方法和技術(shù),但開(kāi)發(fā)出的軟件中還會(huì)隱藏許多錯(cuò)誤和缺陷。這對(duì)于規(guī)模大、復(fù)雜性高的軟件更是如此。所以,嚴(yán)格的軟件測(cè)試對(duì)于保證軟件質(zhì)量具有重要作用。
軟件測(cè)試在軟件生存期中橫跨兩個(gè)階段。在軟件編碼階段,當(dāng)編寫(xiě)出一個(gè)模塊后,通常要對(duì)它進(jìn)行必要的測(cè)試(稱為單元測(cè)試),這時(shí)測(cè)試與編碼屬于同一個(gè)階段。在編碼階段結(jié)束后,對(duì)軟件系統(tǒng)還要進(jìn)行各種綜合測(cè)試(集成測(cè)試與系統(tǒng)測(cè)試),這是一個(gè)獨(dú)立階段,即軟件測(cè)試階段。在這個(gè)測(cè)試階段又有兩種性質(zhì)不同的測(cè)試:研制單位內(nèi)部進(jìn)行的集成測(cè)試和系統(tǒng)測(cè)試與用戶(或第三方)進(jìn)行的驗(yàn)收性測(cè)試。
在軟件測(cè)試生命周期內(nèi),錯(cuò)誤在軟件開(kāi)發(fā)的每個(gè)階段都可能被帶入。在軟件測(cè)試中,某些錯(cuò)誤被發(fā)現(xiàn)、分類、隔離,最終被糾正。由于軟件不斷被修改,所以這個(gè)過(guò)程是一個(gè)反復(fù)進(jìn)行的過(guò)程。
三.測(cè)試方法和流程
軟件測(cè)試方法主要有黑箱測(cè)試方法與白箱測(cè)試兩類。黑箱測(cè)試又稱功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于規(guī)格說(shuō)明的測(cè)試,是在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,檢查輸入與輸出之間關(guān)系是否符合要求。白箱測(cè)試又稱結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,是在已知程序內(nèi)部結(jié)構(gòu)的情況下設(shè)計(jì)測(cè)試用例的測(cè)試方法。顯然,白箱測(cè)試適合在單元測(cè)試中運(yùn)用,而在獨(dú)立測(cè)試階段多采用黑箱測(cè)試方法。
測(cè)試用例(Test case)實(shí)際上是對(duì)軟件運(yùn)行過(guò)程中所有可能存在的目標(biāo)、運(yùn)動(dòng)、行動(dòng)、環(huán)境和結(jié)果的描述,是對(duì)客觀世界的一種抽象。設(shè)計(jì)測(cè)試用例即設(shè)計(jì)針對(duì)特定功能或組合功能的測(cè)試方案,并編寫(xiě)成文檔。測(cè)試用例應(yīng)該體現(xiàn)軟件工程的思想和原則。測(cè)試用例的選擇既要有一般情況,也應(yīng)有極限情況以及最大和最小的邊界值情況。因?yàn)闇y(cè)試的目的是暴露應(yīng)用軟件中隱藏的缺陷,所以在設(shè)計(jì)選取測(cè)試用例和數(shù)據(jù)時(shí)要考慮那些易于發(fā)現(xiàn)缺陷的測(cè)試用例和數(shù)據(jù),結(jié)合復(fù)雜的運(yùn)行環(huán)境,在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),來(lái)檢查應(yīng)用軟件是否都能產(chǎn)生正確的輸出。
軟件測(cè)試所得到的數(shù)據(jù)經(jīng)過(guò)處理以后,可以用來(lái)作為評(píng)估軟件系統(tǒng)是否滿足用戶需求的依據(jù)。軟件測(cè)試階段的信息流如圖2所示:
四.軟件評(píng)估理論及其發(fā)展現(xiàn)狀
軟件的評(píng)估理論是進(jìn)行評(píng)估的理論依據(jù),評(píng)估方法是評(píng)估理論的實(shí)際應(yīng)用和處理測(cè)試數(shù)據(jù)的方法。對(duì)于評(píng)估指標(biāo)體系中的不同指標(biāo),應(yīng)該根據(jù)測(cè)試數(shù)據(jù)的不同,選取相應(yīng)的評(píng)估理論和方法。軟件評(píng)估(Software assessment)的實(shí)質(zhì)是對(duì)軟件質(zhì)量的度量與評(píng)價(jià)。
我們對(duì)軟件質(zhì)量評(píng)估的定義是:“為了確定一特定的軟件模塊、軟件包或軟件產(chǎn)品是否驗(yàn)收合格或發(fā)布而把特定的評(píng)估準(zhǔn)則應(yīng)用到該軟件模塊、軟件包或軟件產(chǎn)品上去的活動(dòng)”。
可見(jiàn),軟件評(píng)估的對(duì)象是“軟件模塊、軟件包或軟件產(chǎn)品”,軟件評(píng)估的目的是“確定被評(píng)對(duì)象是否驗(yàn)收合格或發(fā)布”。定義中提到的評(píng)估準(zhǔn)則是“根據(jù)特定的軟件產(chǎn)品和質(zhì)量需求,確定產(chǎn)品是否通過(guò)驗(yàn)收或發(fā)布的一組成文的規(guī)則和條件的集合”。從廣泛意義上講,評(píng)估準(zhǔn)則已經(jīng)包括了評(píng)估方法和指標(biāo)體系,即如何處理獲得的測(cè)試數(shù)據(jù)與如何應(yīng)用評(píng)估準(zhǔn)則到被評(píng)估軟件上。
軟件可靠性評(píng)估(Software reliability assessment)的完整含義是:根據(jù)軟件系統(tǒng)可靠性結(jié)構(gòu)(單元與系統(tǒng)間可靠性關(guān)系)、壽命類型和各單元的可靠性試驗(yàn)信息,利用概率統(tǒng)計(jì)方法,評(píng)估出系統(tǒng)的可靠性特征量。
目前,軟件可靠性工程是一門(mén)雖然得到普遍承認(rèn),但還處于不成熟的正在發(fā)展確立階段的新興工程學(xué)科。國(guó)外從60年代后期開(kāi)始加強(qiáng)軟件可靠性的研究工作,經(jīng)過(guò)20年左右的研究推出了各種可靠性模型和預(yù)測(cè)方法,于1990年前后形成較為系統(tǒng)的軟件可靠性工程體系。同時(shí),從80年代中期開(kāi)始,西方各主要工業(yè)強(qiáng)國(guó)均確立了專門(mén)的研究計(jì)劃和課題,如英國(guó)的AIVEY(軟件可靠性和度量標(biāo)準(zhǔn))計(jì)劃、歐洲的ESPRIT(歐洲信息技術(shù)研究與發(fā)展戰(zhàn)略)計(jì)劃、SPMMS(軟件生產(chǎn)和維護(hù)管理保障)課題、Eureka(尤里卡)計(jì)劃等。每年,都有大量人力物力投入軟件可靠性研究項(xiàng)目,并取得一定成果。
國(guó)內(nèi)對(duì)于軟件可靠性的研究工作起步較晚,在軟件可靠性量化理論、度量標(biāo)準(zhǔn)(指標(biāo)體系)、建模技術(shù)、設(shè)計(jì)方法、測(cè)試技術(shù)等方面與國(guó)外差距較大。國(guó)內(nèi)多數(shù)軟件的生產(chǎn)方式還處于計(jì)算機(jī)時(shí)代的早期階段,缺點(diǎn)很明顯,主要表現(xiàn)在:1、透明度差;2、軟件交付系統(tǒng)聯(lián)調(diào)前只靠自檢,質(zhì)量得不到保證;3、用戶對(duì)交付的軟件可靠性缺乏信心。多數(shù)所謂的“軟件測(cè)試”僅僅對(duì)幾個(gè)預(yù)先指定的用例進(jìn)行一下表演就算通過(guò)。目前還沒(méi)有像硬件那樣完善的檢驗(yàn)體系,交付軟件的質(zhì)量不高。典型統(tǒng)計(jì)表明,“開(kāi)發(fā)階段平均每千行代碼有50-60個(gè)缺陷,交付后平均每千行代碼有15-18個(gè)缺陷”,有時(shí)會(huì)留下嚴(yán)重隱患。
目前,軟件可靠性管理方面還沒(méi)有建立起具有權(quán)威性的管理體系和規(guī)范。比如,如何描述軟件可靠性、如何測(cè)試、如何評(píng)估、如何設(shè)計(jì)、如何提高等。由于目前國(guó)內(nèi)外對(duì)于軟件可靠性模型的研究多集中在軟件的研制階段,而很少有涉及測(cè)試與評(píng)估階段的可靠性模型,所以從事軟件可靠性測(cè)試與評(píng)估研究是一個(gè)有理論價(jià)值和實(shí)際意義、并且存在一定難度的課題。
隨著計(jì)算機(jī)軟件編制的規(guī)范化,必然要將軟件可靠性考核納入科學(xué)、規(guī)范的軌道。具體表現(xiàn)在:1、在軟件系統(tǒng)研制任務(wù)中,制定軟件可靠性量化指標(biāo),使軟件考核有明確的標(biāo)準(zhǔn);2、建立完善的軟件測(cè)試、可靠性信息收集系統(tǒng),使在計(jì)算機(jī)軟件開(kāi)發(fā)中通過(guò)科學(xué)的軟件測(cè)試不斷減少缺陷;3、通過(guò)研究軟件可靠性考核方法,制定相應(yīng)的軟件考核規(guī)程、標(biāo)準(zhǔn);4、開(kāi)發(fā)軟件可靠性評(píng)估軟件,使軟件鑒定更加方便。
五.軟件可靠性評(píng)估的定義
可靠性(reliability)是產(chǎn)品在規(guī)定的條件下和規(guī)定的時(shí)間內(nèi)完成規(guī)定功能的能力,它的概率度量稱為可靠度。
軟件可靠性(software reliability)是軟件系統(tǒng)的固有特性之一,它表明了一個(gè)軟件系統(tǒng)按照用戶的要求和設(shè)計(jì)的目標(biāo),執(zhí)行其功能的正確程度。軟件可靠性與軟件缺陷有關(guān),也與系統(tǒng)輸入和系統(tǒng)使用有關(guān)。理論上說(shuō),可靠的軟件系統(tǒng)應(yīng)該是正確、完整、一致和健壯的。但是實(shí)際上任何軟件都不可能達(dá)到百分之百的正確,而且也無(wú)法精確度量。一般情況下,只能通過(guò)對(duì)軟件系統(tǒng)進(jìn)行測(cè)試來(lái)度量其可靠性。
這樣,給出如下定義:“軟件可靠性是軟件系統(tǒng)在規(guī)定的時(shí)間內(nèi)及規(guī)定的環(huán)境條件下,完成規(guī)定功能的能力”。根據(jù)這個(gè)定義,軟件可靠性包含了以下三個(gè)要素:
1.規(guī)定的時(shí)間
軟件可靠性只是體現(xiàn)在其運(yùn)行階段,所以將“運(yùn)行時(shí)間”作為“規(guī)定的時(shí)間”的度量?!斑\(yùn)行時(shí)間”包括軟件系統(tǒng)運(yùn)行后工作與掛起(開(kāi)啟但空閑)的累計(jì)時(shí)間。由于軟件運(yùn)行的環(huán)境與程序路徑選取的隨機(jī)性,軟件的失效為隨機(jī)事件,所以運(yùn)行時(shí)間屬于隨機(jī)變量。
2.規(guī)定的環(huán)境條件
環(huán)境條件指軟件的運(yùn)行環(huán)境。它涉及軟件系統(tǒng)運(yùn)行時(shí)所需的各種支持要素,如支持硬件、操作系統(tǒng)、其它支持軟件、輸入數(shù)據(jù)格式和范圍以及操作規(guī)程等。不同的環(huán)境條件下軟件的可靠性是不同的。具體地說(shuō),規(guī)定的環(huán)境條件主要是描述軟件系統(tǒng)運(yùn)行時(shí)計(jì)算機(jī)的配置情況以及對(duì)輸入數(shù)據(jù)的要求,并假定其它一切因素都是理想的。有了明確規(guī)定的環(huán)境條件,還可以有效判斷軟件失效的責(zé)任在用戶方還是研制方。
3.規(guī)定的功能
軟件可靠性還與規(guī)定的任務(wù)和功能有關(guān)。由于要完成的任務(wù)不同,軟件的運(yùn)行剖面會(huì)有所區(qū)別,則調(diào)用的子模塊就不同(即程序路徑選擇不同),其可靠性也就可能不同。所以要準(zhǔn)確度量軟件系統(tǒng)的可靠性必須首先明確它的任務(wù)和功能。
在講到軟件可靠性評(píng)估的時(shí)候,我們不得不提到軟件可靠性模型。軟件可靠性模型(Software reliability model)是指為預(yù)計(jì)或估算軟件的可靠性所建立的可靠性框圖和數(shù)學(xué)模型。建立可靠性模型是為了將復(fù)雜系統(tǒng)的可靠性逐級(jí)分解為簡(jiǎn)單系統(tǒng)的可靠性,以便于定量預(yù)計(jì)、分配、估算和評(píng)價(jià)復(fù)雜系統(tǒng)的可靠性。
六.軟件的缺陷和失效
缺陷(defect/fault)是指軟件的內(nèi)在缺陷。在軟件生命周期的各個(gè)階段,特別是在早期設(shè)計(jì)和編碼階段,設(shè)計(jì)者和編程人員的行動(dòng)(如需求不完整、理解有歧義、沒(méi)有完全實(shí)現(xiàn)需求或潛在需求、算法邏輯錯(cuò)、編程問(wèn)題等)會(huì)使軟件在一定條件下不能或?qū)⒉荒芡瓿梢?guī)定功能,這樣就不可避免地存在“缺陷”。
軟件一旦有缺陷,它將潛伏在軟件中,直到它被發(fā)現(xiàn)和正確修改。反之,在一定的環(huán)境下,軟件一旦運(yùn)行正確,它將繼續(xù)保持這種正確性,除非環(huán)境發(fā)生變化。此外,軟件中的缺陷不會(huì)為因使用而“損耗”。所以缺陷是“無(wú)損耗”地潛伏在軟件中。
如果軟件在運(yùn)行時(shí)沒(méi)有用到有缺陷的部分,軟件就可以正常運(yùn)行且正確工作;若用到了有缺陷的部分,則軟件的計(jì)算或判斷就會(huì)與規(guī)定的不符從而使軟件喪失執(zhí)行要求的功能的能力。軟件不能完成規(guī)定功能即“失效”(failure)或“故障”。對(duì)于無(wú)容錯(cuò)設(shè)計(jì)的軟件而言,局部失效則整個(gè)軟件失效。對(duì)于采取容錯(cuò)設(shè)計(jì)的軟件,局部故障或失效并不一定導(dǎo)致整個(gè)軟件失效。
判斷軟件是否失效的判據(jù)有:系統(tǒng)死機(jī)、系統(tǒng)無(wú)法啟動(dòng)、不能輸入輸出顯示記錄、計(jì)算數(shù)據(jù)有誤、決策不合理以及其它削弱或使軟件功能喪失的事件或狀態(tài)。
七.軟件的可靠性測(cè)試過(guò)程
完整的測(cè)試過(guò)程包括測(cè)試前的檢查、設(shè)計(jì)測(cè)試用例、測(cè)試實(shí)施、可靠性數(shù)據(jù)收集和編寫(xiě)測(cè)試報(bào)告5個(gè)步驟,下面逐一對(duì)這5個(gè)步驟進(jìn)行說(shuō)明。
1.測(cè)試前的檢查
在進(jìn)行應(yīng)用軟件的可靠性測(cè)試前有必要檢查軟件需求與研制任務(wù)書(shū)是否一致,檢查所交付程序和數(shù)據(jù)以及相應(yīng)的軟件支持環(huán)境是否符合要求,檢查文檔與程序的一致性,檢查軟件研制過(guò)程中形成的文檔是否齊全、文檔的準(zhǔn)確性和完整性以及是否通過(guò)了有關(guān)評(píng)審。
根據(jù)軟件行業(yè)的有關(guān)標(biāo)準(zhǔn),我們知道,軟件研制過(guò)程中形成的文檔共有十六種:《系統(tǒng)和段設(shè)計(jì)文件》、《軟件開(kāi)發(fā)計(jì)劃》、《軟件需求規(guī)格說(shuō)明》、《接口需求規(guī)格說(shuō)明》、《接口設(shè)計(jì)文檔》、《軟件設(shè)計(jì)文檔》、《軟件產(chǎn)品規(guī)格說(shuō)明》、《版本說(shuō)明文檔》、《軟件測(cè)試計(jì)劃》、《軟件測(cè)試說(shuō)明》、《軟件測(cè)試報(bào)告》、《計(jì)算機(jī)系統(tǒng)操作員手冊(cè)》、《軟件用戶手冊(cè)》、《軟件程序員手冊(cè)》、《固件保障手冊(cè)》、《計(jì)算機(jī)資源綜合保障手冊(cè)》。
應(yīng)該注意:這里的《軟件測(cè)試計(jì)劃》、《軟件測(cè)試說(shuō)明》和《軟件測(cè)試報(bào)告》是指研制方在研制過(guò)程中進(jìn)行測(cè)試所形成的測(cè)試文檔。原則上若軟件規(guī)模不太大,某些文檔可以合并。
這些檢查雖然增加了工作量,但對(duì)于在測(cè)試早期發(fā)現(xiàn)錯(cuò)誤和提高軟件的質(zhì)量是非常必要的。
2.設(shè)計(jì)測(cè)試用例
設(shè)計(jì)測(cè)試用例就是針對(duì)特定功能或組合功能設(shè)計(jì)測(cè)試方案,并編寫(xiě)成文檔。測(cè)試用例的選擇既要有一般情況,也應(yīng)有極限情況以及最大和最小的邊界值情況。因?yàn)闇y(cè)試的目的是暴露應(yīng)用軟件中隱藏的缺陷,所以在設(shè)計(jì)選取測(cè)試用例和數(shù)據(jù)時(shí)要考慮那些易于發(fā)現(xiàn)缺陷的測(cè)試用例和數(shù)據(jù),結(jié)合復(fù)雜的運(yùn)行環(huán)境,在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),來(lái)檢查應(yīng)用軟件是否都能產(chǎn)生正確的輸出。
一個(gè)典型的測(cè)試用例應(yīng)該包括下列詳細(xì)信息:
a.測(cè)試目標(biāo);
b.待測(cè)試的功能;
c.測(cè)試環(huán)境及條件;
d.測(cè)試日期;
e.測(cè)試輸入;
f.測(cè)試步驟;
g.預(yù)期的輸出;
h.評(píng)價(jià)輸出結(jié)果的準(zhǔn)則。
所有的測(cè)試用例應(yīng)該經(jīng)過(guò)專家評(píng)審才可以使用。
設(shè)計(jì)與選取測(cè)試用例集的第一步是對(duì)測(cè)試用例進(jìn)行描述,這種描述是否權(quán)威、完整、可理解與規(guī)范化,則決定了該測(cè)試用例能否或多大程度上可以被操作人員、軟件研制人員和試驗(yàn)鑒定人員所理解接受。所以,規(guī)范化的測(cè)試用例描述在軟件測(cè)試與評(píng)估中具有重要的作用。
3.測(cè)試實(shí)施
做好上述準(zhǔn)備工作后,就可以實(shí)施測(cè)試了。研制方交付的任何軟件文檔中與可靠性質(zhì)量特性有關(guān)的部分,包括產(chǎn)品說(shuō)明書(shū)、用戶文檔、程序以及數(shù)據(jù)都應(yīng)當(dāng)按照需求說(shuō)明和質(zhì)量需求進(jìn)行測(cè)試。在項(xiàng)目合同、需求說(shuō)明書(shū)和用戶文檔中規(guī)定的所有配置情況下,程序和數(shù)據(jù)都必須進(jìn)行測(cè)試。
在測(cè)試中,可以考慮進(jìn)行“強(qiáng)化輸入”,即輸入比正常輸入更惡劣(合理程度的惡劣)的輸入。如果軟件在強(qiáng)化輸入下可靠,只能說(shuō)明比正規(guī)輸入下可靠得多。
為了獲得更多的可靠性數(shù)據(jù),應(yīng)該采用多臺(tái)計(jì)算機(jī)同時(shí)運(yùn)行軟件,以增加累計(jì)運(yùn)行時(shí)間。
4.可靠性數(shù)據(jù)收集
軟件可靠性數(shù)據(jù)是可靠性評(píng)估的基礎(chǔ)。應(yīng)該建立軟件錯(cuò)誤報(bào)告、分析與糾正措施系統(tǒng)。按照相關(guān)標(biāo)準(zhǔn)的要求,制定和實(shí)施軟件錯(cuò)誤報(bào)告和可靠性數(shù)據(jù)收集、保存、分析和處理的規(guī)程,完整、準(zhǔn)確地記錄軟件測(cè)試階段的軟件錯(cuò)誤報(bào)告和收集可靠性數(shù)據(jù)。
用時(shí)間定義的軟件可靠性數(shù)據(jù)可以分為四類:1、失效時(shí)間數(shù)據(jù),記錄發(fā)生一次失效所累積經(jīng)歷的時(shí)間;2、失效間隔時(shí)間數(shù)據(jù),記錄本次失效與上一次失效間的間隔時(shí)間;3、分組數(shù)據(jù),記錄某個(gè)時(shí)間區(qū)內(nèi)發(fā)生了多少次失效;4、分組時(shí)間內(nèi)的累積失效數(shù),記錄某個(gè)區(qū)間內(nèi)的累積失效數(shù)。這四類數(shù)據(jù)可以互相轉(zhuǎn)化。
每個(gè)測(cè)試記錄必須包含充分的信息,包括:
a.測(cè)試時(shí)間;
b.含有測(cè)試用例的測(cè)試計(jì)劃或測(cè)試說(shuō)明;
c.所有與測(cè)試有關(guān)的測(cè)試結(jié)果,包括所有測(cè)試時(shí)發(fā)生的故障;
d.參與測(cè)試的個(gè)人身份。
5.編寫(xiě)測(cè)試報(bào)告
測(cè)試活動(dòng)結(jié)束后必須編寫(xiě)《軟件可靠性測(cè)試報(bào)告》,對(duì)測(cè)試項(xiàng)及測(cè)試結(jié)果在測(cè)試報(bào)告中加以總結(jié)歸納。編寫(xiě)時(shí)可以參考GJB 438A-97中提供的《軟件測(cè)試報(bào)告》格式,并應(yīng)根據(jù)情況進(jìn)行剪裁。測(cè)試報(bào)告應(yīng)具備下列內(nèi)容:
a.產(chǎn)品標(biāo)識(shí);
b.使用的配置(硬件和軟件);
c.使用的文檔;
d.產(chǎn)品說(shuō)明、用戶文檔、程序和數(shù)據(jù)的測(cè)試結(jié)果;
e.與需求不相符的項(xiàng)的列表;
f.測(cè)試的最終日期。
這種規(guī)范化的過(guò)程管理控制有利于獲得真實(shí)有效的數(shù)據(jù),為最終得到客觀的評(píng)估結(jié)果奠定基礎(chǔ)。
八.結(jié)束語(yǔ)
本文針對(duì)軟件的測(cè)試與可靠性評(píng)估方法進(jìn)行了專門(mén)地研究。當(dāng)然,最好的軟件可靠性評(píng)估方法是完全用現(xiàn)場(chǎng)試驗(yàn)的方法。評(píng)估軟件的可靠性受到許多客觀條件限制,其中最大的限制就是可靠性信息不足。所以應(yīng)該利用構(gòu)成軟件的各個(gè)模塊的歷史可靠性試驗(yàn)信息統(tǒng)計(jì)評(píng)估全系統(tǒng)的可靠性。這需要:收集到足夠的軟件以及各個(gè)模塊的歷史可靠性試驗(yàn)信息;各個(gè)模塊與軟件的可靠性關(guān)系明確;各模塊壽命類型已知;以及軟件研制部門(mén)的配合(因?yàn)檐浖v史信息數(shù)據(jù)主要由研制方掌握)。
參考文獻(xiàn):
[1].楊為民等,可靠性維修性保障性叢書(shū),國(guó)防工業(yè)出版社,1995.
[2].梅啟智、廖炯生、孫惠中,系統(tǒng)可靠性工程基礎(chǔ),科學(xué)出版社,1992.