1. 程式人生 > >單元測試、介面測試、功能測試 、的區別

單元測試、介面測試、功能測試 、的區別

測試的行為本質是什麼?

  為什麼先從這個概念開始談起,因為對於新手來說,總是把自動化看得很高階和複雜。

  先來看看功能測試如何進行的:編寫測試用例,測試用例當中最主要的是測試步驟和預期結果;測試人員根據測試用例執行操作步驟,然後通過眼睛和思考判斷實際結果與預期結果是否相等。如果相等,測試通過;如果不相等,測試失敗。

  自動化測試要做的事情與功能測試是一致。這裡的自動化主要包含三個層面的自動化,單元測試自動化,介面測試自動化和web測試自動化。當然,不同層面的自動化關注點是不一樣的。

  單元測試自動化,呼叫被測試的類或方法,根據類或方法的引數,傳入相應的資料。然後,得到一個返回結果。最終斷言返回的結果是否等於預期結果。如果相等,測試通過;如果不相等,測試失敗。所以,這裡單元測試關注的是程式碼的實現與邏輯。元測試是測試中的最基本的測試, 也是測試中的最小單元, 它的物件是函式物件,也可以包含輸入輸出, 針對的是函式功能或者函式的內部邏輯方面。 並不包含業務邏輯。

  介面測試自動化,根據介面文件,到底是傳get請求呢?還是post請呢?呼叫被測試的介面,構造相應的資料(id=1,name=zhangsan),得到返回值,是200成功,並返回查詢結果。還是10021,使用者名稱不能為空。不管輸入的引數是怎樣的,我們都將得到一個結果。最終斷言返回的結果是否等於預期結果。如果相等,測試通過;如果不相等,測試失敗。所以,介面測試關注的是資料。只要資料正確了,功能就做成大半,剩下的無非是如何把這些資料展示在頁面上。

  web測試的自動化,這種測試更貼近使用者的行為,模擬使用者點選了某個按鈕,向個輸入框裡輸入了什麼。但是使用者可以看到登入成功了,但web自動化並不知道它剛才的點選有沒有生效。所以,要找“證據”,比如,登入成功後頁面右上角會顯示“歡迎,xxx”。這就是登入成功的有力“證據”。於是,當web自動化登入成功後,就去獲取這個資料進行斷言。斷言如果相等,測試通過;如果不相等,測試失敗。所以,web自動化的關注點使用者操作形為,頁面上真正的按鈕和輸入框是否可用。

  所以,從測試的行為本質上來看,功能測試與單元自動化測試,介面自動化測試和web自動化測試並沒有區別。唯一的區別是,一個由人來執行,一個由程式碼或工具執行。