2011-02-25 50 views
2

我試圖改進我的應用程序中的自動化測試,但我不確定最佳的處理方式。如何自動測試我的數據庫驅動功能?

我的應用程序從多種形式收集數據,重新編碼並將其存儲在數據庫中。我創建了一個非常複雜的SQL視圖,它將結構扁平化,因此可以將它導入到統計數據包(SPSS)中。

我擔心的是視圖很複雜,我想圍繞它自動執行一些測試。

目前我有一些功能測試,創建一個完整的表單對象模型,並將其發送到應用程序。然後,我從數據庫中檢索視圖,並使用反射來測試檢索的視圖字段是否與原始數據匹配。

的問題是,這是非常手動和沉重,我的燈具是漫長的,也是很麻煩添加新場景(即模型不完全的不同部分)。

有沒有人對我如何改進我的測試策略有任何建議?提示技巧都歡迎!

謝謝!

回答

2

DbFit是爲這個完美的。 DbFit是FitNesse的擴展,您可能已經在使用「Fixtures」。在任何情況下,DbFit都可以很容易地設置一個測試,您可以在其中輸入一些數據,運行View,比較預期的結果,然後它會自動回滾剛剛爲測試播種的數據。當您向視圖添加更多字段時,更新非常容易。並且它不需要像其他一些SQL「單元」測試套件那樣在數據庫中添加其他對象。

你可以找到在使用DbFit更多信息:

http://benilovj.github.com/dbfit

http://groups.google.com/group/dbfit

這裏是我寫的是一個教程,介紹基本選項:

http://www.sqlservercentral.com/articles/Testing/64636/

+0

太好了,謝謝!我第一次錯過了這個答案:) – laura

1

這是一個很難回答的問題。對我而言,這聽起來像是你想做一個單一的測試,一次測試全部。

首先,你的應用應當建立,所以每個功能隔離在自己的類,從而容易測試和容易通過存根測試其他東西的時候更換。應該注入其他函數的依賴關係(依賴注入)。

其次,你應該使用相同的技術用於外部系統,如數據庫連接和SPSS文件作家。這涉及包裝這些功能,因此這些依賴關係也可以被注入,因此在測試應用程序的其他方面時會被存根代替。

第三,要知道,如果測試是很難寫,時間的99.99%,這表明你的設計是沒有那麼強,因爲它可以。

問候, 莫滕

+0

感謝您的回覆。我有獨立的單元級別測試,並且模擬了系統中所有組件的功能測試。我想我真正想在這個層面上測試的是數據庫視圖正在提取正確的數據。即是我的SQL正確。也許我不應該在功能測試中對此進行測試 - 但這是我認爲能做到的唯一方法。你怎麼看? – laura