為了安全地變更現有的軟體,不論是重構它還是增加新的功能,你都需要驗證在完成變更後沒有造成什麼破壞。換言之,你需要對系統執行一次全面的回歸測 試。如果你發現造成了某種破壞,就必須進行修複,或圖1.4測試先行的開發方式者復原所做的變更。程式員在開發領域代碼的同時開發一個完整的單元測試套 件,這種做法在開發社群中已經越來越普遍,實際上,靈活開發者喜歡在編寫“真正的”代碼之前先編寫測試代碼。就像你測試應用的源代碼一樣,難道你不應該測 試你的資料庫?重要的業務邏輯以存儲過程、資料有效性規則、參照完整性(RI)規則等形式實作在你的資料庫中,這些業務邏輯顯然應該經過徹底的測試。
測試先行開發(TFD),也稱為測試先行程式設計,是一種演進式的開發方式,你在編寫新的功能代碼之前必須編寫一個會失敗的測試。正如圖1.4中的UML活動圖所展示的,TFD包含以下步驟:
![]() |
1. 快速增加一個測試,主要是要有足夠多的代碼,以使得這個測試會失敗。
2. 運作測試以確定新的測試确實會失敗。通常是運作完整的測試套件,但是由于速度的原因,你可能決定隻運作完整測試套件的一個子集。
3. 更新你的功能代碼,使它能通過新的測試。
一個重要提示是,你可能需要幾種單元測試工具,至少對你的資料庫需要一種,對外部程式中使用到的每種程式設計語言各需要一種。幸運的是XUnit工具家 族(例如,針對Java的JUnit,針對Visual Basic的VBUnit,針對.NET的VUnit,以及針對Oracle的OUnit)是免費的,互相之間保持着很好的一緻性。
chaunceyhao