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

修復(fù)Bug好比釣魚(yú)

  英文原文:Fixing a Bug is Like Catching a Fish

經(jīng)理:該Bug何時(shí)能得到修復(fù)?

經(jīng)驗(yàn)缺乏的程序員:也許一個(gè)小時(shí)?最多兩個(gè)小時(shí)!馬上去做!

經(jīng)驗(yàn)豐富的程序員:嗯,捉一條魚(yú)需要多少時(shí)間呢

  在現(xiàn)實(shí)操作中,很難能明確知道一個(gè)軟件缺陷需要多久可以修復(fù),尤其是當(dāng)你對(duì)代碼不了解的情況下。James Shore在“敏捷開(kāi)發(fā)藝術(shù)”一書(shū)中指出:“在你需要修復(fù)Bug時(shí),你必須找到是哪里出錯(cuò)了?”,問(wèn)題的關(guān)鍵是不能準(zhǔn)確估算多久才能找出是哪里報(bào)錯(cuò)的。只有知道“病源”在哪?你才能準(zhǔn)確估算修復(fù)的時(shí)間。但那為時(shí)已晚,根據(jù)Steve McConnell

“發(fā)現(xiàn)缺陷——理解缺陷——通常占了工作的90%”。

  有許多缺陷只需要改一行代碼就可以修復(fù)。時(shí)間都花在確定該行上面,就好像釣魚(yú)的時(shí)候該把魚(yú)鉤放哪?何時(shí)何地魚(yú)會(huì)上鉤一樣。每個(gè)Bug都有它們自己的性格特征,有些可能很容易被發(fā)現(xiàn),而有些可能會(huì)跟你玩“捉迷藏”,并且容易發(fā)現(xiàn)的Bug不一定就很難修復(fù),當(dāng)然,那些擅長(zhǎng)玩“隱藏”的Bug有可能很容易被修復(fù)。

  查找和修復(fù)

  下面讓我們來(lái)看看如何發(fā)現(xiàn)并修復(fù)Bug。當(dāng)調(diào)試時(shí),Paul Butcher把每個(gè)步驟都進(jìn)行了很好的描述。經(jīng)驗(yàn)豐富的程序員會(huì)很熟悉這種結(jié)構(gòu)化和紀(jì)律性的步驟要領(lǐng)。

  1. 確定查找目標(biāo),審查Bug報(bào)告,看看該Bug描述是否很合理并且提供了足夠的信息去發(fā)現(xiàn)和重現(xiàn)。檢查一下該報(bào)告以前是否遇到過(guò),如果是,可以檢查以前是如何處理的。
  2. 清理桌面——找到正確的代碼并檢查、清理工作空間。
  3. 設(shè)置與之匹配的測(cè)試環(huán)境。這可能是微不足道的,或者是不可能出現(xiàn)的,如果客戶是在一個(gè)你無(wú)法訪問(wèn)的配置下運(yùn)行。
  4. 對(duì)代碼的理解已經(jīng)毫無(wú)問(wèn)題,并且通過(guò)現(xiàn)有的測(cè)試套件。
  5. 釣魚(yú)的時(shí)間到了,重現(xiàn)并且診斷錯(cuò)誤。如果你不能重現(xiàn)這個(gè)錯(cuò)誤,那么就無(wú)法去修復(fù)。
  6. 寫(xiě)新的(失敗的)開(kāi)發(fā)測(cè)試報(bào)告或者修復(fù)現(xiàn)有測(cè)試報(bào)告來(lái)捕捉Bug。
  7. 進(jìn)行修復(fù)——確定沒(méi)有破壞其他功能模塊。這里可能會(huì)包括,在修復(fù)之前對(duì)代碼進(jìn)行重構(gòu)使代碼更容易被理解,并且使整個(gè)修復(fù)更安全。在后面的回歸測(cè)試中確保沒(méi)有引入任何新的錯(cuò)誤。
  8. 努力讓代碼更安全,更清潔,做一些循序漸進(jìn)的重構(gòu)確保代碼更健壯并且易于維護(hù)的。
  9. 修復(fù)完成后,讓他人進(jìn)行審查,確保你沒(méi)有做一些愚蠢的事情。
  10. 再次檢查。
  11. 檢查該Bug在其他分支中是否存在,如果你不是主線,你可以在里面進(jìn)行合并,然后在代碼里面進(jìn)行處理,并且瀏覽所有相同的評(píng)論和測(cè)試報(bào)告。
  12. 結(jié)束并且進(jìn)行思考和總結(jié)。明白是哪里出錯(cuò)了?為什么?是否真正理解自己的修復(fù)?在別的地方還會(huì)發(fā)現(xiàn)這個(gè)錯(cuò)誤嗎?在Pragmatic Programmer,Andy Hunt和Dave Thomas也同樣問(wèn)了這樣的問(wèn)題:“如果你花了很長(zhǎng)時(shí)間去修復(fù)這個(gè)Bug,問(wèn)問(wèn)自己,到底是為什么?”在將來(lái),如何讓該Bug更容易被發(fā)現(xiàn)和修復(fù)?如何提高修復(fù)方法或許是使用工具?思考的是否深入,要看這個(gè)Bug影響和所花的時(shí)間有多長(zhǎng)?

  發(fā)現(xiàn)和修復(fù)需要多久

  設(shè)置測(cè)試環(huán)境所需的時(shí)間,重現(xiàn)一個(gè)Bug或者修復(fù)可能遠(yuǎn)遠(yuǎn)超過(guò)在代碼中查找和修復(fù)的時(shí)間。但是對(duì)于那種小缺陷,在發(fā)現(xiàn)時(shí)即可修復(fù)。

  在軟件開(kāi)發(fā)中,關(guān)于大多數(shù)軟件缺陷來(lái)自哪里?Dewayne Perry解釋到:發(fā)現(xiàn)一個(gè)Bug(理解并重現(xiàn)Bug)比多久去修復(fù)更難。研究發(fā)現(xiàn),大多數(shù)Bug(幾乎3/4)很容易被發(fā)現(xiàn)和理解,并且不會(huì)花多少時(shí)間去修復(fù):5天或更少(這是在大型實(shí)時(shí)系統(tǒng)與一個(gè)重量級(jí)的SDLC中,經(jīng)過(guò)大量檢查和測(cè)試發(fā)現(xiàn)的)。這里有一個(gè)長(zhǎng)期隱藏型Bug,可能需要花更長(zhǎng)的時(shí)間修復(fù),即使這個(gè)Bug微不足道:

