軟體測試 - 概述



什麼是測試?

測試是評估系統或其元件的過程,目的是確定其是否滿足指定的需求。簡單來說,測試就是執行一個系統,以識別與實際需求相反的任何差距、錯誤或缺失的需求。

根據 ANSI/IEEE 1059 標準,測試可以定義為 - 分析軟體專案以檢測現有條件和所需條件之間差異(即缺陷/錯誤/Bug)並評估軟體專案特徵的過程。

誰進行測試?

這取決於專案的流程和相關利益相關者。在 IT 行業,大型公司擁有一個團隊負責評估開發的軟體是否符合給定的需求。此外,開發人員也會進行測試,這被稱為**單元測試**。在大多數情況下,以下專業人員在其各自的能力範圍內參與系統測試 -

  • 軟體測試員
  • 軟體開發人員
  • 專案主管/經理
  • 終端使用者

不同的公司根據測試人員的經驗和知識,對測試軟體的人員有不同的職位名稱,例如軟體測試員、軟體質量保證工程師、QA 分析師等。

並非在軟體生命週期的任何時間都可以測試軟體。接下來的兩節將說明在 SDLC 中何時應該開始測試以及何時結束測試。

何時開始測試?

儘早開始測試可以降低返工成本和時間,併產生交付給客戶的無錯誤軟體。然而,在軟體開發生命週期 (SDLC) 中,測試可以從需求收集階段開始,並持續到軟體部署。

這也取決於所使用的開發模型。例如,在瀑布模型中,正式測試在測試階段進行;但在增量模型中,在每個增量/迭代結束時都會進行測試,並在最後測試整個應用程式。

在 SDLC 的每個階段都以不同的形式進行測試 -

  • 在需求收集階段,對需求的分析和驗證也被視為測試。

  • 在設計階段審查設計以改進設計也被視為測試。

  • 開發人員在完成程式碼後進行的測試也被歸類為測試。

何時停止測試?

很難確定何時停止測試,因為測試是一個永無止境的過程,沒有人能聲稱軟體已 100% 測試。在停止測試過程中需要考慮以下幾個方面 -

  • 測試截止日期

  • 測試用例執行完成

  • 功能和程式碼覆蓋率達到一定程度

  • Bug 率降至一定水平,並且沒有發現高優先順序的 Bug

  • 管理層決定

驗證與確認

這兩個術語對大多數人來說非常令人困惑,他們可以互換使用。下表突出顯示了驗證和確認之間的區別。

序號 驗證 確認
1 驗證解決了“您是否正確構建?”的問題。 確認解決了“您是否構建了正確的東西?”的問題。
2 確保軟體系統滿足所有功能。 確保功能滿足預期行為。
3 驗證首先進行,包括檢查文件、程式碼等。 確認在驗證之後進行,主要涉及對整個產品的檢查。
4 由開發人員完成。 由測試人員完成。
5 它具有靜態活動,因為它包括收集審查、演練和檢查以驗證軟體。 它具有動態活動,因為它包括根據需求執行軟體。
6 它是一個客觀過程,不需要主觀決策來驗證軟體。 它是一個主觀過程,涉及對軟體執行情況的主觀決策。
廣告