手工測試

軟件測試的類型

軟件測試的類型

[注:類型將進一步詳細描述。]

如果我們想要驗證我們的軟件是無bug的或穩定的,我們必須進行多種軟件測試,因為測試是確保我們的應用程序無bug的唯一方法。


軟件測試分類是各種測試活動的一部分,包括測試策略、測試可交付成果和已定義的測試目標等等。另一方麵,軟件測試是運行軟件以檢測缺陷的過程。

要開始測試,我們需要一個需求,以及應用程序就緒的資源。為了保持責任感,每個測試工程師都應該被分配到特定的模塊。

軟件測試大致分為兩個部分,分別為:

  • 手工測試
  • 自動化測試

什麼是手動測試?

手動測試是在不使用任何自動化工具的情況下,根據客戶的需求測試軟件或應用程序的過程。換句話說,我們可以稱之為驗證和驗證技術。

手工測試的分類

  • 白盒測試
  • 黑盒測試
  • 灰盒測試

白盒測試

在將代碼交給測試團隊或相關的測試工程師之前,開發人員將執行白盒測試。因此,代碼在測試過程中對開發人員是可見的,這就是為什麼這種技術被稱為WBT(白盒測試)。


白盒測試的目標是強調軟件的輸入和輸出流,並提高應用程序的安全性。

開盒測試、玻璃盒測試、結構測試、透明盒測試和透明盒測試都是用來描述白盒測試的術語。


黑盒測試

黑盒測試是另一種手動測試。測試工程師將程序與規範進行比較,找出任何缺陷或bug,並將其報告給開發團隊。


然後,開發人員將糾正缺陷,執行一輪白盒測試,並將代碼發送給測試團隊。

這裏的修複bug指的是解決問題並確保特性滿足指定的需求。

黑盒測試的基本目標是定義業務需求或客戶需求。



黑盒測試的類型

  • 功能測試
  • 非功能性測試

功能測試

功能測試是測試工程師根據需求以係統的方式檢查所有組件。組件測試是功能測試的另一個名稱。

在功能測試中,通過提供值、指定輸出並將實際輸出與期望值進行比較,對所有組件進行測試。

黑盒測試包括功能測試,它關注應用程序需求而不是實際代碼。測試工程師必須隻測試程序,而不是測試係統。

功能測試的類型

  • 單元測試
  • 集成測試
  • 係統測試

1.單元測試

要測試任何軟件,單元測試是功能測試的第一級。單元測試是測試工程師單獨測試應用程序的一個模塊或該模塊的所有功能。

單元測試的基本目標是確保單元組件按預期執行。單元是在此上下文中軟件或應用程序的單個可測試功能。還會在已定義的應用程序開發階段進行檢查。

2.集成測試

一旦我們成功地實現了單元測試,我們將繼續進行集成測試。集成測試是功能測試的第二級,在此測試中,我們驗證跨依賴模塊或兩個特性之間的接口的數據流。集成測試的目標是確保語句在所有模塊中都是準確的。

集成測試的類型

  • 增量測試
  • 增量測試

3.係統測試

在我們完成單元測試和集成測試之後,我們可以繼續進行係統測試。係統測試中的測試環境與生產環境相同。端到端測試是它的另一個名字。

在這種形式的測試中,我們將檢查軟件的各個方麵,並查看最終功能是否滿足業務需求。另外,將軟件產品作為一個整體係統進行檢查。

非功能性測試

非功能測試提供了軟件產品性能和所采用技術的全麵信息。

它將幫助我們降低軟件的生產風險和相關成本。

性能、負載、壓力、可用性和兼容性測試都是非功能測試的一部分。

非功能測試的類型

  • 性能測試
  • 可用性測試
  • 兼容性測試

自動化測試

自動化測試是軟件開發中最重要的方麵。它使用專門的軟件來自動化手動設計測試用例,而不涉及人類。

軟件測試的效率、生產力和覆蓋率都可以通過自動化測試得到提高。它被用來重新運行之前手動、快速和重複執行的測試場景。如果不了解編程語言,我們就不能開發測試腳本或執行自動化測試。


其他類型的軟件測試

  • 冒煙測試
  • 完整性測試
  • 回歸測試
  • 用戶驗收測試
  • 探索性測試
  • 特別的測試
  • 安全性測試
  • 全球化測試

根據軟件的類型,有許多方法來執行軟件測試。所有這些類型的測試都有自己的目的和用處。測試的兩種主要類型是:

手動測試:

手動測試是手動或不使用任何自動化測試軟件對軟件進行測試。在手動測試中,測試人員必須為應用程序軟件創建測試用例,並嚐試運行它們以尋找任何錯誤/bug。在手動測試中,測試人員開始測試應用程序,就像用戶使用應用程序一樣,並試圖找到任何錯誤/錯誤。在手動測試中,所有的測試用例都是手動執行的,並且觀察結果。

