自動化測試介紹
了解自動化測試在講什麼
甚麼是自動化測試?
自動化測試顧名思義是撰寫一些測試碼,運用程式自動檢測程式,最後產生結果給人知道測試是否通過。
為什麼想要做自動化測試?
重複做同一個測試其實是很花時間的,所以我們會運用撰寫測試程式碼達成自動測試的目的。這樣做的好處包括獲得更快速的回饋、減少人工重複做同樣的任務。
自動化測試有哪些類型?
在自動化測試的世界裡,有多種不同的測試方法,每種方法會對應到軟體開發的不同階段和需求。
首先要介紹的是單元測試,這個測試目的是專注於檢測最基本的功能單元,如一個函式。單元測試的目的是確保每個獨立部分都按預期的任務運作。這些測試通常快速執行,並且專注於特定的程式碼部分,它們也可成為快速定位問題的重要測試。
接著是整合測試,這個階段會將不同的單元組合在一起,測試它們作為一個整體時的運作表現。相比於單元測試,整合測試通常需要相對於單元測試再更多的時間和資源,最主要是因為不同功能的互動。我們最常見的整合測試例子就是應用程式是否能夠正確地與資料庫進行互動。
Subcutaneous Test 是一個測試實作,由 Martin Flower 所提出的。這種測試通常集中於應用程式的業務邏輯層,而不涉及 UI 的測試。
使用者驗收測試,我們常聽到的 UAT 就是指這個測試。在 UAT 中我們執行測試的目的是確保功能的運作跟開立的規格是一致的。
還有很多可以自動化測試的類型,像是冒煙測試、負載測試等等
好的自動化測試的特點
好的測試是可以隔離的,這意味著它們在測試的過程中不會產生其他的 side-effects。第二個是測試要是獨立的,不用依賴某種特定順序才能執行測試。第三個是可重複性高,而且怎麼樣執行的結果都是相同的,這樣才有自動化的價值。容易維護的測試碼也是重要的,因為我們常在修改程式的時候多多少少都會需要調整測試內容,容易修改調整的測試碼就會變得很重要。最後,測試要具有存在的價值,要能真正找出重要的功能和行為問題,並加以防制再次發生。