【刷題】面筋-測開-軟件測試概述/對測試的理解


目錄

=======================================================

概述

  • 簡單認識軟件測試,可以從四個方面理解

    • 軟件測試概述
    • 測試用例概述
    • 測試分類概述
    • 軟件質量評估

=======================================================

1-軟件測試概述

對軟件測試的理解

  • 軟件測試是軟件工程中的一個重要組成部分,基本與開發並行,開發寫代碼,測試測代碼。
  • 軟件測試工程師通過多種測試方法,和代碼管理工具、自動化工具等,對軟件產品的多個模塊,如功能和性能等進行測試,以檢查軟件產品是否有bug,來保證產品的質量。

軟件測試的作用

  • 確保軟件產品質量:軟件測試是軟件產品質量保證的重要措施之一
  • 術業有專攻:軟件測試人員比其他人做軟件測試測試工作,效率更高,效果更好;

軟件測試的關鍵點

  • 盡早發現缺陷:伴隨軟件開發的各個環節,及時發現問題解決問題,避免最后問題堆積導致無法解決或解決工程量巨大。
  • 用盡量少的測試用例發現盡可能多的缺陷
  • 提升發現缺陷的效率

軟件測試的定義

  • 測試定義

    • 通過設計和運行測試用例,來校驗被測系統的實際輸出與預期輸出是否一致,最終目標是保證系統應符合需求。
      • 根本目的:確保被測系統符合用戶需求
      • 基本手段:設計測試用例
      • 執行方式:手工/自動化
      • 測試策略:動態運行/靜態審閱
      • 通用流程:計划、設計、實施、評估
    • 軟件測試以需求為中心。
    • 需求:定義需求(委托方)--分析需求(雙方)--實現需求(研發)--校驗需求(測試)。
  • 測試分類:

    • 軟件測試包括動態測試和靜態檢查兩類方法;
    • 測試的執行包括人工和自動化兩類策略。

=======================================================

2-測試用例概述

定義

  • 基於風險最低、效率最高、分而治之的測試設計原則;
  • 能代表需求的小的測試單元,描述用戶預期輸出,反映系統實際執行結果。

測試用例組成

  • 輸入+輸出+測試環境

    • 輸入:測試數據和操作步驟
    • 輸出:系統預期執行結果
    • 測試環境:是系統環境設置,即進行軟件測試所必需的工作平台和前提條件
  • 具體:

    • 分為9個方面:用例編號/測試項/測試標題/用例屬性/重要級別/預置條件/測試輸入/操作步驟/預期結果/實際輸出
       - 一般情況下分為以上幾項可根據公司要求進行增刪

測試用例的基本屬性

  • 典型性:

    • 能揭示最有可能存在缺陷的地方,能代表和覆蓋合理與不合理、合法或不合法的情況。
  • 可測試性:

    • 一個測試用例的預期輸出必須是可以檢驗的,可以根據相關開發文檔得到明確的、可判定的結論。
  • 可重現性:

    • 對於相同的測試用例,系統的預期執行結果應該完全相同;
    • 否則,如果系統預期輸出存在不確定性,一旦實際運行該測試用例,也無法進行校驗。
  • 獨立性:

    • 測試用例應盡量獨立

=======================================================

3-測試分類概述

不同角度的測試分類

  • 從測試階段或對象的角度:

    • 單元測試、集成測試、系統測試和驗收測試;
  • 從測試技術的角度:

    • 黑盒測試、白盒測試和灰盒測試;
  • 從測試目標的角度:

    • 回歸測試、功能測試、性能測試、 Alpha測試、Beta測試、壓力測試、負載測試、安全性測試、配置測試、安裝測試、可用性測試、可恢復性測試等。
  • 從測試執行方式的角度:

    • 手動測試、自動化測試和半自動化測試。

