單元測試與整合測試觀念

摘要:單元測試與整合測試觀念

本篇文章來源:   http://mnp.longsun.net/event_site_download/slides/100225/asp_net_mvc.pdf

裡頭有更詳盡的描述,此做個簡略的紀錄,謝謝前輩。

 


 

何謂「單元測試」?

  • 測試的最小單位,必須是可信任的、可重複執行的。
    • 例如: 測試某一個類別(Class)的某一個方法(Method)
 
  • 必須與「整合測試」做非常清楚的切割,兩者個概念完全不同
    • DAL (Data Access Layer) 的程式不建議撰寫「單元測試」,因為 DAL
      的程式會與資料庫直接產生關聯,而資料庫中可能還會有 Trigger, 
      Stored Procedure, 表格關聯, … 等,這些東西都會打破「單元測試」
      的原則,所以建議放入「整合測試」來進行。
 
  • 單元測試程式不應該接觸到任何與任何 外部資源(External Resources) 或 靜態物件 (Statics)。
    • 例如: File I/O, 資料庫操作, 網路連線, … 等等,且由於靜態方法會牽
      扯到狀態,所以不建議在單元測試中存取任何靜態物件。
 
  • 只能確保程序如你預期的執行(不保證結果)

 

附註:曾使用軟體 Test Driven
Test Driven 官網: 
http://www.testdriven.net/
 

 


 

何謂「整合測試」?

  • 針對軟體專案的一部份或全部進行測試,可以跨越不同的類別與方法,並可直接存取的外部資源。
    • 例如: File I/O, 資料庫操作, 網路連線, … 等等。
 
  • 通常做「整合測試」都會需要先設置(Configure)測試所需的環境,測試完畢後通常要清除測試所產生的殘
    留資料,以利下次測試或避免影響其他整合測試的結果。
 
  • 確保軟體執行後的結果與需求相符合!