成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

測試是浪費時間,我的程序肯定沒問題

開發 后端
相同的做法。寫一個測試程序,重現這個bug。即使你沒有時間來立即修正這個bug或者這不是個致命的bug,你也應該有個能夠讓它重現的測試程序,當日后你回來解決這個問題時,你就能知道該做什么了。

盡管關于測試驅動開發(TDD)的書和文章有成百上千之多,仍然有很多人從未感受過測試的強大力量。

之所以不愿意去寫測試程序不外乎有以下幾個理由:

  1. 太費時間。

  2. 不值得。

  3. 我很懶。

  4. 我不知道如何做。

  5. 我知道我的程序好用,我運行過一次,沒出問題。

  6. 我是超人,我從來不犯錯誤。

除非你的答案是6.(如果是這樣,我很羨慕你),否則,你應該繼續讀下去。

[[162382]]

讓我們從一個簡單的例子開始。就說你要寫一個Email地址校驗程序。

你也許會使用正則表達式,或手工實現每個字符的對比,來完成這個任務。

現在你想驗證一下你的代碼是否有效。你會怎么做?你可以手工輸入不同的值來驗證它是否符合你的要求,結果你就測試了像下面的這些東西:

foo
foo@bar
foo@bar.baz
...

如果你要改變/調整校驗算法會發生什么?你需要把之前所有的過程全部重復一遍,把每個值都再輸入一遍,看看校驗的結果。如果讓計算機自動的幫你校驗這些是不是會更好些呢?

通過把測試過程自動化,你可以在任何時候對程序進行任何遍次的測試。這不僅僅在以后會節省你大量的時間,而且會增加你的自信心,因為每次當你感覺到程序可能出錯時,只要運行一下你的測試程序,看看測試結果就行了。

現在設想一下你正在編寫一個更加復雜的程序,比如XML解析器。

你不可能編寫出解析器后不去測試它,問題是,你如何測試它?通常,你會創建一個XML樣板文件,把它輸入解析器里,手工檢查解析的結果。當你看到解析器按照要求輸出了你期望的結果后,你確信你完成了任務,解析器沒問題。

問題就在于如果你發現了一個Bug。那你就需要去修改你的代碼,再驗證一次它是否好用。可是我們程序員都是一群懶人,我們會只測試我們遇到的這個Bug,幾乎從來不會去測試解析器的其它部分。這會產生什么問題呢?你能確保沒有把什么東西改壞?

當你寫了單元測試程序后,這個工作流程會變的怎樣?

首先,你已經對程序進行過測試,之前你必須對每個函數進行手工的測試,手工的檢查輸出結果。如果這種事情你只需要做一次,那也沒什么了,但當有東西出錯時,你不想一遍一遍的重復做這個事情,沒有人喜歡來回重復的做相同的事情,特別是無聊的事情。

另一種情況,你為你的解析器里的每個功能都寫了自動測試程序。在這個例子中,你已經測試過你的程序,對這個過程你并不陌生。你需要做的是把手工的檢查改為assertions,它們會為你自動測試程序。

當Bug出現時,巨大的變化發生了。

如果沒有自動化測試,你必須手工的檢查所有的東西來確保你在修正一個Bug時不會引入其它的錯誤。當有數個Bug出現時,你會變得極不耐煩,你開始 不再檢查其它部分的代碼,只關注你的這個Bug。但假如你為程序寫好了自動化測試,你***要做的就是點擊一次按鈕,讓所有的測試程序運行起來,你馬上就能 看到測試結果,幾乎不需要在其它任何事情。

當有了測試程序后,修改Bug是怎樣進行的?

首先,你需要重現這個Bug。無論如何,在你修改前,你必須要認定這個Bug是否真實的存在。如何做到這些?你要寫出一個測試用例來重現這個bug,這個必須要在你做任何的修改這個bug的工作之前完成。

如果這個bug不能重現,問題就可能出自其它地方,如果不能用自動化測試來重現這個bug,你可能在錯誤的地方修改了這個bug,很可能改壞了你的程序。當你寫出測試程序,你必須先運行它確保它會失敗。如果測試沒有失敗,什么地方可能出了問題,你沒能正確的重現它。

當你修改了這個Bug,你也有了針對它的測試程序,你可以立即發現這個bug是否還會出現。

當你這時又發現另外一個bug時該怎么做?

相同的做法。寫一個測試程序,重現這個bug。即使你沒有時間來立即修正這個bug或者這不是個致命的bug,你也應該有個能夠讓它重現的測試程序,當日后你回來解決這個問題時,你就能知道該做什么了。

責任編輯:王雪燕 來源: techug
相關推薦

2016-01-22 11:51:36

測試浪費時間

2017-09-25 21:00:44

代碼開發完美

2015-01-20 11:30:48

完美代碼代碼

2009-02-26 10:29:46

時間工作

2014-08-15 10:33:57

編程效率項目經理

2020-12-18 12:14:44

PythonR語言數據科學

2020-12-14 10:22:50

開發開源安全

2016-10-31 20:02:21

WordPress網站數據集大數據轉型戰略

2020-04-30 10:27:40

廣告攔截器開源

2022-04-28 08:24:16

阿里云idaaspython

2022-03-31 14:13:52

云計算PaaSIT

2021-04-25 15:41:45

Python視頻信息

2022-09-27 15:03:43

Java測試工具

2024-11-27 08:28:37

2021-10-26 13:56:03

物聯網IOT物聯網技術

2022-06-06 06:00:00

開源無代碼測試工具

2022-02-21 10:07:26

單元測試項目

2014-11-21 09:17:14

2012-01-06 09:45:59

敏捷開發

2022-07-06 08:39:33

Python代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线免费观看 | 91av在线电影 | 奇米影视77 | 欧美日韩电影免费观看 | 一区二区三区在线免费观看 | 日韩久久久久 | 99精彩视频 | 免费一二区| 国产不卡视频 | 夜久久 | avhd101在线成人播放 | 在线第一页| 国产欧美精品一区二区三区 | 国产超碰人人爽人人做人人爱 | 国产综合久久久久久鬼色 | 午夜寂寞影院在线观看 | 国产成人精品久久 | 日本不卡一区 | 日韩精品一区二区三区 | 亚洲国产欧美在线 | 久久久精品久 | 午夜视频一区二区三区 | 欧美8一10sex性hd| 亚洲高清免费视频 | 国产视频一区二区 | 99精品一区二区 | 99福利视频 | 欧美激情久久久久久 | 精品乱人伦一区二区三区 | 91精品久久久久久久久久 | 日韩成人专区 | 欧美一区二区三区在线播放 | 亚洲精品天堂 | 51ⅴ精品国产91久久久久久 | 久久新 | 91影片| 亚洲福利一区二区 | 亚洲激情在线观看 | 在线观看国产精品一区二区 | 成人h视频在线 | 欧产日产国产精品国产 |