軟件測試筆記(一)什麼是軟件測試-定義、類型、方法?

爲何咱們須要軟件測試?

可能有些人會有這樣的疑問:「爲何咱們須要軟件測試」或者「爲何須要測試」或者「爲何須要軟件測試」。git

當我進入測試行業的時候,我不知道什麼是軟件測試以及爲何須要它。我也不知道從哪裏開始。也許你的處境和我好久之前同樣。就我而言,軟件測試是一門藝術,它評估軟件應用程序的功能,目的是發現開發的軟件是否知足指定的要求,並肯定缺陷,以確保產品完好陷(理想狀態),從而生產出高質量的產品。github

假設若是在軟件開發過程當中沒有軟件測試呢?編程

按照目前的趨勢,因爲數字化的不斷變化和發展,咱們的生活在各個方面都在改善。咱們的工做方式也改變了。咱們在網上訪問咱們的銀行,在網上購物,在網上訂購食物等等。咱們依賴軟件和系統。若是這些系統出現故障怎麼辦。咱們都知道,從財務損失和商譽的角度來看,一個小漏洞對企業的影響是巨大的。爲了交付高質量的產品,咱們須要在軟件開發過程當中進行軟件測試。安全

軟件測試之因此成爲信息技術領域很是重要和不可或缺的一部分,緣由以下。工具

  • 成本效益

    事實上,對於任何複雜的系統,設計缺陷永遠不能徹底排除。這並非由於開發人員粗枝大葉,而是由於系統的複雜性是一般是難以處理的。若是設計級別的問題未被發現,那麼追溯和糾正缺陷將變得更加困難。解決它會變得更貴。有時在修復一個錯誤時,咱們可能會不知不覺地在另外一個模塊中引入另外一個錯誤,這就須要咱們進行迴歸測試。若是能夠在開發的早期階段識別出這些錯誤(bug),那麼修復它們的成本就要低得多。這就是爲何在軟件開發生命週期的早期階段發現缺陷是很重要的。測試的好處之一是成本效益。性能

    在軟件開發生命週期的各個階段,最好儘早開始測試,並按期測試,以確保應用程序的開發符合要求。單元測試

  • 顧客滿意度

    在任何企業中,最終的目標都是讓顧客滿意,顧客就是上帝。顧客滿意是很是重要!!!軟件測試改善了應用程序的用戶體驗,並使客戶滿意。快樂的顧客意味着企業有更多的收入。有必要進行軟件測試的緣由之一是提供最佳的用戶體驗。測試

  • 安全

    這多是軟件測試中最敏感和最脆弱的部分。測試(滲透測試和安全測試)有助於產品安全。黑客未經受權獲取數據,例如facebook的我的隱私數據的泄露,還有國內的一些知名網站的關於身份證,手機號,家庭住址等等信息的泄露。黑客竊取用戶信息並將其用於自身利益,或者售賣給不法買家,損害使用產品的顧客,這絕對不是咱們想要看到的結果。若是你的產品不安全,用戶就不會喜歡你的產品。用戶老是尋找值得信賴的產品。測試有助於消除產品中的漏洞。網站

  • 產品質量

    軟件測試是一門藝術,它有助於增強一個公司的市場聲譽,經過交付高質量的產品給客戶所提到的需求規格文件。設計

    因爲這些緣由,軟件測試成爲軟件開發過程當中很是重要和不可或缺的一部分。

回到最本質的問題, 什麼是軟件測試?


軟件測試是一個過程,旨在評估軟件應用程序的功能,以肯定開發的軟件是否知足指定的要求,並肯定缺陷,以確保產品完好陷,從而生產出高質量的產品。

軟件測試種類:

  • 手工測試:

    手工測試是手工測試軟件的過程,以瞭解更多關於它的信息,找出什麼是工做的,什麼是不工做的。這一般包括驗證需求文檔中指定的全部特性,但一般也包括測試人員從最終用戶的角度嘗試軟件。手動測試計劃從徹底腳本化的測試用例、爲測試人員提供詳細的步驟和預期的結果,到指導探索性測試會話的高級指南,各不相同。市場上有不少複雜的工具來幫助手工測試,可是若是你想要一個簡單而靈活的地方開始,能夠嘗試使用下POSTMAN.

  • 自動化測試:

    自動化測試是使用自動化工具來發現軟件缺陷的測試過程。在此過程當中,測試人員使用自動化工具執行測試腳本並自動生成測試結果。功能測試的一些著名自動化測試工具是qtp/uft和selenium。

