




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件測試與可靠性評估方法研究 本文作者 未知 摘自 機電之家 摘要:隨著科學技術的飛速發(fā)展,軟件的功能越來越強大,軟件的復雜性也越來越高,從而大大增加了軟件測試與可靠性評估的難度。為了保證一個軟件系統(tǒng)的質量,有必要針對軟件的測試與可靠性評估方法進行專門地研究。本文就是針對這一領域所做的一些研究。一.軟件測試的定義軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個重要階段,是軟件質量保證的關鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼進行最終復審的活動。1983年IEEE提出的軟件工程術語中給軟件測試下
2、的定義是:“使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結果與實際結果之間的差別”。這個定義明確指出:軟件測試的目的是為了檢驗軟件系統(tǒng)是否滿足需求。從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應該是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”?;蛘哒f,軟件測試應該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內部結構而精心設計一批測試用例(即輸入數(shù)據(jù)及其預期的輸出結果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤或缺陷。二.軟件測試的生命周期測試主要依據(jù)是被試系統(tǒng)的研制任務書和技術規(guī)格書,是對軟件整體功能和性能的綜合測試與評估。
3、測試原理是軟件測試活動的理論基礎,測試方法是測試原理的實際應用和獲得測試數(shù)據(jù)的手段?;谲浖墓残裕瑢τ谲浖臏y試要遵循一般軟件的測試原理和方法。同時,針對軟件的特性,必須找到合適的測試方法。測試用例的合理性對于軟件的測試與評估具有關鍵作用,而如何使設計的用例合情、合理并且典型有效并不容易。所以應該與軟件的研制人員以及最終用戶一起,有針對性地研究實際操作環(huán)境并加以描述,形成合理的測試用例集。另一方面,軟件運行環(huán)境的復雜程度對軟件評估具有重要作用,所以應產生盡量逼真的運行背景以便于研究。軟件測試的周期如圖1所示。實踐證明,盡管人們在開發(fā)軟件的過程中使用了許多保證軟件質量的方法和技術,但開發(fā)出的軟
4、件中還會隱藏許多錯誤和缺陷。這對于規(guī)模大、復雜性高的軟件更是如此。所以,嚴格的軟件測試對于保證軟件質量具有重要作用。 圖1 軟件測試的生命周期軟件測試在軟件生存期中橫跨兩個階段。在軟件編碼階段,當編寫出一個模塊后,通常要對它進行必要的測試(稱為單元測試),這時測試與編碼屬于同一個階段。在編碼階段結束后,對軟件系統(tǒng)還要進行各種綜合測試(集成測試與系統(tǒng)測試),這是一個獨立階段,即軟件測試階段。在這個測試階段又有兩種性質不同的測試:研制單位內部進行的集成測試和系統(tǒng)測試與用戶(或第三方)進行的驗收性測試。在軟件測試生命周期內,錯誤在軟件開發(fā)的每個階段都可能被帶入。在軟件測試中,某些錯誤被發(fā)現(xiàn)、分類、隔
5、離,最終被糾正。由于軟件不斷被修改,所以這個過程是一個反復進行的過程。三.測試方法和流程軟件測試方法主要有黑箱測試方法與白箱測試兩類。黑箱測試又稱功能測試、數(shù)據(jù)驅動測試或基于規(guī)格說明的測試,是在完全不考慮程序內部結構和內部特性的情況下,檢查輸入與輸出之間關系是否符合要求。白箱測試又稱結構測試、邏輯驅動測試或基于程序的測試,是在已知程序內部結構的情況下設計測試用例的測試方法。顯然,白箱測試適合在單元測試中運用,而在獨立測試階段多采用黑箱測試方法。測試用例(Test case)實際上是對軟件運行過程中所有可能存在的目標、運動、行動、環(huán)境和結果的描述,是對客觀世界的一種抽象。設計測試用例即設計針對特
6、定功能或組合功能的測試方案,并編寫成文檔。測試用例應該體現(xiàn)軟件工程的思想和原則。測試用例的選擇既要有一般情況,也應有極限情況以及最大和最小的邊界值情況。因為測試的目的是暴露應用軟件中隱藏的缺陷,所以在設計選取測試用例和數(shù)據(jù)時要考慮那些易于發(fā)現(xiàn)缺陷的測試用例和數(shù)據(jù),結合復雜的運行環(huán)境,在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查應用軟件是否都能產生正確的輸出。軟件測試所得到的數(shù)據(jù)經(jīng)過處理以后,可以用來作為評估軟件系統(tǒng)是否滿足用戶需求的依據(jù)。軟件測試階段的信息流如圖2所示:圖2 軟件測試信息流四.軟件評估理論及其發(fā)展現(xiàn)狀軟件的評估理論是進行評估的理論依據(jù),評估方法是評估理論的實際應用和處理
7、測試數(shù)據(jù)的方法。對于評估指標體系中的不同指標,應該根據(jù)測試數(shù)據(jù)的不同,選取相應的評估理論和方法。軟件評估(Software assessment)的實質是對軟件質量的度量與評價。我們對軟件質量評估的定義是:“為了確定一特定的軟件模塊、軟件包或軟件產品是否驗收合格或發(fā)布而把特定的評估準則應用到該軟件模塊、軟件包或軟件產品上去的活動”??梢?,軟件評估的對象是“軟件模塊、軟件包或軟件產品”,軟件評估的目的是“確定被評對象是否驗收合格或發(fā)布”。定義中提到的評估準則是“根據(jù)特定的軟件產品和質量需求,確定產品是否通過驗收或發(fā)布的一組成文的規(guī)則和條件的集合”。從廣泛意義上講,評估準則已經(jīng)包括了評估方法和指標
8、體系,即如何處理獲得的測試數(shù)據(jù)與如何應用評估準則到被評估軟件上。軟件可靠性評估(Software reliability assessment)的完整含義是:根據(jù)軟件系統(tǒng)可靠性結構(單元與系統(tǒng)間可靠性關系)、壽命類型和各單元的可靠性試驗信息,利用概率統(tǒng)計方法,評估出系統(tǒng)的可靠性特征量。目前,軟件可靠性工程是一門雖然得到普遍承認,但還處于不成熟的正在發(fā)展確立階段的新興工程學科。國外從60年代后期開始加強軟件可靠性的研究工作,經(jīng)過20年左右的研究推出了各種可靠性模型和預測方法,于1990年前后形成較為系統(tǒng)的軟件可靠性工程體系。同時,從80年代中期開始,西方各主要工業(yè)強國均確立了專門的研究計劃和課題
9、,如英國的AIVEY(軟件可靠性和度量標準)計劃、歐洲的ESPRIT(歐洲信息技術研究與發(fā)展戰(zhàn)略)計劃、SPMMS(軟件生產和維護管理保障)課題、Eureka(尤里卡)計劃等。每年,都有大量人力物力投入軟件可靠性研究項目,并取得一定成果。國內對于軟件可靠性的研究工作起步較晚,在軟件可靠性量化理論、度量標準(指標體系)、建模技術、設計方法、測試技術等方面與國外差距較大。國內多數(shù)軟件的生產方式還處于計算機時代的早期階段,缺點很明顯,主要表現(xiàn)在:1、透明度差;2、軟件交付系統(tǒng)聯(lián)調前只靠自檢,質量得不到保證;3、用戶對交付的軟件可靠性缺乏信心。多數(shù)所謂的“軟件測試”僅僅對幾個預先指定的用例進行一下表演
10、就算通過。目前還沒有像硬件那樣完善的檢驗體系,交付軟件的質量不高。典型統(tǒng)計表明,“開發(fā)階段平均每千行代碼有50-60個缺陷,交付后平均每千行代碼有15-18個缺陷”,有時會留下嚴重隱患。目前,軟件可靠性管理方面還沒有建立起具有權威性的管理體系和規(guī)范。比如,如何描述軟件可靠性、如何測試、如何評估、如何設計、如何提高等。由于目前國內外對于軟件可靠性模型的研究多集中在軟件的研制階段,而很少有涉及測試與評估階段的可靠性模型,所以從事軟件可靠性測試與評估研究是一個有理論價值和實際意義、并且存在一定難度的課題。隨著計算機軟件編制的規(guī)范化,必然要將軟件可靠性考核納入科學、規(guī)范的軌道。具體表現(xiàn)在:1、在軟件系
11、統(tǒng)研制任務中,制定軟件可靠性量化指標,使軟件考核有明確的標準;2、建立完善的軟件測試、可靠性信息收集系統(tǒng),使在計算機軟件開發(fā)中通過科學的軟件測試不斷減少缺陷;3、通過研究軟件可靠性考核方法,制定相應的軟件考核規(guī)程、標準;4、開發(fā)軟件可靠性評估軟件,使軟件鑒定更加方便。五.軟件可靠性評估的定義可靠性(reliability)是產品在規(guī)定的條件下和規(guī)定的時間內完成規(guī)定功能的能力,它的概率度量稱為可靠度。軟件可靠性(software reliability)是軟件系統(tǒng)的固有特性之一,它表明了一個軟件系統(tǒng)按照用戶的要求和設計的目標,執(zhí)行其功能的正確程度。軟件可靠性與軟件缺陷有關,也與系統(tǒng)輸入和系統(tǒng)使用
12、有關。理論上說,可靠的軟件系統(tǒng)應該是正確、完整、一致和健壯的。但是實際上任何軟件都不可能達到百分之百的正確,而且也無法精確度量。一般情況下,只能通過對軟件系統(tǒng)進行測試來度量其可靠性。這樣,給出如下定義:“軟件可靠性是軟件系統(tǒng)在規(guī)定的時間內及規(guī)定的環(huán)境條件下,完成規(guī)定功能的能力”。根據(jù)這個定義,軟件可靠性包含了以下三個要素:1.規(guī)定的時間軟件可靠性只是體現(xiàn)在其運行階段,所以將“運行時間”作為“規(guī)定的時間”的度量?!斑\行時間”包括軟件系統(tǒng)運行后工作與掛起(開啟但空閑)的累計時間。由于軟件運行的環(huán)境與程序路徑選取的隨機性,軟件的失效為隨機事件,所以運行時間屬于隨機變量。2.規(guī)定的環(huán)境條件環(huán)境條件指軟
13、件的運行環(huán)境。它涉及軟件系統(tǒng)運行時所需的各種支持要素,如支持硬件、操作系統(tǒng)、其它支持軟件、輸入數(shù)據(jù)格式和范圍以及操作規(guī)程等。不同的環(huán)境條件下軟件的可靠性是不同的。具體地說,規(guī)定的環(huán)境條件主要是描述軟件系統(tǒng)運行時計算機的配置情況以及對輸入數(shù)據(jù)的要求,并假定其它一切因素都是理想的。有了明確規(guī)定的環(huán)境條件,還可以有效判斷軟件失效的責任在用戶方還是研制方。3.規(guī)定的功能軟件可靠性還與規(guī)定的任務和功能有關。由于要完成的任務不同,軟件的運行剖面會有所區(qū)別,則調用的子模塊就不同(即程序路徑選擇不同),其可靠性也就可能不同。所以要準確度量軟件系統(tǒng)的可靠性必須首先明確它的任務和功能。在講到軟件可靠性評估的時候,
14、我們不得不提到軟件可靠性模型。軟件可靠性模型(Software reliability model)是指為預計或估算軟件的可靠性所建立的可靠性框圖和數(shù)學模型。建立可靠性模型是為了將復雜系統(tǒng)的可靠性逐級分解為簡單系統(tǒng)的可靠性,以便于定量預計、分配、估算和評價復雜系統(tǒng)的可靠性。六.軟件的缺陷和失效缺陷(defect/fault)是指軟件的內在缺陷。在軟件生命周期的各個階段,特別是在早期設計和編碼階段,設計者和編程人員的行動(如需求不完整、理解有歧義、沒有完全實現(xiàn)需求或潛在需求、算法邏輯錯、編程問題等)會使軟件在一定條件下不能或將不能完成規(guī)定功能,這樣就不可避免地存在“缺陷”。軟件一旦有缺陷,它將潛
15、伏在軟件中,直到它被發(fā)現(xiàn)和正確修改。反之,在一定的環(huán)境下,軟件一旦運行正確,它將繼續(xù)保持這種正確性,除非環(huán)境發(fā)生變化。此外,軟件中的缺陷不會為因使用而“損耗”。所以缺陷是“無損耗”地潛伏在軟件中。如果軟件在運行時沒有用到有缺陷的部分,軟件就可以正常運行且正確工作;若用到了有缺陷的部分,則軟件的計算或判斷就會與規(guī)定的不符從而使軟件喪失執(zhí)行要求的功能的能力。軟件不能完成規(guī)定功能即“失效”(failure)或“故障”。對于無容錯設計的軟件而言,局部失效則整個軟件失效。對于采取容錯設計的軟件,局部故障或失效并不一定導致整個軟件失效。判斷軟件是否失效的判據(jù)有:系統(tǒng)死機、系統(tǒng)無法啟動、不能輸入輸出顯示記錄
16、、計算數(shù)據(jù)有誤、決策不合理以及其它削弱或使軟件功能喪失的事件或狀態(tài)。七.軟件的可靠性測試過程完整的測試過程包括測試前的檢查、設計測試用例、測試實施、可靠性數(shù)據(jù)收集和編寫測試報告5個步驟,下面逐一對這5個步驟進行說明。1.測試前的檢查在進行應用軟件的可靠性測試前有必要檢查軟件需求與研制任務書是否一致,檢查所交付程序和數(shù)據(jù)以及相應的軟件支持環(huán)境是否符合要求,檢查文檔與程序的一致性,檢查軟件研制過程中形成的文檔是否齊全、文檔的準確性和完整性以及是否通過了有關評審。根據(jù)軟件行業(yè)的有關標準,我們知道,軟件研制過程中形成的文檔共有十六種:系統(tǒng)和段設計文件、軟件開發(fā)計劃、軟件需求規(guī)格說明、接口需求規(guī)格說明、
17、接口設計文檔、軟件設計文檔、軟件產品規(guī)格說明、版本說明文檔、軟件測試計劃、軟件測試說明、軟件測試報告、計算機系統(tǒng)操作員手冊、軟件用戶手冊、軟件程序員手冊、固件保障手冊、計算機資源綜合保障手冊。應該注意:這里的軟件測試計劃、軟件測試說明和軟件測試報告是指研制方在研制過程中進行測試所形成的測試文檔。原則上若軟件規(guī)模不太大,某些文檔可以合并。這些檢查雖然增加了工作量,但對于在測試早期發(fā)現(xiàn)錯誤和提高軟件的質量是非常必要的。2.設計測試用例設計測試用例就是針對特定功能或組合功能設計測試方案,并編寫成文檔。測試用例的選擇既要有一般情況,也應有極限情況以及最大和最小的邊界值情況。因為測試的目的是暴露應用軟件
18、中隱藏的缺陷,所以在設計選取測試用例和數(shù)據(jù)時要考慮那些易于發(fā)現(xiàn)缺陷的測試用例和數(shù)據(jù),結合復雜的運行環(huán)境,在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查應用軟件是否都能產生正確的輸出。一個典型的測試用例應該包括下列詳細信息:a.測試目標;b.待測試的功能;c.測試環(huán)境及條件;d.測試日期;e.測試輸入;f.測試步驟;g.預期的輸出;h.評價輸出結果的準則。所有的測試用例應該經(jīng)過專家評審才可以使用。設計與選取測試用例集的第一步是對測試用例進行描述,這種描述是否權威、完整、可理解與規(guī)范化,則決定了該測試用例能否或多大程度上可以被操作人員、軟件研制人員和試驗鑒定人員所理解接受。所以,規(guī)范化的測試
19、用例描述在軟件測試與評估中具有重要的作用。3.測試實施做好上述準備工作后,就可以實施測試了。研制方交付的任何軟件文檔中與可靠性質量特性有關的部分,包括產品說明書、用戶文檔、程序以及數(shù)據(jù)都應當按照需求說明和質量需求進行測試。在項目合同、需求說明書和用戶文檔中規(guī)定的所有配置情況下,程序和數(shù)據(jù)都必須進行測試。在測試中,可以考慮進行“強化輸入”,即輸入比正常輸入更惡劣(合理程度的惡劣)的輸入。如果軟件在強化輸入下可靠,只能說明比正規(guī)輸入下可靠得多。為了獲得更多的可靠性數(shù)據(jù),應該采用多臺計算機同時運行軟件,以增加累計運行時間。4.可靠性數(shù)據(jù)收集軟件可靠性數(shù)據(jù)是可靠性評估的基礎。應該建立軟件錯誤報告、分析與糾正措施系統(tǒng)。按照相關標準的要求,制定和實施軟件錯誤報告和可靠性數(shù)據(jù)收集、保存、分析和處理的規(guī)程,完整、準確地記錄軟件測試階段的軟件錯誤報告和收集可靠性數(shù)據(jù)。用時間定義的軟件可靠性數(shù)據(jù)可以分為四類:1、失
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲連鎖加盟與區(qū)域代理合作協(xié)議范本
- 餐飲門面租賃合同租賃終止條件與違約責任解析
- 員工培訓案例
- 茶園承包與茶葉品牌保護與維權合作協(xié)議
- 生態(tài)工業(yè)園區(qū)廠房土地抵押借款合同
- 餐飲連鎖品牌加盟加盟商權益保障合同
- 智能家居系統(tǒng)承包安裝服務合同范本
- 拆除工程安全責任書:建筑拆除安全合同
- 名醫(yī)診療經(jīng)驗傳承師承合同
- 師生夏季安全教育
- DB34∕T 4004-2021 埋地聚乙烯燃氣管道定期檢驗規(guī)則
- 2024閥控式鉛酸密封蓄電池
- 2022-2023學年山東省泰安市高一下學期期末數(shù)學試題(解析版)
- 倉庫搬運裝卸服務方案
- 示范區(qū)城區(qū)控制性詳細規(guī)劃說明書
- 馬鞍山二中理科創(chuàng)新人才實驗班招生考試物理試題
- GB/T 44198-2024空間站科學實驗系統(tǒng)集成與驗證要求
- 新教材人教版高中物理選擇性必修第三冊全冊各章節(jié)知識點考點
- 安徽省馬鞍山市2024-2025學年高一數(shù)學下學期期末考試試題含解析
- 車庫業(yè)主與租賃者安裝充電樁協(xié)議書
- 勞務班組施工合同范本(2024版)
評論
0/150
提交評論