軟件測試過程----產品不同測試階段的測試分析

摘要

軟件測試應該貫穿軟件產品的整個研發週期,在不同的研發階段,會有不同的測試方法和手段跟進。進行不同的測試來保障產品的質量。軟件測試的分類有很多種,本文章就以一個產品開發的流程爲時間線,分析在產品不同的研發階段採用的不同的對應的測試方法和手段。本文只羅列出測試手段和方法,每種測試方法詳細的測試過程由於篇幅受限,不詳細探討。

1、規格說明書審查

審查需求分析規格說明書是否完整、正確和清晰。這一步是最容易忽略卻是很關鍵的一步。軟件設計是基於用戶需求的,充分理解用戶的需求才能研發出與用戶需求一致的產品。測試人員需要審查客戶需求,爲以後的測試計劃和設計測試用例做準備。

2、系統和程序設計審查

按照需求規格說明書對系統結構的合理性、處理過程的正確性進行評價,也就是代碼會審,需要研發與測試人員一起參加,通過閱讀討論來審查程序結構、代碼風格、算法等。

3、單元測試

單元測試的對象是程序系統中的最小單元,模塊或者組件。主要使用的測試方法爲白盒測試,並在測試過程中儘可能地提高語句覆蓋率、判斷覆蓋率、條件覆蓋率。在測試過程中有時需要輔以黑盒測試。單元測試通常採取的手段有代碼走讀、靜態分析和動態分析等。

4、集成測試

在單元測試的基礎上,將模塊按照設計要求組裝起來同時進行測試。集成測試採用的手段與單元測試類似。不同的是其主要的目的是發現與模塊之間的接口有關的問題。將各個模塊之間集成起來的方法有多種,如自頂向下法、自底向上法、混合策略、大棒與三明治集成方法等。以下是各種集成方法的性能比較。
各種集成方法的性能比較

5、功能測試

功能測試多采用黑盒測試的方法,主要是根據產品規格說明書,來檢測被測系統是否滿足各方面功能的使用需求。在功能測試中,使用黑盒測試的方法時測試用例的設計很重要,通常需要用等價類劃分法、邊界值劃分法、決策表、因果圖等方法來設計高質量的測試用例。

6、系統測試

系統測試是將軟件作爲計算機系統的一部分,與計算機硬件、計算機的某些支持軟件、數據、人員等系統元素結合起來,在實際運行環境下對計算機系統進行測試來發現軟件潛在的問題。主要包括了以下測試:
6.1 壓力測試
長時間或者超大負荷地運行被測軟件,來測試被測系統的性能、可靠性、穩定性等。瞭解被測系統的性能瓶頸。
6.2 容量測試
分析被測系統的某項指標的極限值,如某個Web站點可以支持的併發用戶的的訪問量極限等。如果不能滿足需求則需要進行改進。
6.3 性能測試
性能測試又包含如下測試等:

  1. 基準測試
    比較被測對象與已知的參照對象的負載和系統的性能。
  2. 競爭測試
    測試被測對象對於多個用戶對相同資源的請求的處理是否可以接受。
  3. 負載測試
    測試和評估被測系統在不同負荷條件下操作極限的可接受性,包括負載和響應時間的特徵。如果是分佈式系統或者採用了負載均衡等技術,還需要測試負載平衡方法能否正常工作。
  4. 強度測試
    測試系統遇到異常條件時按預期運行,如不充足的內存、不可用的服務或者硬件、過低的共享資源等。

6.4 安全測試
測試系統對風法入侵的防範能力

6.5 容錯測試
測試被測系統出錯時能否在指定時間內修正錯誤並重新啓動系統、恢復數據等。對於需要人工干預的系統,還需要評估系統恢復時間是否在可接受範圍以內。

6.6 可靠性測試
測試系統在規定條件下的規定時間內完成規定功能的能力

6.7 安裝測試
檢測被測系統是否能正確地安裝,安裝過程是否有明顯和合理的提示信息、升級安裝後原有程序是否能正常運行等。卸載後佔用的系統資源是否全部釋放、卸載後是否會影響其它軟件的使用等。

7、驗收測試

驗收測試包含了以下測試
7.1用戶界面和可用性測試
這便是我們常說的UI測試,主要檢測用戶界面是否符合標準和規範,是否滿足直觀性、一致性、靈活性、舒適性、正確性、實用性等。
7.2兼容性測試
驗證軟件之間是否能正確地交互和共享信息。包括對不同版本之間的兼容性測試。
7.3文檔測試
對軟件文檔的正確性、完備性、可理解性進行檢查。若有驅動文檔則需要對驅動文檔進行測試。
7.4 α測試和β測試

  1. α測試
    公司內部人員模擬用戶對軟件產品進行測試。需要盡最大可能地涵蓋所有的用戶可能的操作。
  2. β測試
    公司組織各方面典型用戶在日常工作中實際使用β版本,並要求用戶報告異常情況,提出批評和意見等。然後再對β版本進行改進和完善。

8、其它測試

在軟件研發過程中,糾正或修改缺陷後需要進行迴歸測試,即測試修改的部分是否會對原來的功能帶來影響,是否會引入新的BUG。在集成測試後可能還需要進行確認測試,確認軟件的功能和性能達到用戶的合理期待。並再次審查用戶需求。除此之外,由於平臺不同,還有接口測試等其它未列出的測試。

結尾
以上是根據典型的研發過程進行的不同階段的測試分析,目的是爲了儘可能地涵蓋大部分的測試方法手段。在實際的操作過程中,可能因平臺等方面的不同而使用不同的測試策略和手段。實際上單元測試目前可能更多的需要研發人員來進行測試,或者在開發過程中以接口測試替代,較少進行單元測試。根據需求,實際研發時也可能會省去一些不必要的測試。本文的重點是儘可能地瞭解測試的過程和方法。這些方法和手段要麼藉助工具,編寫腳本,要麼使用自己開發的測試框架來實現,本文中不可能一一深入探討。旨在對測試過程和方法手段有一個全面的瞭解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章