日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
我的神呀,測(cè)試驅(qū)動(dòng)開發(fā)真的有效!

我們經(jīng)常聽到人們宣揚(yáng)說(shuō),在開發(fā)軟件時(shí)寫測(cè)試代碼(單元測(cè)試,功能測(cè)試等)能有效的減少產(chǎn)品中的bug。如何驗(yàn)證這樣的言論?通常,這些人都是已經(jīng)在使用驅(qū)動(dòng)測(cè)試開發(fā)(TDD)或行為驅(qū)動(dòng)開發(fā)(BDD),而且,他們所在的公司在誕生第一天起就有著很強(qiáng)的測(cè)試文化。然而,如何能測(cè)量不寫測(cè)試程序造成的影響?如何能驗(yàn)證實(shí)踐TDD能真正的減少bug的存在?我們能否在一段時(shí)間里停止寫測(cè)試程序,看看這對(duì)軟件缺陷數(shù)有多大的影響?這方法看起來(lái)不太現(xiàn)實(shí)。

翁牛特ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

這篇文章里,我將通過分析當(dāng)前我工作中的真實(shí)數(shù)據(jù)來(lái)回答這個(gè)問題。以前我們的系統(tǒng)沒有測(cè)試代碼,可一旦開始進(jìn)行測(cè)試驅(qū)動(dòng)開發(fā),我就成為了這種開發(fā)方法的強(qiáng)力倡導(dǎo)者。

測(cè)試驅(qū)動(dòng)開發(fā)前的背景情況

我做Web開發(fā)已經(jīng)有10年了,從2009年起就開始耳聞驅(qū)動(dòng)測(cè)試開發(fā)(TDD)。從那時(shí)開始我就打算要多學(xué)學(xué)這方面的知識(shí)。我在當(dāng)時(shí)的公司里已經(jīng)干了兩年,現(xiàn)在已經(jīng)是2012年,在這個(gè)公司總共工作了5年,從后3年開始實(shí)施測(cè)試驅(qū)動(dòng)開發(fā)方法。

這個(gè)過程非常有趣,因?yàn)槿缃裎铱梢詾g覽我們的bug跟蹤系統(tǒng),匯總這段時(shí)間的缺陷統(tǒng)計(jì)數(shù)據(jù),看看TDD對(duì)我們的程序代碼質(zhì)量有多大的影響。

簡(jiǎn)單的說(shuō)一下我們的軟件技術(shù)構(gòu)成:我開發(fā)基于PHP和Javascript的系統(tǒng)UI部分。我是UI部分的主要開發(fā)人員,這就是說(shuō),如果UI上有bug,我基本上要對(duì)此負(fù)責(zé)。UI跟后臺(tái)的C++服務(wù)交互,這服務(wù)運(yùn)行在Oracle數(shù)據(jù)庫(kù)上,通過PLSQL代碼處理數(shù)據(jù)。

UI部分的PHP代碼是唯一實(shí)施了測(cè)試驅(qū)動(dòng)開發(fā)的地方。我們的Javascript代碼沒有測(cè)試程序。遺憾的是,公司里的程序員都沒有測(cè)試驅(qū)動(dòng)開發(fā)的實(shí)踐經(jīng)驗(yàn)。系統(tǒng)其它層面的代碼都沒有實(shí)施單元測(cè)試或功能性測(cè)試(公司有專門的QA團(tuán)隊(duì)在開發(fā)完成之后進(jìn)行測(cè)試)。

這使得我們的統(tǒng)計(jì)分析數(shù)據(jù)看起來(lái)非常的明顯。我可以看到,隨著時(shí)間的推移,我們的整個(gè)產(chǎn)品和UI模塊的缺陷數(shù)字的變化。這使得我有辦法來(lái)回答最初的問題,這個(gè)問題在此可以用這樣的問題復(fù)述:使用測(cè)試驅(qū)動(dòng)開發(fā)能使我負(fù)責(zé)的UI模塊的缺陷數(shù)下降嗎?

測(cè)試驅(qū)動(dòng)開發(fā)真的有效嗎?

下面這個(gè)圖表是由我們的bug跟蹤系統(tǒng)生成的。它向我們展示了UI部分的bug和整個(gè)產(chǎn)品的bug的對(duì)比比率。

