自動化測試的三兩事兒

星海後臺測試平臺發表於2020-07-21

作者:星海小編

商業轉載請聯絡小編獲得授權,非商業轉載請註明出處。

寫在前面

自動化測試已成為軟體測試過程中採用最廣泛的技術之一,它有助於加速產品的交付程式。但是在很多企業中,由於一些誤解,高層往往會猶豫要不要在其專案中實施自動化測試。現在甚至可以在一些自動化測試的相關論壇上找到測試人員對測試自動化中的ROI進行質疑,自動化測試到底值得我們付出努力嗎?答案自然是肯定的,自動化測試不僅可以提高應用程式的可靠性,還可以加快測試過程,提高測試覆蓋率,也可以給測試人員提供信心,以更好地進行產品質量測試。但是,現實是殘酷的,在大多數情況下,自動化測試的好處並未得到充分體現。反而,圍繞自動測試存在許多誤解,使部分企業現在仍然堅持使用手動測試。

什麼是自動化測試

定義自動化測試非常容易,一次次地執行測試用例,而無需手動執行的過程稱為自動化測試。與手動測試不同的地方是,自動化測試是使用自動化測試工具來執行測試指令碼。

自動化測試的分類

要知道其實並非軟體測試的每個階段都可以進行自動化測試,自動化測試分為以下幾類。

單元自動化測試

單元測試通常由開發人員進行,編寫這些測試是為了測試程式碼級別,查詢函式和方法中的錯誤。在有些公司中,自動化的單元測試由開發人員負責,也有公司傾向於僱用專門的自動化測試資源來負責測試。測試人員編寫單元測試來破壞生產程式碼,以便他們可以在多個方面測試生產程式碼。藉助單元自動化測試,可以更輕鬆地驗證應用程式每個元件的功能。而且,如果單元測試失敗,則意味著被推到生產環境中的程式碼也是錯誤的。有許多單元自動化測試的框架可以幫助開發人員交付更好的軟體。包括NUnit,Junit,Unit,js,QUnit等,微軟也提供了自己的單元測試框架MSTest,可以使用C#進行Selenium自動化測試。

介面自動化測試

介面自動化測試可以幫助測試人員更清楚地瞭解應用程式的介面。現在介面自動化測試已經在企業中變得越來越流行。在介面自動化測試中,通過驗證應用程式中包含的各種介面請求和響應來驗證應用程式的業務層。但是,在介面自動化測試中,是不包含應用程式圖形使用者介面的測試。通過介面自動化測試,應用程式的功能性,合規性以及安全性問題都可以得到測試,並且如果是Web應用程式,“請求和響應”的安全性將一併得到驗證。

GUI(圖形使用者介面)自動化測試

GUI自動測試是自動化測試過程中最具挑戰性,之所以艱難是因為應用程式的GUI經常發生變化。但是,GUI測試也是整個過程中最關鍵的部分,因為GUI自動化測試模擬了使用者在使用者介面上使用滑鼠和鍵盤執行的相同操作。市場上有很多GUI測試工具,例如Selenium,微軟的Coded UI等。

除了以上自動化測試之外,還有一些其他的測試也可以通過自動化完成,例如:

  • 效能測試和質量控制
  • 迴歸測試
  • 整合測試
  • UI測試和冒煙測試
  • 安全測試和驗收測試
  • 跨瀏覽器相容性測試

自動化測試的誤解

自從開始進行自動化測試以來,讓我們對自動化測試有了一些誤解。

誤解一,自動化測試將替代手動測試

最大的誤解是自動化測試將完全取代手動測試,但其實這是不正確的。自動化測試可以幫助我們更好地改善測試過程,提高效率,提效的本質問題是投入產出比,所以在投入產出比較少的測試場景下,自動化測試永遠不會取代人工。比如,吃雞遊戲是否能自動化?可以。但是可能需要很大的投入,最終的產出也未必有多好。因此,使用自動化測試的好處在於,它可以快速測試重複的,耗時的測試,以便我們可以專注上述的測試場景和功能。

誤解二,可以使用自動化實現一切自動化

很多人認為可以自動化所有測試用例,但事實其實是我們永遠無法使測試用例100%自動化,因為我們永遠也無法對應用程式進行全面測試。而且,在某些場景下,手動測試比自動化測試更合適,因此100%自動化測試並沒有意義。例如,傳送簡訊驗證碼或拼圖完成驗證碼的場景,或涉及到強互動的、易用性的測試場景。

誤解三,自動化測試的成本太高

許多人認為自動化測試需要更高的費用。事實是,自動化測試的前期成本可能會更高,但是應該將其視為一個長期的投資。配置自動化測試環境和購買自動化工具確實需要一些投資。但是,一旦這些準備好,就無需在其中投入太多資金。在接下來的測試中,自動化測試可以提供強大的投資回報率,當然,投資回報的前提是我們建立的自動化測試用例的執行次數大於一定值,因此,在實施自動化測試之前,我們最好先分析一下我們的投資回報率。

寫在最後

自動化測試正在迅速改變軟體開發行業,因為它提供了一種高效的開發和測試方法。它確實需要較少的人工干預,但永遠無法完全取代手動測試。

相關文章