考慮針對以數據庫爲中心的服務的自動化單元測試套件。許多小部件都可以在沒有任何數據庫連接的情況下進行單元測試,但是插入實際的數據庫快照(或快照)並執行更大的集成方案也很有用。因此,一些關鍵測試包括與測試代碼本身分離的預執行和後執行數據快照的形式。使面向數據庫的測試套件保持最新狀態
服務發展迅速,數據庫架構也發展迅速。這不斷地使測試數據無效,對於開發人員而言,讓測試套件保持最新狀態而不讓缺陷行爲蔓延到更新的快照中變得具有挑戰性。
通常甚至不可能針對舊的(測試數據庫)模式執行更新版本的服務;這可以通過具有兩層數據庫快照來解決,一個用於初始化(測試輸入),另一個用於純粹用於檢查(例如,預期的測試輸出)。初始化模式/數據可以隨應用程序自動升級,但顯然不是預期的輸出數據。
我已經經歷了幾次,但是我希望鏈接更多關於該主題以及人們的經驗,技術和方法的閱讀,特別是在Java,.NET和可能的純數據庫環境中。
這個問題是故意有些大,因爲我不知道我會好好學習,但這裏也是它的一個較窄的版本:
是否有廣泛的Java或.NET框架,使開發人員更容易通過行爲(數據)差異來區分模式差異,並將現有測試數據半自動更新爲新模式?
1.我喜歡你的方法在一個有趣的特殊情況。只要服務是數據庫的唯一所有者,就非常有吸引力。其他時候,數據庫由測試套件旨在涵蓋的服務或服務組以外的代理創建並部分填充。當技術過於複雜時,其他模塊的某些模擬結構或其他對象產生的測試數據必須以某種方式維護。 2.這通常是正確的,但我如何讓人們更容易更新技術可能與他們不同的測試套件? – 2012-03-29 19:14:38
您是否使用TeamCity或Bamboo等測試集成工具?在這種情況下,人們會收到通知,說明測試已被破壞(即造成這種情況的更改的作者)。它可以很快升級爲負責或可以修復測試(或代碼)的人員。 – 2012-03-29 19:20:47
我們使用預先提交和提交後的TeamCity以及一些類似的自制框架。我遇到的問題是,錯誤地升級測試套件非常容易(當大部分差異如預期的那樣,看起來正確時,很容易將真實結果聲明爲正確的)。當一次更改使上百個測試用例無效並對每個案例進行人工檢查時,這只是一個問題,每個更改的數據行都不太現實。 – 2012-03-29 20:15:19