天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

我們的測試驅(qū)動開發(fā)經(jīng)驗

  你應該聽過或讀過不少關于測試驅(qū)動開發(fā)的討論,測試驅(qū)動開發(fā)往往被比喻為神奇的獨角獸,它能幫你照看你的軟件,讓大家樂得其所。于是,在寫了18.000行“神奇獨角獸”代碼后,我想把我們的體驗從整體的角度闡述一下。

  真相其實是,測試驅(qū)動開發(fā)真TMD太痛苦了。寫那些沒完沒了的測試需要很強的自律,遠不是你想象的那么簡單容易。

  但你知道什么更讓人討厭嗎?是缺少這些測試而出現(xiàn)的麻煩。

  讓我澄清一下。我并不是想來勸說你去實施測試驅(qū)動開發(fā)。我想做的只是要給你一個真實的認識,讓你明白TDD是如何工作的,以及你能從中得到哪些好處。

  對軟件開發(fā)來說,我基本上把測試驅(qū)動開發(fā)當做一種保險。它能保證你的軟件有一個預設的質(zhì)量關卡,大多數(shù)是依據(jù)bug的數(shù)量和軟件變更的風險度來判定。它同時能降低萬一你的主要開發(fā)人員被車撞后造成的損失,以及你的軟件所依賴的平臺上的API遭遇類似事件所帶來的危害。

  然而,在我們所生活的這個星球上,仍然有成百萬的人每天過著沒有保險的生活,很顯然,達到目的的方式并不是只有一條途徑。這完全依賴于你的責任心和你能或你想怎么去做事情。

  在Transloadit公司,我們 100%的代碼都是由測試驅(qū)動開發(fā)的。我們這樣做的主要原因是我們的系統(tǒng)用了node.js,這種技術目前來看在某種程度上仍然是有很高的風險的技術,也許這正是我們最大的麻煩,但同時也是我們最大的優(yōu)勢所在。另外一個很大的風險是我們使用的第三方工具包,例如ffmpeg和image magick,這些東西在升級時出奇的危險,因為它們動不動就改變API和接口運行方式。而最后一個,但絕對不是最不重要的一個,是我們的某些東西太復雜了。

  現(xiàn)在,讓我解釋一下我們?nèi)绾卫脺y試驅(qū)動開發(fā)來避免這些風險的。首先,在開發(fā)所有的新功能前先寫系統(tǒng)測試。所有的系統(tǒng)測試都是利用整套的REST service,它產(chǎn)生真實的HTTP請求,評估響應的信息,同時也檢查這個過程中產(chǎn)生的文件。我們通過文件的元數(shù)據(jù)信息來確認文件,對于圖片我們使用特定的設計進行可視化比較。對于視頻我們使用截屏圖像進行可視化對比。

  一旦寫出來測試程序(也許是失敗的測試),我們就開始寫單元測試。讓我來解釋一下我們所說的“單元“。對于我們來說,一個單元是我們能測試的一個最小粒度的功能片段。只要存在函數(shù)調(diào)用,類的創(chuàng)建,甚至閉包的回調(diào),我們都會把它挑出來。所有的測試都是孤立的、分離的、能夠自動的運行處理。你可以想象的出,這部分工作是痛苦的,需要勇氣。

  可是,產(chǎn)生的結果卻是不可否認的漂亮。寫這些測試感覺就像是在驗證數(shù)學理論。每一個步驟都是能夠分解的最小的邏輯單元。所有的步驟都是基于之前的一步。沒有必要每次都測試所有的 1 – 1000000個功能點,除非你有邏輯上的需求,需要一個特殊結果。

  很顯然,在這個過程中你有很多機會去做傻事,或者迷失了原始方向。這時系統(tǒng)測試就來拯救你了。任何當你不知道下一步該做什么的時候,只要運行一下系統(tǒng)測試,它就會告訴你還少些什么要做。

  完美的過程嗎?不,在我們的產(chǎn)品中的這里或那里,多少都會有些bug,但不多,我十個手指頭都能數(shù)過來。上周末,我們對我們的產(chǎn)品做了一個瘋狂的改動:我們把底層的MySQL驅(qū)動(我們用的是php,別問我怎么做的)換成了node-mysql。我們已經(jīng)在node-mysql上工作了,同樣使用的是TDD-masochism,升級相當?shù)钠椒€(wěn)(目前為止)。這種成績對于一個牽涉有6000行代碼的改動來說很不錯了。

  這就是我們做的。并不會由于我們使用了TDD,我們公司的產(chǎn)品就必然的優(yōu)于我們的競爭對手。但我們承擔的風險要小的多,我們可以輕而易舉的做心臟手術。這給了我們分配資金的信心,給了我們能力去把剩余有限的資源(我們做事情步步為營)使用在新功能的開發(fā)上,而不是花在解決我們軟件里無處不在的缺陷上。

  那么,TDD適合你嗎?這要視情況而定。按TDD模式寫程序需要很強的自律,獨角獸不會一直陪在你身旁讓你放心。想好了再去這樣做。有時一些系統(tǒng)測試程序會用掉你80%的努力來測試只是20%的工作。而有些情況會讓你把剩余的20%也搭上。我們很幸運能使用一種靈活的語言,我們大部分的接口都是使用的JSON。這使我們的測試成本更低。這些我們銘記在心。

  [英文出處]:Test driven development at Transloadit

it知識庫我們的測試驅(qū)動開發(fā)經(jīng)驗,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品日本欧美一区二区 | 99视频精品全部 国产 | 九九免费高清在线观看视频 | 男生互捏jiji的故事 | 正能量不良WWW免费窗口 | 久久a在线视频观看 | 国产亚洲欧美高清在线 | 精品亚洲国产成AV人片传媒 | 另类重口bdsm日本tv | 东京热 百度影音 | 日本精品久久久久中文字幕2 | 国产成人精品午夜福麻豆报告 | 5G在线观看免费年龄确认18 | 最近在线视频观看2018免费 | 寻找最美乡村教师颁奖晚会 | 高清国语自产拍在线 | 九九热视频在线观看 | 国产亚洲精品a在线观看app | 又黄又爽又无遮挡在线观看免费 | 亚洲国产在线精品国偷产拍 | 总裁呻吟双腿大开男男H | 国产精品色午夜视频免费看 | 校花被扒衣吸乳羞羞漫画 | brazzers情欲狂欢 | 国产人妻人伦精品久久久 | 大香伊人中文字幕精品 | 久cao在线香蕉 | 最新毛片网 | 嫩草成人影院 | 扒开老师大腿猛进AAA片软件 | 快播电影频道 | 最新亚洲中文字幕在线观看 | 免费国产在线观看 | 挠黑色超薄丝袜脚心vk40分钟 | 亚洲中久无码永久在线 | 熟女人妻AV五十路六十路 | 宝贝乖女好紧好深好爽老师 | 日日摸夜夜添无码AVA片 | 末成年美女黄网站色大片连接 | 99麻豆精品国产人妻无码 | CHINA末成年VIDEO学生 |