IT 邦鐵人賽 Day 2 - 測試的類型

Day1 時,我們淺談了測試的重要性;測試在工程師們的眼中是何等存在?浪費時間?但似乎又很重要?

在我們實際看到測試到底是什麼東西前,先讓大家了解測試的類型有哪些。

測試的類型大致分為:

  • 單元測試 Unit testing (又稱模組測試)
  • 整合測試 Integrated Testing
  • 系統測試 System Testing
  • 使用者接受度測試 User Acceptance Testing。

一、單元測試:

專門針對每項功能與方法進行的測試,以最小單位( 一個方法、類別、屬性等)一一進行測試,確認設計邏輯正確,品質正常,程式沒有 bug,能正常 run 起來。簡單來說,以銀行的 atm 功能為例。

今天設計了一項查詢餘額的功能,目的是要讓 atm 能正確顯示存款餘額;

另一項功能則是設計提款功能,讓 atm 給予使用者所輸入之金額,並在螢幕上顯示提款後的餘額;

再另一項則是設計存款功能,讓 atm 正確判斷使用者給予的金額,並在螢幕上顯示存款金額與存款後的餘額。

單元測試就是分別對這幾項功能,個別進行測試,確認是否有 bug。

二、整合測試:

針對複數的功能、類別,進行整體性的測試,確認彼此的運作關係符合邏輯。

最好懂的例子就是,台北捷運除了車門以外,還有月台閘門,所以旅客要上下車時,車門與月台砸門都要開啟,但這樣還不夠,還必須要是差不多時間開啟。

如果月台閘門開啟後,車門才打開始準備開啟,你當下會不會感到一點點的奇怪:「(月台閘門開了但車門還沒開) 欸~怎麼回事? (車門開始開啟了) 哦! 打開了。」這樣明顯的時間差可能會讓人感到突兀。

再更極端一點就是,月台閘門打開後,車門才打開,接著月台閘門先關起來,車門才關起來,這樣功能之間各跑各的,不在合理的步調上讓整體流暢,似乎就是有問題。

這就是整合測試的重要,讓每個功能都能夠以符合邏輯的方式運作。

小結:

今天運用比較白話且生活的方式講解,希望讓新手們能夠以輕鬆簡單的方式理解這一切,剩下的系統測試與使用者接受度測試就留到下一篇,可以先慢慢思考一下這篇所說的內容,俗話說慢慢來才會快,學習一步一步一點一點的成長,吸收了再繼續。