因為正好要實現一個網絡通訊錄,這是個不大的項目,就拿來練手了。
記得以前剛開始寫程序時,要在里面添加一個功能時,都是在主程序里直接添加,對小程序來講這是最快的方法,但隨著項目越來越大。寫一個小功能都要在主程序上運行好些遍,當碰到有登陸框時更是麻煩,就是采用讓啟動自動化,速度還是很慢。后來就干脆分離出來做,將小功能的接口都想好,另建一個工程。這樣對實現低耦合也很有好處,因為引用不到外部的數據,只能以建立接口的方式。但是還是遇到了麻煩,每個小功能都建立一個工程來做,顯然很難管理,特別是當要做個普通的類實現一個小功能時。這個方法我想更適合項目中一些功能相對比較獨立的模塊的。因此我的代碼測試這塊做的并不是很細,直到后來發現了X-UNIT。
原來測試可以做到這么細的,并且是全自動的~~在將功能分了一個個類后,對一些主要的類都寫一個繼承于TTestCase的類,加入測試工程,具體可參考X-UNIT的Demo,網上也有很多這方面的教程。
比如我要寫個TPersons類,實現人員的添加、刪除、查找、選擇分組等等功能;分別為Add,Del,Find,PersonsOfGroup等等方法,F在我們可以先寫測試類 TPersonsTest,里面有TestAdd,TestDel,TestFind,TestPersonOfGroup等方法,分別用來測試TPersons類的方法。像TestDel我是這樣(DELPHI語言):
TestAdd;//添加一個記錄
try
FPersons.Del(0);//測試刪除
except
Check(false,'Del error');
end;
Check(FPersons.Count = 0,'Del Failed');//刪除是否成功
接下來我們再編寫Tpersons.del的具體實現。這個在XP中叫測試驅動,很Cool的名字吧:)
然后我們運行時測試工程會自動調用,顯示錯誤的地方,或測試不通過的地方。像調用FPersons.Del(0)后,FPersons.Count還為1時就顯示'Del Failed'。根據不同的被測試類要考慮不同的情況,模擬各種輸入值等等。
最后所有測試都通過,一片綠色~~~心里特安心!
初看在寫個類時都編寫測試用例的方式感覺浪費時間,先不說調查數據和XP開發上說的各種好處。起碼我自己覺的我的代碼都是能穩定工作。特別是代碼行越來越多時,每次大的修改后,心里感覺都不塌實,怕哪里有遺漏。但使用測試驅動方式,只要測試寫的好,每次修改,運行測試,只要看她的紅綠燈就OK了。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/