基於評價軟體測試有效性問題的研究

shbwf發表於2012-11-28

  摘要:隨著軟體產業的迅猛發展,軟體產品的規模越來越大,複雜度越來越高,但是軟體產品質量卻變得越來越難以控制。在軟體測試過程中,因為多方面的因素,常常會導致一些錯誤和失效,為了改善測試過程、使測試過程變得更為有效,需要對軟體測試過程進行一個補充,那就是對軟體測試的有效性進行評價。本文介紹了評價軟體測試有效性工作的一般流程,並提出了一系列用於精確度量測試有效性的度量指標。

  關鍵詞:軟體測試;測試的有效性

  一、引言

  如同任何產品離不開質量檢驗一樣,軟體測試是在軟體投入執行前,對軟體需求分析、設計規格說明和編碼實現的最終審定,在軟體生存期中佔據著非常突出的重要位置。在軟體測試過程中,測試人員非常關心之前的測試過程有沒有得到改善,因為如果沒有,那麼在下一次又將犯一樣的錯誤,繼續執行無效的測試。同時由於測試在整個專案研發過程中佔用了相當一部分資訊服務資源,因此,管理人員也常常在思考測試是否有效,是否值得投入那麼多資金。因此,要改善測試過程、使測試過程變得更為有效,必須不斷地評價測試結果。

  二、軟體測試及評測的主要方法

  1、軟體測試方法

  軟體測試按階段可分為單元測試、整合測試、確認測試和系統測試。

  單元測試用於完成對最小的軟體設計單元的驗證工作。整合測試是把經過單元測試的模組按軟體的結構組合在一起作為一個系統或一個子系統來綜合測試,主要是用來發現程式的架構和體系結構設計方面的錯誤。確認測試是把軟體系統作為一個單一的執行實體而進行的需求有效性測試。系統測試(System Testing):將系統的測試軟體系統和其他資源(硬體、人機互動資訊資源和資料庫等)都綜合起來構成完整的計算機應用系統進行測試,是用來確保整個系統的效能、執行強度、安全性和功能都達到了預訂要求。

  根據測試時是否執行被測試的程式,軟體測試技術還可分為靜態測試方法和動態測試方法。從測試是否針對系統的內部結構和邏輯處理過程,通常可分為:白盒測試與黑盒測試。

  2、軟體測試評測方法

  測評方法主要有覆蓋測評和質量測評。覆蓋測評主要是基於需求和程式碼測試覆蓋完全程度的測評。修正的條件/判定覆蓋是基於程式碼覆蓋的評測方式,指定判定中每個條件的可能結果至少出現一次,可每個判定本身的可能結果至少出現一次,並且每個條件都顯示能單獨影響判定結果。質量測評是對被測試系統的可靠性、穩定性以及效能的測評,在此主要討論軟體可靠性的評測方法。

  3、軟體可靠性模型

  軟體可靠性模型按隨機性分類法可以分為隨機過程類模型和非隨機過程類模型。隨機過程模型與非隨機過程模型相比,非隨機過程模型的軟體失效具有重複性,重複性是指同一個故障在相同時間間隔內總是重複出現,失效與時間無關,對於隨機過程則剛好相反。

  4、軟體可靠性模型的適用性選擇

  軟體可靠性模型可以說是多種多樣,如何在紛繁複雜的模型集合中找到適合的模型是一個非常複雜的過程。將各種不同的測試策略用於模型的選擇標準,在很大程度上會增加模型的適用性。

  軟體錯誤就是軟體設計者在開發軟體過程中引入的軟體缺陷,當測試人員採用某種測試用例時,都希望能夠對軟體進行全面、系統地測試,但事實證明這種對於所有資料都遍歷一次的想法是不現實的,是根本無法實現的(小型系統除外)。為了解決上述問題,可以在輸入空間中有選擇的選取一些資料作為輸入資料,來提高測試效率。用事先準備好的輸入資料進行測試,軟體的錯誤就表現出來了,並且可以通過若干次的反覆測試得到相同的結論。對於以這種測試方法得出的失效資料來說,應當採用Nelson模型或其變形模型比較恰當。

  對於隨機的測試方法來說則是按照某種隨機的方式從輸入域中選取一定的輸入資料作為測試用例來對軟體進行測試。這種方式的測試過程中,用於測試的資料是隨機選擇的,所以不像上面的方法那樣具有重複性。這種隨機測試的方法在測試過程中發現錯誤後立即修改程式,假設在修改過程中不引進新的錯誤,那麼軟體的失效率必然是逐漸降低的,即給定的時間段內,軟體的失效資料將會越來越少。

  大量的軟體可靠性模型都證明,如果測試中的失效資料服從指數分佈,則失效數的遞減方式服從馬爾可夫變化過程,J-M模型及其變形模型就是這方面的典型代表。

  三、有效性評價的執行過程

  軟體測試的有效性評價的執行過程包含七個方面的內容:確定評估目標、確定度量內容、制定度量責任、選擇評估方法、確定所需事實、收集評估資料和評估測試有效性。

  1、確定評估目標

  定義目標,是為了使度量過程得到指導。前面提到,評價的目標就是為了識別測試無效的方面,以便採取修復措施。因此應該明確地確定評估執行的目標。在測試有效性評價中需要識別的內容包括以下幾個方面:

  1)識別測試弱項。用某些測試方法不能有效地發現系統的缺陷,識別測試弱項就是要識別這些測試方法中存在的問題。

  2)識別新測試工具的需要。確定當前存在的測試工具不再有效或高效,並將此作為獲得新的或改進的測試工具的基礎。

  3)評估專案測試。評價由專案組所執行的較經濟地減少專案缺陷的測試的有效性。

  4)識別良好的測試實踐。確定測試過程中的哪些實踐是最有效的,以使這些實踐活動可以用於所有的專案中。

  5)識別不好的測試實踐。確定專案組所使用的哪些實踐是無效的,以便建議其他專案不再使用這些實踐。

  6)識別經濟的測試實踐。確定哪些特徵使得測試最經濟,以便可以改善測試的費效比。

  2、確定度量內容

  明確了評價目標之後,接下來的工作就是確定度量的內容,即確定達到度量目標所需資訊的類別。應用系統的測試中,有五個方面是可度量的:

  1)涉及方。涉及方是指測試涉及哪些人,其涉及程度如何?

  2)測試的程度。測試的程度是指指測試覆蓋了哪些區域,對這些區域所執行的測試量如何?

  3)資源。資源是指測試過程消耗了多少資訊服務資源,包括人力和計算機資源?

  4)有效性。有效性是指每資源單元完成的測試是多少?

  5)評估。評估是指從測試過程收到的結果值是什麼?

  ......

本文轉載自51Testing軟體測試網,檢視更多:http://www.51testing.com/html/11/n-828811.html

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1059833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章