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

目錄

=======================================================數據庫

概述

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

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

=======================================================編程

1-軟件測試概述

對軟件測試的理解

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

軟件測試的做用

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

軟件測試的關鍵點

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

軟件測試的定義

  • 測試定義

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

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

=======================================================安全

2-測試用例概述

定義

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

測試用例組成

  • 輸入+輸出+測試環境

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

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

測試用例的基本屬性

  • 典型性:

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

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

    • 對於相同的測試用例,系統的預期執行結果應該徹底相同;
    • 不然,若是系統預期輸出存在不肯定性,一旦實際運行該測試用例,也沒法進行校驗。
  • 獨立性:

    • 測試用例應儘可能獨立

=======================================================工具

3-測試分類概述

不一樣角度的測試分類

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

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

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

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

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

從測試階段或對象的角度

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

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

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

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

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

    • 部署軟件以前的最後一個測試操做。
    • 測試範圍相似系統測試,一般由系統提供者和客戶共同完成的。
    • 驗收測試使客戶確信應用程序具備所需的特性而且可以正確的運行。

從測試技術的角度

  • 黑盒測試:

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

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

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

從測試目標的角度

  • 功能測試:

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

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

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

    • 軟件的早期版本被髮布給具備表明性用戶羣來測試,稱爲β測試。
    • β測試常被用於面向大衆市場的系統、計算機遊戲和相似的應用程序。
  • 迴歸測試:

    • 是軟件版本修改後的從新測試,可應用於全部測試級別;
    • 目的是確保被修改組件的行爲沒有改變,不會形成意外結果.
  • 壓力測試:

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

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

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

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

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

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

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

從測試執行方式的角度

  • 手動測試:

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

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

=======================================================性能

4-軟件質量評估

狹義和廣義的軟件質量

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

軟件測試和軟件質量

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

END

相關文章
相關標籤/搜索