2010-08-09 137 views
1

我想知道你們是否有很好的閱讀方式來考慮將單元測試/驗收/集成測試歸類爲什麼。我有以下情況,如果它應該在單元測試中,我們正在進行一場辯論:單元測試應該覆蓋壓力測試嗎?

在我們的數據訪問層中,某些語句使用sql,如「select * from people where id IN( 'x','y'),其中IN語句是根據輸入動態生成的。最近我們發現我們的Oracle db在IN語句中有1000個變量的限制。一個單元測試場景我們測試單元測試中的sql對數據庫是否工作以及邏輯是否正確但是壓力測試應該在更高的級別完成

如果我們要測試1000個記錄單元測試,我們需要每次填充大量記錄的數據庫,這可能是低效的。

有什麼建議嗎?

回答

3

關於你particuliar例如,你其實應該考慮爲它做2次測試:

  • 第一個是單元測試,並檢查你的函數可以接受請求的輸入的最大數量要求。如果沒有詳細說明,請向分析師澄清。動態生成的請求,比如這是後來調試的痛苦。
  • 第二個是壓力測試。但不應該在你的代碼的這個特定部分上執行,而應該在將使用它的集成部分上執行。如果你開始進行壓力測試單元塊,那麼你最終會做出過早的優化,因爲你會忽略大局,並開始假設這將如何工作,而不是真正地觀察它是如何工作的。
2

我相信壓力測試應該作爲單元測試的一部分來實現。一般來說單元測試應該包含

  1. 準確度試驗
  2. 故障測試
  3. 壓力測試

如果你不想運行壓力,當你運行的其他測試,每次測試,可以考慮將壓力測試分組在單獨的文本夾具中。

2

單元測試應測試並指定被測單元的功能。在這種情況下,你正在測試數據庫,而不是單元,所以我認爲這個測試真的是一個單元測試。

一個單元應該獨立於它正在使用的數據庫,如果您正在測試單元與特定數據庫交互的方式,那麼它對我來說似乎是一個集成測試