發(fā)現(xiàn)/修復(fù)工作小于5天修復(fù)大于5天
缺陷可以重現(xiàn)72.5%18.4%
很難或者不能重現(xiàn)5.9%3.2%

  所以在你發(fā)現(xiàn)Bug的時(shí)候,可以和自己打賭,它很快就會(huì)被修復(fù),這個(gè)命中率會(huì)很高。但是當(dāng)打賭失敗時(shí),你可能會(huì)錯(cuò)很多,或者徹底來(lái)個(gè)大錯(cuò)特錯(cuò)。

it知識(shí)庫(kù)修復(fù)Bug好比釣魚(yú),轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 国产成人精视频在线观看免费 | 轻点灬大ji巴太粗太双性高h | 国产精华av午夜在线观看 | 自拍偷拍12p| a级成人免费毛片完整版 | 三级在线网址 | 久久全国免费观看视频 | 亚洲VA天堂VA欧美VA在线 | 俄罗斯12一15处交 | 男男高H啪肉Np文多攻多一受 | 一区二区三区福利视频 | 国产精品爆乳尤物99精品 | 国产精品久久精品 | 性做久久久久免费观看 | 色-情-伦-理一区二区三区 | yin荡体育课羞耻play双性 | 国产AV亚洲精品久久久久 | 接吻吃胸摸下面啪啪教程 | 丹麦1o一19sex性hdhd | 狠狠爱亚洲五月婷婷av | 男女午夜性爽快免费视频不卡 | 影音先锋男人资源813. | 暖暖视频在线高清播放 | 麻豆Av国产在线播放 | 先锋影音av资源站av | 日韩欧美一区二区三区在线视频 | 99精品视频免费观看 | 中文字幕在线视频在线看 | 呜呜别塞了啊抽插 | 国产看黄网站又黄又爽又色 | 动漫成年美女黄漫网站 | 青草在线在线d青草在线 | 久久精品无码人妻无码AV蜜臀 | 亚洲国产成人精品无码区5566 | 欧美三级在线完整版免费 | 99re6久久热在线播放 | 国模丽丽啪啪一区二区 | 久久人妻少妇嫩草AV蜜桃35I | 99久久精品免费国产一区二区三区 | 秋霞伦理高清视频在线 | 99久久精品免费看国产一区二区 |