軟體測試方法的分析與研究

shbwf發表於2013-06-27

  摘要:描述軟體測試的方法的應用,闡釋了軟體測試方法的重要作用,以及軟體測試的基本流程,並對軟體測試分析的重要性進行研究。

  關鍵詞:軟體測試;測試用例;黑盒測試白盒測試;測試分析

  現階段,隨著資訊科技的迅速發展,軟體的發展規模大幅提高。軟體行業最為關心的主要問題是如何保證和提高軟體的質量。軟體的失效極大程度的帶來相應的經濟損失,甚至危及生命財產的安全。因此,軟體測試的地位得到了前所未有的提高。進而,軟體測試技術成為軟體開發過程的重要部分,它可以確認一個程式的品質及效能是否符合開發前提出的某些需求。然而,軟體測試的方法分析在整個測試過程中佔據了很重要的位置。軟體測試分析完成了,可以在測試前期就發現一些專案設計考慮不足的地方,降低了專案的風險,提高了測試效率,節約了測試成本。

  1、軟體測試

  一般在軟體投入使用前,應用合適的測試工具依據合理的測試方案和流程進行軟體的功能和效能測試,根據具體需求編寫不同功能的測試工具和方法,用來設計和維護測試系統,分析和評估測試方案中所有可能出現問題的過程,叫做軟體測試。其目的是為了發現錯誤而進行的程式執行,依據軟體開發各階段的規格說明和程式的內部結構,設計出合理的測試用例,並利用這些測試用例執行程式,發現程式中的錯誤,進而跟蹤故障,以確保所開發的軟體適合使用者需求。

  2、軟體測試的方法

  軟體測試是一項複雜的系統工程,從不同的角度考慮可以有不同的劃分方法,這是為了明確軟體測試的流程,進一步瞭解軟體測試具體要完成哪些工作,儘可能做到全面測試。

  2.1 按照關注軟體結構與演算法的角度

  (1)黑盒測試。黑盒測試是建立在軟體需求和功能性基礎上的測試,又稱為功能測試。用來檢測軟體中每個功能是否正常執行。在測試過程中,黑盒測試方法中,將程式假設為一個不能開啟的黑盒子,完全不必考慮程式內部結構和內部特性,直接進行程式介面的測試,只檢測程式功能能否在需求規格說明書的規定下正常執行,程式能否在接收正確輸入資訊後匯出正確的輸出資訊,從而保證資料及檔案等外部資訊的完整性。黑盒測試方法側重於程式外部結構,不是內部邏輯結構,它主要面向軟體介面和功能方面的測試。

  (2)白盒測試。白盒測試是基於軟體整體程式碼、路徑、分支及條件的測試,又稱為結構測試,它是遵循程式內部結構的測試,主要用來檢測產品內部操作是否依據設計規格說明書的規定正常進行,檢驗程式中的每條路徑是否按預定進行正確工作。白盒測試方法中,將程式假設為一個開啟的白盒子,依據程式內部邏輯結構中的相應資訊,設計確定正確的測試用例,測試程式中的所有邏輯路徑,隨機檢查程式的狀態,檢測實際的狀態與預期狀態一致性。白盒測試主要面向軟體驗證方面。

  黑盒測試和白盒測試兩者不能相互替代,而應相輔相成,互為補充,在測試的不同階段根據發現不同型別的錯誤而靈活使用。

  2.2 按照測試的不同階段的角度

  軟體測試的整個流程通常劃分為五個階段,即單元測試、整合測試、系統測試、驗收測試、迴歸測試。

  (1)單元測試。單元測試是檢測和驗證軟體中的最基本組成單位的過程,主要是對軟體中最小可測試單位正確性的檢測。在單元測試中,程式設計師首先要清楚內部程式設計和編碼的基本細節,並且需要開發出相應的測試驅動模組和樁模組來輔助進行單元測試。單元測試是在軟體開發過程中的最低階別的測試活動,它將獨立的軟體單元與程式的其他部分相隔離後進行測試。

  (2)整合測試。整合測試以單元測試為基礎進行測試,它依據軟體設計的基本要求將所有的模組組裝成為不同類別的子系統,之後整合進行測試。根據測試方案,各個模組被組裝成更大的系統,並在執行系統的過程中,檢測分析所組裝的系統是否正確,各個元件之間是否合理。

  (3)系統測試。系統測試是整合這些已被集合確認的軟體、硬體、網路等元素,進行資訊系統的各種組裝測試,以及確認測試的過程,以此來驗證軟體系統的正確性和系統的效能能否滿足軟體的需求規格,並且找出與需求規格不符之處,從而提出更加完善的方案。系統測試的過程,主要是在發現問題後,通過系統除錯找出錯誤原因和出錯位置,然後進行改正的過程。

  (4)驗收測試。驗收測試是系統開發生命週期中的一個階段,主要測試該軟體系統是否能夠滿足軟體需求規格或使用者所規定需求。這也是軟體投入使用前的最後一步測試,並且它是一種管理性和防禦性控制。

  (5)迴歸測試。迴歸測試主要應用在軟體維護階段的測試,在軟體執行後進行的修改測試,用來檢驗是否正確修改了軟體,是否達到預期目的,是否不影響軟體其它功能的正確性。自動迴歸測試能大大降低系統測試、維護升級等階段的成本。

  3、軟體測試方法分析

  軟體測試分析設計,最主要的目的是提前軟體測試工作的時間點,增強測試需求分析階段的一系列活動。從軟體分析設計階段開始介入測試,這樣便可儘早發現某些設計方面的不完整的方面,更早的修改設計,從而降低專案的成本。

  一般來說,軟體的測試成本會隨著軟體的逐步完善而相應提高。如果早期沒有檢查出軟體的需求分析和設計階段的某些錯誤,而是在編碼階段完成後,通過軟體的測試檢測出這些錯位,而不得不通過更改軟體設計來修復的話,那麼軟體的測試和開發的成本必然隨之增大,軟體如期交付的風險也相應提高。

  現階段,很多的軟體測試工作是在編碼期間或即將結束時才開始介入,實際上存在著前期投入不及時的問題。這樣就沒有足夠的人力和精力做好軟體測試的需求分析,多數會在連被測試物件都沒有充分了解的情況下就開始進行測試,這種瞭解只能在測試過程中慢慢熟悉被測系統。這樣,軟體測試很可能無法在規定的時間內,測試的結果也會有些影響,軟體就不能按時交付,成本隨之增加。

  綜上所述,軟體測試必須強調測試需求分析階段的工作,只有搞清測試的初衷才能順利的進行測試設計,清楚瞭解被測系統的執行環境,測試的設計才能更加真實的模擬被測物件執行的實際場景,營造出某些測試場景,會讓軟體測試工作實行的更加充分完備。

  4、結束語

  在計算機應用技術飛速發展的今天,軟體質量的好壞直接影響著企業的發展程式,完整的測試不僅可以給軟體質量進行一個正確的評價,而且是提高軟體質量的重要方法之一。然而在軟體測試過程中,所做的測試用例設計的合理性是由前期的測試分析所決定的,若前期準備的工作不足,後期的測試工作也就無法完全保證。因此,測試分析階段是軟體測試工作中必不可少關鍵環節。

[@more@]

本文出自51Testing軟體測試網:http://www.51testing.com/html/index.html

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

相關文章