你也許會使用正規表示式,或手工實現每個字元的對比,來完成這個任務。
現在你想驗證一下你的**是否有效。你會怎麼做?你可以手工輸入不同的值來驗證它是否符合你的要求,結果你就測試了像下面的這些東西:
如果你要改變/調整校驗演算法會發生什麼?你需要把之前所有的過程全部重複一遍,把每個值都再輸入一遍,看看校驗的結果。如果讓計算機自動的幫你校驗這些是不是會更好些呢?
通過把測試過程自動化,你可以在任何時候對程式進行任何遍次的測試。這不僅僅在以後會節省你大量的時間,而且會增加你的自信心,因為每次當你感覺到程式可能出錯時,只要執行一下你的測試程式,看看測試結果就行了。
你不可能編寫出解析器後不去測試它,問題是,你如何測試它?通常,你會建立乙個xml樣板檔案,把它輸入解析器裡,手工檢查解析的結果。當你看到解析器按照要求輸出了你期望的結果後,你確信你完成了任務,解析器沒問題。
問題就在於如果你發現了乙個bug。那你就需要去修改你的**,再驗證一次它是否好用。可是我們程式設計師都是一群懶人,我們會只測試我們遇到的這個bug,幾乎從來不會去測試解析器的其它部分。這會產生什麼問題呢?你能確保沒有把什麼東西改壞?
首先,你已經對程式進行過測試,之前你必須對每個函式進行手工的測試,手工的檢查輸出結果。如果這種事情你只需要做一次,那也沒什麼了,但當有東西出錯時,你不想一遍一遍的重複做這個事情,沒有人喜歡來回重複的做相同的事情,特別是無聊的事情。
另一種情況,你為你的解析器裡的每個功能都寫了自動測試程式。在這個例子中,你已經測試過你的程式,對這個過程你並不陌生。你需要做的是把手工的檢查改為assertions,它們會為你自動測試程式。
如果沒有自動化測試,你必須手工的檢查所有的東西來確保你在修正乙個bug時不會引入其它的錯誤。當有數個bug出現時,你會變得極不耐煩,你開始不再檢查其它部分的**,只關注你的這個bug。但假如你為程式寫好了自動化測試,你唯一要做的就是點選一次按鈕,讓所有的測試程式執行起來,你馬上就能看到測試結果,幾乎不需要在其它任何事情。
首先,你需要重現這個bug。無論如何,在你修改前,你必須要認定這個bug是否真實的存在。如何做到這些?你要寫出乙個測試用例來重現這個bug,這個必須要在你做任何的修改這個bug的工作之前完成。
如果這個bug不能重現,問題就可能出自其它地方,如果不能用自動化測試來重現這個bug,你可能在錯誤的地方修改了這個bug,很可能改壞了你的程式。當你寫出測試程式,你必須先執行它確保它會失敗。如果測試沒有失敗,什麼地方可能出了問題,你沒能正確的重現它。
當你修改了這個bug,你也有了針對它的測試程式,你可以立即發現這個bug是否還會出現。
相同的做法。寫乙個測試程式,重現這個bug。即使你沒有時間來立即修正這個bug或者這不是個致命的bug,你也應該有個能夠讓它重現的測試程式,當日後你回來解決這個問題時,你就能知道該做什麼了。
本文**:碼農網
浪費時間的絕不是PowerPoint軟體的錯
浪費時間的絕不是powerpoint軟體的錯 此段文字節選自 演說之禪 職場必知的幻燈片秘笈 一書 我參加的演說中,大多數都是某一領域的專家,借助ppt為外行的聽眾作講解。這也就是演說的基本情境了。比如,一位生物燃料技術方面的專家受邀給當地商務部門人士做場演說,具體介紹這一領域的情況,及公司在該領域...
技術人員如何」正確」的浪費時間?
linux 作業系統使用者如果要浪費時間,你就應該這樣做 編譯乙個 更快 的核心 通過源 編譯 firefox chromium 反覆調整字型 不停的美化桌面 閒著沒事就跑一下apt更新一下程式 和 windows 使用者打嘴仗 windows 作業系統使用者如果要浪費時間,你就應該這樣做 安裝防毒...
浪費時間的絕不是PowerPoint軟體的錯
浪費時間的絕不是powerpoint軟體的錯 此段文字節選自 演說之禪 職場必知的幻燈片秘笈 一書 我參加的演說中,大多數都是某一領域的專家,借助ppt為外行的聽眾作講解。這也就是演說的基本情境了。比如,一位生物燃料技術方面的專家受邀給當地商務部門人士做場演說,具體介紹這一領域的情況,及公司在該領域...