一分鐘理解自動化單元測試

一直以來都對自動化測試頗有好感,最近利用空閒時間瞭解了一下,分享給大家。

首先科普一下測試界的金字塔。
這裏寫圖片描述

UI測試表示面向用戶的界面測試,也就是外部質量。

單元測試表示內部代碼的邏輯測試,也就是內部質量。

集成/接口測試則是系統各模塊間的測試,連接系統內外的測試。

根據金字塔,很顯然UI測試很重要在金字塔頂端,但是在如今的軟件行業,我們應該把測試的重心放到單元測試上,其次再到接口測試,有了底層內部質量的保證,整個產品的質量纔會有所保證,如果仍然用傳統的測試方式只注重界面,忽略了內部代碼質量,對產品後期的維護和擴展極其不利,我想我們開發人員最不想幹的就是這種事:表面上系統運行完美,但是叫改BUG或添加新功能時原來的代碼一行都看不懂。

OK,再來說,單元測試是什麼?

單元指的是代碼中最小的不可分割的一部分,可以是一個if,可以是一個for,也可以是一個函數,一般我們就以一個函數爲一個單元,因爲好的編程習慣是會把複雜的邏輯拆分成許多不可細分的函數。
單元測試無非就是測試看看我寫的這個函數對不對。有沒有正確的返回值,異常、參數處理等等。

那自動化測試是什麼?

以單元測試來說,一般我們要測試一個函數A對不對,首先是要另外寫一個main函數B,調用函數A,傳入對應的參數看看返回值什麼的。但是這麼做一兩個函數還好,如果我有1000個要測試的函數豈不是要寫1000個mian函數B,於是就出現了自動化測試。
如上金字塔的每個層面都有其對應的自動化測試,自動化單元測試就是自動的去測試函數,而不需要我們花太多不必要的時間。

那麼,如何進行自動化單元測試呢?

good news,爲了方便的進行自動化,聰明的人們已經爲我們準備了許多自動化測試的工具或框架,如java的Junit、testNG,C#的NUnit,python的unittest、pytest等,幾乎所有的主流語言都有其對應的自動化測試工具或框架。如果你用的不爽,想要自己搞一個自動化測試的工具或框架出來那就再好不過了。

第一篇就介紹到這,下一篇開始講如何用Junit進行自動化單元測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章