按照測試的具體內容來分的測試方法:

  • 靜態測試:

    在軟件測試中也稱爲驗證。驗證是檢查文檔和文件的靜態方法。驗證是一個過程,以確保咱們建立的產品是不是正確的,即驗證咱們的需求。這裏包括的活動有檢查、審查、演練。

  • 動態測試:

    一樣也是也是一種驗證, 測試真實產品的動態過程。一樣也是以確保咱們建立的產品是不是正確的。其中涉及的活動是測試應用程序。不一樣於上面的靜態測試,而是更側重於產品的功能。

按照是否須要接觸功能代碼來分的測試方法分類:

  • 白盒測試:

    又稱玻璃盒、透明盒、結構測試。白盒測試是基於應用程序內部的代碼結構。在白盒測試中,是以系統的內部視角,以及須要相應的編程技巧來設計測試用例。這種測試一般在單元測試級別進行。

  • 黑盒測試:

    也稱爲基於設計文檔的行爲/規範/輸入輸出測試。黑盒測試是一種軟件測試方法,在這種方法中,測試人員在不查看內部代碼結構的狀況下評估軟件的功能。

黑盒測試同時能夠分爲兩種測試:

  • 功能測試:

    簡單地說,系統自己的功能其實就是一種功能測試。驗證軟件應用程序的每一個功能是否按照需求文檔中的規定運行。經過提供適當的輸入來測試全部功能,以驗證明際輸出是否與預期輸出匹配。它屬於黑盒測試的範圍,測試人員沒必要關心應用程序的源代碼。

  • 非功能測試:

    簡單地說,系統性能測試就是非功能性測試。非功能性測試是指軟件的性能、負載、壓力、可擴展性、安全性、兼容性等各個方面,主要關注的是提升用戶體驗系統對請求的響應速度。
    灰盒測試:灰盒測試是白盒測試和黑盒測試的結合。從事此類測試的測試人員須要訪問產品的設計和接口文檔,來建立更好的測試用例。

不管您是黑盒、白盒仍是灰盒測試人員,都須要維護測試用例。

按照是測試級別的測試方法分類:

  • 單元測試:

    前面的白盒測試也提到了單元測試。單元測試是爲了檢查源代碼的各個模塊是否正常工做。即由開發人員在開發人員的環境中分別測試應用程序的每一個單元。它也能夠稱之爲模塊測試或組件測試。

  • 集成測試:

    集成測試是測試多個模塊之間的鏈接或數據傳輸的過程。又稱爲I&T (Integration Testing)測試或流測試。按照測試順序,又分爲自上而下法、自下而上法和夾心法(自上而下和自下而上相結合)。

  • 系統測試(端到端測試):

    一般來講這是一個黑盒測試。測試完整的應用程序這也稱爲端到端的測試。確保軟件在目標系統中能夠正常工做。驗證對不一樣的系統輸入,同時檢查所需的輸出。測試用戶對應用程序的體驗。

  • 驗收測試:

    這是由最終用戶和測試人員一塊兒完成的,以驗證應用程序的功能。驗收測試成功後。爲肯定應用程序是否按要求開發而進行的正式測試。它容許客戶接受或拒絕申請。驗收測試的類型有alpha、beta和gamma。

測試產出:

交付給軟件項目的可交付成果。針對於遵循產品生命週期,也就是在交付給客戶以前經歷了不一樣的階段,每一個階段都會有一些測試可交付成果。一些可交付成果在測試階段開始前提供,一些在測試階段提供,其他在測試階段完成後提供。

一些測試可交付成果以下:

  • 測試計劃
  • 測試(跟蹤)矩陣
  • 測試用例
  • 測試腳本
  • 測試套件(測試合集)
  • 測試數據或測試準備數據
  • 測試實驗工具

測試的原則:

軟件測試包括一些在測試項目時起着重要做用的原則。

軟件測試的原則以下:

  • 測試可重現的缺陷
  • 完全的測試是不可能的
  • 儘早早測試
  • 缺陷歸類
  • 農藥悖論 (用來描述這樣一種現象,對軟件進行越多的測試,那麼該軟件對軟件測試人員的測試就越具備免疫力,對於測試人員須要轉換測試思路來發現新的問題。)
  • 測試是依賴於上下文的
  • 系統或多或少會存在bug
  • 閱讀更多:詳細說明文檔

總結:

上面介紹了軟件測試的意義,定義,以及經常使用的測試方法和類型,固然實際的測試種類會更多(大約有一百多種)。

有機會的話,在之後的博客中,給你們更新下着一百多種測試類型。

最新的文章將會更新到我的的博客中,有感興趣測試的朋友請關注:
https://xingyichuan.github.io/

相關文章
相關標籤/搜索