從測試階段或對象的角度

  • V模型:與軟件開發階段呼應

    • 軟件開發:需求分析-->概要設計-->詳細設計-->編碼階段
    • 軟件測試:單元測試-->集成測試-->系統測試-->驗收測試
  • 單元測試

    • 是針對每個單元的測試。
    • 用於驗證一個單元模塊的功能是否正常。
    • 一個單元模塊可以包括幾行或上百行代碼。
    • 單元測試與編碼過程是緊密聯系的,單元測試有時也認為是編碼階段的一個活動。
  • 集成測試:

    • 是將不同單元模塊組合在一起,形成更大組件的過程。
    • 用於查找單元或組件間的接口錯誤,其關注的重點是那些在單元測試中不能被發現的缺陷。
  • 系統測試:

    • 檢驗軟件產品能否與系統的其他部分(比如,硬件、數據庫及操作人員)協調工作。
    • 用於評估整個系統的行為並確保系統行為符合用戶需求,並評估系統與硬件設備、運行環境和應用程序等之間的接口。
  • 驗收測試:

    • 部署軟件之前的最后一個測試操作。
    • 測試范圍類似系統測試,通常由系統提供者和客戶共同完成的。
    • 驗收測試使客戶確信應用程序具有所需的特性並且能夠正確的運行。

從測試技術的角度

  • 黑盒測試:

    • 關注的是與產品的外部行為相關的缺陷,此時並不考慮產品的內部結構或運行邏輯。
  • 白盒測試:

    • 關注的是與代碼內部結構相關的缺陷,因此,需要測試人員掌握一定的編程技術。
  • 灰盒測試:

    • 是綜合運用黑盒測試和白盒測試技術的一種混合測試方法。

從測試目標的角度

  • 功能測試:

    • 針對軟件功能需求進行測試,目的是檢查應用程序的行為是否符合預期。
  • 性能測試:

    • 用於驗證系統是否滿足規格說明的性能需求,例如容量和響應時間等。
  • Alpha測試( α測試):

    • 在軟件發布前,有時會讓小規模、有代表性的潛在用戶試用軟件;
    • 如果由開發機構人員來模擬潛在用戶開展測試,則稱為α測試。
  • Beta測試( β測試):

    • 軟件的早期版本被發布給具有代表性用戶群來測試,稱為β測試。
    • β測試常被用於面向大眾市場的系統、計算機游戲和類似的應用程序。
  • 回歸測試:

    • 是軟件版本修改后的重新測試,可應用於所有測試級別;
    • 目的是確保被修改組件的行為沒有改變,不會造成意外結果.
  • 壓力測試:

    • 以設計的最大負載或超過最大負載來運行軟件,用於確定系統運行的負載界限。
  • 負載測試:

    • 通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。
  • 安全性測試:

    • 是對產品進行檢驗,以驗證產品符合安全需求定義和產品質量標准的過程。
    • 用於測試系統在遭遇未授權訪問、計算機犯罪和破壞時是否能保護自己
  • 配置測試:

    • 當開發的系統需要應用於多種環境配置時,需要對每種配置進行測試,以檢測系統行為是否符合規格要求。
    • 包含硬件配置和軟件配置。
  • 安裝測試:

    • 在目標環境中通過安裝來驗證軟件及其安裝過程。
    • 目的是確保該軟件在正常或異常情況的不同條件下都能進行安裝,且安裝后可立即正常運行。
  • 可用性測試:

    • 用於評估系統使用的簡易程度,交互是否具有人機工程學設計以及用戶文檔使用的有效性。
  • 可恢復性測試:

    • 用於檢驗系統在災難或意外宕機后的重啟能力。

從測試執行方式的角度

  • 手動測試:

    • 人工執行測試。
    • 即根據測試用例中描述的規程,不借助特殊的軟件工具,人工來運行被測系統,觀察系統實際輸出是否符合測試用例的預期輸出。
  • 自動化測試:

    • 軟件測試的自動化,是一個將以人為驅動的測試行為轉化為機器執行的過程。
    • 目的是節省人力、時間或硬件資源,並提高測試效率。

=======================================================

4-軟件質量評估

狹義和廣義的軟件質量

  • 狹義的軟件質量:軟件的內部質量,即軟件無“故障”;
  • 廣義的軟件質量:產品質量、過程質量和客戶滿意度

軟件測試和軟件質量

  • 軟件測試是軟件質量保證的關鍵步驟。
  • 但提高軟件質量的途徑是改進軟件開發過程的質量,而不是提高軟件測試。

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM