簡體   English   中英

如何向現有應用程序添加測試?

[英]How to add tests to existing application?

我目前正在研究現有的PHP項目。 當前的代碼設計不是很好,並且錯誤開始堆積。 因此,我想要添加一個全面的測試套件以使其更可靠。

已經有一些用PHP Unit編寫的單元測試,但是,測試范圍並不那么好。 該項目並沒有真正遵循TDD或任何類型的測試密集型過程。 我想盡可能地對所有內容進行測試。 但是問題是我不確定是否可以為現有代碼添加測試。 正如我提到的,代碼結構不是很好,因此添加測試可能會變得非常麻煩和困難。

有沒有更好的方法在這樣的項目中添加單元測試? 還是應該重寫項目? 也許一個模塊一個模塊?

嘗試將單元測試添加到現有應用程序時出現的大多數問題的出現,通常是因為該應用程序沒有將其功能很好地划分為可以有效測試的類和方法。

實際上,這不僅是TDD的主要優點之一,還是開發應用程序時編寫測試的良好實踐。 這些測試迫使您編寫具有明確目的和盡可能少的副作用的簡潔方法。

完全重寫將是最終的解決方案,但我懷疑您是否有時間和精力來做到這一點? 而且,這樣的動作可能不是我完全必要的!

老實說, 以我的經驗 ,最好的方法是立即開始為每個模塊編寫測試,並在需要時進行重構。 從核心元素開始,例如用戶注冊和管理位,然后再進一步。

這看起來似乎是一項艱巨的任務,可能會讓您覺得自己的工作徒勞無功,但是從長遠來看,這些測試將大大節省調試應用程序的時間!

進一步閱讀:

我們只是開始測試我們可以測試的東西。 處理數據並返回結果的類現在可以編寫測試,並且可以正常工作,並驗證可以測試該類的一小部分。 開始時很艱巨,但是現在我們有大約3000%的測試覆蓋了大約45%的代碼。 當人們重構代碼時,這些測試當前會捕獲錯誤。

我們試圖隔離模塊和類,從而使測試變得更加容易,並且其中一些測試只是測試構造函數,公共接口等,如果它們發生更改,則存在問題,因為某些問題可能會中斷。

當發現新的錯誤時,我們嘗試編寫一個測試以說明該錯誤,然后更改代碼以解決該測試。 這使我們的測試得以繼續進行。

每天,我們都有一些測試,直到結果令人鼓舞為止,並有了更大的測試基礎和更完整的代碼覆蓋范圍。 在此過程中的某個時刻,我們的測試實際上發現了由於人們添加或更改破壞某些舊界面的代碼而造成的問題。 這是自動化測試的第一個好成績,因為它是在沒有對舊輸入文件進行手動測試的情況下發現的,因此很可能無法對其進行測試。

在嘗試將Tests添加到已經存在的代碼庫時要非常小心。 正如Andrei指出的那樣,這項任務非常艱巨,並且從一開始就集成測試就可以使TDD發揮最大的作用。

嘗試將測試添加到您的核心功能中,並通過開發人員測試其余部分的舊方法來修復錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM