一篇好的BUG報告是如何煉成的
譯文如果大家剛剛開始接觸bug追蹤、問題管理以及Web開發(fā)等工作,那么bug報告絕對是各位避不開的一項(xiàng)任務(wù)。在今天的文章中,我們將嘗試從多種視角回答這個問題。相信我,內(nèi)容還是相當(dāng)有趣的。
我們總在探討bug報告……
……但卻很少解釋bug報告究竟是什么。
關(guān)于這個問題,我通過谷歌在Usersnap上找到1000多個相關(guān)結(jié)果,發(fā)布在博客上的博文也有183篇,其中涉及大量bug追蹤工作中該做與不該做的內(nèi)容。
然而,我們?nèi)匀粵]有回答最為核心的問題。不過關(guān)于bug報告的各類議題仍然相當(dāng)豐富,毫無疑問。
總而言之,我們今天終于開始進(jìn)入正題了……畢竟是個好消息,對吧?
究竟什么是bug報告?
那么我們首先回答這個問題,“究竟什么是bug報告?”
為了找到答案,我們需要了解幾項(xiàng)相關(guān)概念,包括什么是bug、什么是bug報告以及bug報告軟件。
什么是bug?
在軟件開發(fā)、工程或者Web構(gòu)建過程當(dāng)中,bug指的不是那種小小的昆蟲,而是另一種完全不同的概念。
根據(jù)維基百科的說法,軟件bug(或者直接說‘bug’)被定義為:
“軟件bug是指存在于計(jì)算機(jī)程序或者系統(tǒng)當(dāng)中的一種錯誤、缺陷、故障或者瑕疵,其會導(dǎo)致軟件出現(xiàn)不正確或者預(yù)期之外的運(yùn)行結(jié)果,又或者以不同于既定設(shè)計(jì)的方式運(yùn)作。”
簡而言之,這意味著:
軟件bug是一種錯誤、缺陷、故障或者瑕疵,可能造成不正確或者預(yù)期之外的運(yùn)行結(jié)果。
基本上,軟件bug就是那種與設(shè)計(jì)思路不符的元素。
為什么要稱其為“bug”?——bug名稱的起源
大家可能好奇,為什么要將軟件錯誤稱為bug?這是個好問題,因?yàn)橛?ldquo;bug”一詞形容軟件錯誤或者故障的作法可以追溯到1945年。1945年年末,哈佛大學(xué)的一個技術(shù)團(tuán)隊(duì)發(fā)現(xiàn)Relay70設(shè)備當(dāng)中存在一些故障點(diǎn)。他們最終發(fā)現(xiàn)引發(fā)問題的是一些蟲子(bug)尸體。
而在bug定義條目所指出,“這是歷史上首例被記錄在案的bug。”
因此,從理論上講,bug就是與設(shè)計(jì)思路不符的元素。
不過,如果設(shè)計(jì)本身就存在問題,那么又該如何看待?這屬于bug嗎?如大家所見,這個問題的答案還有很多探討空間。
無論大家屬于開發(fā)者、設(shè)計(jì)師還是軟件用戶,想必在實(shí)際生活中都多少遇到過bug,甚至可能親手造成過bug。
什么是bug報告?
那么新的問題來了:什么是bug報告?
當(dāng)bug出現(xiàn)時,人們會發(fā)現(xiàn)并將其報告(記錄為文檔并發(fā)送)給負(fù)責(zé)修復(fù)錯誤或者故障的技術(shù)團(tuán)隊(duì)。
根據(jù)Yegor的說明,bug報告“應(yīng)當(dāng)解釋產(chǎn)品所出現(xiàn)的具體問題。”
他進(jìn)一步補(bǔ)充稱,bug報告應(yīng)當(dāng)遵循以下這一基本模式:
“我遇到的情況是這樣的,我希望實(shí)際情況是那樣的,因此請加以修復(fù)。”
聽起來很簡單,對吧?然而實(shí)際情況并非如此——很多bug報告并沒能說清需要表達(dá)的內(nèi)容。
想象一下,如果我們自己遇到了bug并需要發(fā)送報告,那么會在其中包含哪些信息?答案恐怕將因人而異。
過去,bug報告屬于冗長的表格,包含大量字段與數(shù)據(jù)請求。錯誤的優(yōu)先級是什么?怎樣描述問題?由哪些部分組成?使用的是哪個版本的瀏覽器?等等……
好的bug報告與差的bug報告
那么bug報告肯定也是有好壞的——二者區(qū)別何在?為什么會有這么多糟糕的bug報告?
我收集到了與此相關(guān)的一些說法,幫助大家更明確地進(jìn)行區(qū)分:
· 好的bug報告包含重現(xiàn)及修復(fù)問題的必要信息
· 差的bug報告不包含重現(xiàn)及修復(fù)問題的必要信息
· 好的bug報告能夠有效幫助bug報告者與bug接收者進(jìn)行溝通
· 差的bug報告冗長且很難完成二者間的溝通
· 好的bug報告能夠盡快得到解決
· 差的bug報告根本得不到解決
· 好的bug報告會被直接發(fā)送至相關(guān)負(fù)責(zé)人
· 差的bug報告根本無法指向相關(guān)負(fù)責(zé)人
· 好的bug報告言簡意賅
· 差的報告缺少必要信息
· 好的bug報告符合提交規(guī)范
· 差的bug報告可能采取多種提交方式,但就是不符合既有規(guī)范(小提示:請盡量別用微博發(fā)送bug報告)
· 好的bug報告能夠確立協(xié)作共同點(diǎn)
· 差的bug報告無法實(shí)現(xiàn)協(xié)作
那么***,我們要匯總以上內(nèi)容來回答今天的主題:“究竟什么是bug報告?”
所謂bug報告,需要存儲全部記錄、報告及修復(fù)軟件內(nèi)或者網(wǎng)站上問題的信息。而且在理想場景下,其應(yīng)盡可能以更為有效的方式實(shí)現(xiàn)。
總結(jié)陳詞
總而言之,我們已經(jīng)了解了關(guān)于bug、bug報告以及bug報告系統(tǒng)的相關(guān)知識。不過這還僅僅是基礎(chǔ),從有bug到無bug的道路仍然漫長而坎坷——同志們,加油!
原文鏈接:一篇好的BUG報告是如何煉成的
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】