要執行此手動測試,需要記住應用程序的完整工作和結果,從而形成幾個測試用例。這個測試過程非常有用,因為它可以在軟件應用程序中發現可見和隱藏的錯誤。預期結果與應用程序給出的結果之間的差異被認為是錯誤。為了使應用程序有用,測試人員或開發人員應該修複這個錯誤。

在執行任何自動化測試之前,必須對任何新開發的軟件應用程序進行手動測試。手工測試的實現難度大,耗時長,但對軟件應用的無錯性有較好的滿意度。

為什麼手動測試是強製性的?

  • 每當一個新應用進入市場,應用程序包含一些錯誤是很正常的。這些bug是在用戶使用應用程序時遇到的。所以,從最終用戶的角度來看,總是建議至少執行一次手動測試,這樣就會遇到bug,並且可以很容易地刪除。手動測試還有一個好處,那就是當作為用戶進行測試時,我們可以看到為用戶創建正確測試用例的工作和結果。

手動測試階段:

手動測試有不同的階段,因此手動測試可以分為以下幾個階段:

  1. 單元測試:在單元測試中,我們對整個程序的一個組件或源代碼單元進行測試。這種測試對於大型程序非常有用,因為大型程序需要花費更多的時間來測試整個程序是否存在錯誤。單元測試可以節省時間,也可以得到更好的結果。
  2. 集成測試:集成測試是在單元測試之後執行的,這樣在單元測試中測試的各個組件就會在集成測試中被組合起來,一組組件將被測試以獲得更好的準確性和無錯誤軟件的確認。這種測試對於實現質量保證非常有幫助,在質量保證中,它評估應用程序的幾個組件如何協同工作。
  3. 係統測試:在係統測試中,這個名稱本身就定義了它的含義,即將應用軟件作為一個整體進行測試。係統測試在集成測試之後進行。係統測試包括各種類型的測試,包括軟件的壓力測試、回歸測試和功能測試。
  4. 驗收測試:驗收測試非常重要,因為它可以清楚地說明應用程序是否已經準備好部署,是否可以在現實世界中使用。隻有當應用程序按照執行任務的要求工作,並且沒有任何錯誤或錯誤地給出期望的結果時,才能實現驗收測試。隻有這樣,應用程序才能在現實世界中作為一個整體進行部署。驗收測試包括兩種類型:內部測試和外部測試。內部測試(也稱為alpha測試)是由組織成員對應用軟件進行的測試,隻能在組織內部進行,而外部測試(也稱為beta測試)由組織外部的有限數量的人執行,他們將像最終用戶一樣測試軟件。

自動化測試:

自動化測試是使用另一個軟件對應用程序軟件進行任何錯誤或錯誤的測試,其目的是僅對軟件進行測試。在某些情況下,我們需要將我們的自定義測試用例添加到自動化測試應用程序中,但在其他情況下,應用程序被設計為特定類型的測試,這樣基於我們的應用程序的類型及其工作,我們在市場上有不同的測試應用程序。自動化測試對於節省時間非常有幫助。自動化測試能夠非常有效地給出準確的結果。自動化測試也稱為測試自動化。自動化測試與手動測試的過程相同,但不同之處在於我們不需要手動測試每個組件或完整的軟件,軟件將自動測試。

但是應該注意的是,在進行軟件測試時,不可能自動地對每個組件進行測試。例如,使用OTP服務的銀行事務不能使用自動化測試來完成,因為它需要由最終用戶或測試人員手動進行測試。

為什麼自動化測試是有用的?

  • 當源代碼非常大時,自動化測試是非常有用的,因為手動測試源代碼的每個組件將花費更多的時間。在這些情況下,自動化測試進入了視野。自動化測試還有助於更快地交付軟件產品。同時,提高了效率。與手動測試相比,自動化測試軟件給出了更準確的結果。因為有時候,我們不太注意,因為這是人類的天性,會忽略一些錯誤或跳過一些組件測試,但測試軟件會完全完成它的工作,測試整個應用程序而不會給出不正確的結果。

自動化測試的階段:

為了執行自動化測試,測試軟件會經曆一些階段。下麵我們將討論這些階段:

  1. 單元測試:單元測試是手動測試軟件的單個組件是否存在錯誤。但是這種測試也可以自動進行,以測試源代碼或軟件應用程序的各個組件。
  2. API: API是Application Programming Interface的縮寫,它的任務是提供所有使用相同軟件應用程序的係統之間的平滑集成。自動化測試使用API來測試所有係統中的軟件。它提高了自動化測試的生產率,因為在一次運行中,它測試了應用程序的所有係統。

自動化測試的階段與手動測試非常相似,但區別隻是在手動測試中,軟件測試應用程序是手動測試的。另一方麵,應用程序在自動化測試中通過測試軟件進行自動測試。

自動化測試的軟件測試工具:

  • WATIR都
  • 測試完成
  • Visual Studio Test Professional
  • IBM Rational功能測試器
  • 還有更多....
Baidu
map