2010-09-30 32 views
0

重構非迴歸測試時是否有特定的技術需要考慮?代碼通常非常簡單,但它顯然不包含在測試套件的安全網中......如何在重構非迴歸測試時保護自己?

在構建非迴歸測試時,我首先確保它確實展示了我想糾正的問題,當然。但是如果我稍後回來參加這個測試,因爲我想重構它(例如,我剛剛添加了另一個非常相似的測試),但我通常不能將被測代碼恢復到顯示第一個問題的狀態。所以我不能確定一次重構後的測試仍然在代碼中使用相同的路徑。

除了特別小心之外,是否有具體的技術來處理這個問題?

+0

您需要測試以進行測試。現在認真,你需要學會在某個時候相信自己和你的代碼。單元測試永遠不應該被認爲是完美的 - 尤其是當你的測試套件不斷增長的時候,即使你被認爲是一個古茹,你的代碼永遠不會是完美的。 IOW - 你只需要學會與你對測試的偏執狂相處:) – slugster 2010-09-30 12:53:02

回答

1

這不是一個大問題。測試測試代碼,代碼測試測試。雖然可能會犯一個笨拙的錯誤,導致測試在所有情況下都開始通過,但這不太可能。您將一次又一次地運行測試,因此測試和他們測試的代碼會得到很多鍛鍊,而當事情變得更糟時,測試通常會開始失敗。

當然要小心;當然,在重構之前和之後立即運行測試。如果您對重構感到不舒服,請按照允許您看到測試正常工作的方式進行(通過失敗)。找到一種可靠的方法,在重構之前使每個測試失敗,並寫下來。獲得綠色 - 所有測試通過 - 然後重構測試。運行測試;仍綠色?好。 (如果沒有,當然,得到綠色,也許重新開始)。執行使原始未重構測試失敗的更改。紅?和以前一樣失敗?然後恢復工作代碼,並再次檢查綠色。檢查它並轉到下一個任務。

0

嘗試在自動化測試中不僅包含正面案例,還包括否定案例(以及適當的處理程序)。

此外,您可以嘗試運行帶有斷點的重構自動化測試,並通過調試器監督它繼續鍛鍊您打算運行的所有路徑。