我們可以從中看出一些有趣的事情:

  • 首先,我可以回答這個(gè)問題:在UI中發(fā)現(xiàn)的bug的數(shù)量(下面綠顏色的)減少了50%(起初UI部分相關(guān)的bug數(shù)量占整個(gè)產(chǎn)品的35%,如今它已經(jīng)降到了15%)。
  • 在歷史遺留的程序庫(kù)上實(shí)施測(cè)試驅(qū)動(dòng)開發(fā)并不會(huì)很快的顯現(xiàn)出效果。我于2009年第三季度開始TDD。你可以看到,到了2010年第三季度時(shí)bug數(shù)才開始下降,而到了2011年第三季度開始大幅度下降。將近用來(lái)2年的時(shí)間實(shí)現(xiàn)了50%的降低。
  • 圖表上顯示,在2010年第二季度和2011年第二季度時(shí),數(shù)據(jù)上下跳動(dòng)??匆幌挛覀儺a(chǎn)品的發(fā)布?xì)v程,這應(yīng)該歸結(jié)于這段時(shí)間系統(tǒng)里增加了嚴(yán)重依賴于Javascript的第三方地圖API功能。我之前也說(shuō)過,我們并沒有寫Javascript上的測(cè)試代碼。這也證實(shí)了不寫測(cè)試代碼會(huì)導(dǎo)致更多的 bug。

下一步的計(jì)劃?

之前我說(shuō)過,我只是在PHP代碼上實(shí)施了測(cè)試驅(qū)動(dòng)開發(fā)。觀察如今產(chǎn)生的bug,我注意到它們通??梢詺w為這樣兩類:

  • Javascript代碼中的bug(這些是沒有自動(dòng)化測(cè)試程序的)
  • 系統(tǒng)集成時(shí)產(chǎn)生的bug(例如,獨(dú)立的PHP組件通過了單元測(cè)試,但組合起來(lái)運(yùn)行時(shí)卻出了問題)

這很自然的將我引入了下一步的測(cè)試探險(xiǎn):我要在Javascript代碼里加入測(cè)試套件代碼,并最終加入集成測(cè)試套件代碼。

今年整個(gè)夏天我都在做這項(xiàng)工作。對(duì)于Javascript代碼,開發(fā)了基于Jasmine BDD框架的測(cè)試套件。對(duì)于端對(duì)端的測(cè)試,我使用Cucumber。在這兩種情況中,我使用Selenium Web Driver在真實(shí)的瀏覽器中運(yùn)行測(cè)試代碼,或胡亂的使用強(qiáng)大的Phantom.js。

我們即將開始下一個(gè)開發(fā)周期,我期望通過這些新的措施,我們能開發(fā)出更有質(zhì)量的軟件。我希望明年還能寫出這樣的一篇文章來(lái)分析這些測(cè)試開發(fā)工具的效果。很有可能它們會(huì)進(jìn)一步的降低我們的bug數(shù)量。

還有,把這些數(shù)據(jù)分享給我的同事,這讓一些開發(fā)人員也開始相信測(cè)試驅(qū)動(dòng)開發(fā)的好處。我們產(chǎn)品中另外一些服務(wù)上的開發(fā)人員對(duì)TDD表現(xiàn)出了興趣,準(zhǔn)備研究如何在他們的程序庫(kù)上實(shí)施測(cè)試驅(qū)動(dòng)開發(fā)。觀察他們的在實(shí)踐中能獲得什么樣的成果將會(huì)是一件有趣的事情。

結(jié)束語(yǔ)

你呢?測(cè)試驅(qū)動(dòng)開發(fā)(TDD)和行為驅(qū)動(dòng)開發(fā)(BDD)是如何影響你們的代碼質(zhì)量的?你是否也有類似的統(tǒng)計(jì)數(shù)據(jù)可以分享?請(qǐng)?jiān)谙旅娴脑u(píng)論里寫出來(lái)。


網(wǎng)頁(yè)題目:我的神呀,測(cè)試驅(qū)動(dòng)開發(fā)真的有效!
網(wǎng)站URL:http://www.5511xx.com/article/dhdisch.html