軟件測試

軟件測試概念
  使用人工或者自動手段來運行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別.
  它是幫助識別開發完成(中間或最終的版本)的計算機軟件(整體或部分)的正確度(correctness) 、完全度(completeness)和質量(quality)的軟件過程;是SQA(software quality assurance)的重要子域。
  Grenford J.Myers曾對軟件測試的目的提出過以下觀點:
  (1)測試是爲了發現程序中的錯誤而執行程序的過程;
  (2)好的測試方案是極可能發現迄今爲止尚未發現的錯誤的測試方案;
  (3)成功的測試是發現了至今爲止尚未發現的錯誤的測試。
  然而,這種觀點指出測試是以查找錯誤爲中心,而不是爲了演示軟件的正確功能.但是隻從字面意思理解,可能會產生誤導,認爲發現錯誤是軟件測試的唯一目的,查找不出錯誤的測試就是沒有價值的測試,實際上並非如此!
  (1)測試並不僅僅是爲了找出錯誤.通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助項目管理者
  發現當前軟件開發過程中的缺陷,以便及時改進;
  (2)這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性;
  (3)沒有發現錯誤的測試也是有價值的,完整的測試是評定軟件質量的一種方法
  軟件測試的內容
  
  軟件測試主要工作內容是驗證(verification)和確認(validation ),下面分別給出其概念:
  驗證(verification)是保證軟件正確地實現了一些特定功能的一系列活動,即保證軟件做了你所期望的事情。(Do the right thing)
  1.確定軟件生存週期中的一個給定階段的產品是否達到前階段確立的需求的過程;
  2.程序正確性的形式證明,即採用形式理論證明程序符號設一計規約規定的過程;
  3.評市、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或文件等是否和規定的需求相一致進行判斷和提出報告。
  確認(validation)是一系列的活動和過程,目的是想證實在一個給定的外部環境中軟件的邏輯正確性。即保證軟件以正確的方式來做了這個事件(Do it right)
  1.靜態確認,不在計算機上實際執行程序,通過人工或程序分析來證明軟件的正確性;
  2.動態確認,通過執行程序做分析,測試程序的動態行爲,以證實軟件是否存在問題。
  軟件測試的對象不僅僅是程序測試,軟件測試應該包括整個軟件開發期問各個階段所產生的文檔,如需求規格說明、概要設計文檔、詳細設計文檔,當然軟件測試的主要對象還是源程序。
  從不同的角度出發,軟件測試可以劃分爲不同的分類
  從是否關心軟件內部結構和具體實現的角度劃分
  A.白盒測試
  B.黑盒測試
  C.灰盒測試
  從是否執行程序的角度
  
  A.靜態測試
  B.動態測試。
  從軟件開發的過程按階段劃分有
  A.單元測試
  B.集成測試
  C.確認測試
  D.驗收測試
  E.系統測試
  * 測試過程按4個步驟進行,即單元測試、集成測試、確認測試和系統測試及發版測試。
  * 開始是單元測試,集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。
  * 集成測試把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的構造進行測試。
  * 確認測試則是要檢查已實現的軟件是否滿足了需求規格說明中確定了的各種需求,以及軟件配置是否完全、正確。
  * 系統測試把已經經過確認的軟件納入實際運行環境中,與其它系統成份組合在一起進行測試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章