軟體漸進性測試策略

玄學醬發表於2017-07-10

一、軟體測試的目的

  軟體開發過程中軟體測試具有非常重要的作用。軟體測試的目的在於按照規定的步驟,採用正確的方法,對開發設計階段提供的軟體工件進行嚴格的檢測,發現和改正軟體錯誤,使軟體質量在測試過程中不斷提高,逐漸達到規定要求,能夠交付使用者使用。如果測試中察覺軟體設計質量太差,暴露出的各種問題,不是依靠測試能夠完全解決,專案主管可以中斷測試,責成設計組加以改進。當問題十分嚴重,已經無法滿足使用者既定的需求時,專案甚至可能被迫取消。

  軟體測試過程中,專案主管和質量保證部門可以採集到各種軟體質量原始資訊,其中最重要的是軟體錯誤資料,包括軟體錯誤的型別、錯誤的數量、錯誤產生的階段、錯誤存在的部位。有了這些資料,就近期而言,可以對軟體已經達到的質量水平做出定量評估、可以對軟體可靠性增長過程及軟體開發中的資源消耗做出預測。長期而言,從各個時期各種軟體專案積累的質量資料,能夠準確反映開發單位具有的開發和質量保證能力,能夠反映開發單位能力提高過程。在重視質量相關的資料採集和擁有的歷史資料方面,我國的軟體開發單位和已開發國家相比,存在明顯的差距。

  國內外軟體開發經驗表明,軟體測試需要消耗大量資源,軟體測試所需的工時通常佔據其總開發工時的40%到50% ,所以高質量履行和完成軟體測試階段的各種任務,十分重要。其中包括制定正確的測試策略,採用科學的測試方法和測試技術等,制訂正確的測試策略自然應該成為關注的首選。

  二、漸進測試策略

  漸進測試策略是指將軟體的測試程式,進一步細分為相互聯絡而又各不相同的子階段,對交付測試的原始軟體產品,從簡單到複雜,從單元到系統逐步進行測試的、完整的測試體系框架。整個測試過程通常包括單元測試、綜合測試、系統測試、認證和交收測試幾個階段。

  採用漸進式測試策略,能夠有效地降低錯誤定位的難度,有利於發現和改正錯誤。漸進測試必須從單元測試開始,單元測試的主要目的是檢查和改正單元內部的錯誤,只有在單元測試完成之後才能進入與其他單元結合的綜合測試。綜合測試主要目的是檢查單元之間的介面,以及檢查程式的總體結構。系統測試的主要目的是檢測軟體是否滿足需求說明的要求,這個階段發現的錯誤往往屬於高層錯誤,例如由於對使用者要求的誤解和使用者要求的不一致造成的錯誤。改正這種型別的錯誤,需要付出昂貴的代價,是最不希望出現的事件。可見測試固然對保證軟體質量十分重要,但是畢竟屬於事後把關性質,預防為主仍然是最佳的選擇。應該更加關注軟體設計,特別是需求分析工作的質量。

  根據軟體的不同性質和某些軟體的特殊要求,在上述4個階段之外,還需要增加一些其他的測試階段。表1是一個典型的辦公自動化軟體測試過程,它包括了單元測試、綜合測試、軟體系統測試、強度測試、認證和交收測試5個階段。表2是一個典型的嵌入式系統的軟體測試過程,它包括了軟體單元測試、軟體綜合測試、軟體系統測試、硬體和軟體系統綜合測試、認證和交收測試5個階段。

  如果換一個角度來觀察漸進測試策略,可以認為漸進測試策略是針對軟體設計過程所作的由下而上的逆向驗證,從而使漸進測試的內在合理性得到進一步展示。圖1顯示了嵌入式軟體測試過程和前期各個設計階段的對應關係。








====================================分割線================================



最新內容請見作者的GitHub頁:http://qaseven.github.io/


相關文章