如何寫一份良好的缺陷(Bug)報(bào)告
沒錯(cuò),任何軟件都存在bug,哪怕是我們自己也存在缺陷,因?yàn)槌绦騿T也是普通人,人是會(huì)犯錯(cuò)誤的。當(dāng)有人在使用軟件時(shí)遇到bug,你需要使用郵件形成一份缺陷bug,發(fā)送給開發(fā)人員。開發(fā)者可以依據(jù)該報(bào)告定位問題,復(fù)現(xiàn)問題,修復(fù)問題。
但是很多時(shí)候,開發(fā)人員很難理解提交上的缺陷報(bào)告,因?yàn)榘l(fā)送人并不了解我們需要的是什么,那如何與開發(fā)人員溝通以及如何寫出一份缺陷報(bào)告,在這篇文章,我將教你如何寫出一份清晰的缺陷報(bào)告能使開發(fā)者理解、復(fù)現(xiàn)、修復(fù)問題,這里下載缺陷報(bào)告模板。
為什么要發(fā)送缺陷報(bào)告
缺陷報(bào)告可以用很多方式來幫助我們的開發(fā)者。
● 他們能告知我們沒有意識(shí)到的問題
● 他們能發(fā)現(xiàn)我們可能還沒想到的新特性
● 他們能幫助我們感受到客戶是如何使用我們的軟件,以至于我們可以做的更好
沒有這些缺陷報(bào)告,我們就不知道出錯(cuò)的地方,我們需要它就像你唱歌跳舞時(shí)需要有軟件的支持一樣。
什么時(shí)候發(fā)送缺陷報(bào)告
● 簡(jiǎn)單來說就是越快越好,詳細(xì)來說就是:
● 當(dāng)你看到一個(gè)錯(cuò)誤消息時(shí)就發(fā)送錯(cuò)誤報(bào)告
● 當(dāng)屏幕是空白或者數(shù)據(jù)缺失就發(fā)送報(bào)告
● 當(dāng)程序沒有出現(xiàn)預(yù)期的結(jié)果時(shí)發(fā)送報(bào)告
● 當(dāng)程序崩潰、死機(jī)、沒有響應(yīng)或者響應(yīng)很慢時(shí)發(fā)送報(bào)告
● 當(dāng)程序返回錯(cuò)誤結(jié)果時(shí)發(fā)送報(bào)告
● 當(dāng)你得不到想需要的結(jié)果時(shí)發(fā)送報(bào)告
● 如果你不清楚怎樣做時(shí)發(fā)送報(bào)告
● 如果你不喜歡軟件做的方式,或者軟件老打攪你時(shí),發(fā)送錯(cuò)報(bào)告
● 如果你想在系統(tǒng)中實(shí)現(xiàn)一個(gè)變通方案時(shí)發(fā)送報(bào)告
缺陷報(bào)告需要有哪些內(nèi)容
缺陷報(bào)告應(yīng)該包含很多信息,你提供的信息越多效果越好,對(duì)于開發(fā)者,就像我,提供一個(gè)純文本文件模板給你填充然后郵件發(fā)給我,當(dāng)然也有表格形式的,但是最期待你自己杜撰一份然后發(fā)給我。下面是一些必須包括的部分以及如何寫好每部分:
標(biāo)題:創(chuàng)建一個(gè)簡(jiǎn)短的標(biāo)題,讓問題看起來更清晰。“應(yīng)用崩潰”是一個(gè)很惱人的標(biāo)題因?yàn)樗鼪]有足夠的信息包括在這份報(bào)告里面。取而代之的是標(biāo)題應(yīng)該包含錯(cuò)誤消息和消息碼,或者是結(jié)果的名稱以及失敗時(shí)你正在做的事情。例如:Error 402:訪問拒絕當(dāng)點(diǎn)擊“發(fā)送郵件”這個(gè)例子就提供了缺陷系統(tǒng)的上下文信息。
差:“程序崩潰”,“報(bào)錯(cuò)”,“Bug”
好:“從’Kifu’中打印時(shí)5C79錯(cuò)誤”,“’Kifu honors’報(bào)表為空”
產(chǎn)品:用名稱標(biāo)識(shí)產(chǎn)品,告知你使用的是哪個(gè)版本。絕大部分軟件都包含有版本信息。web應(yīng)用的版本信息通常在頁腳。
差:“你的應(yīng)用”
好:”Kifu v1.01″
平臺(tái):告訴我們軟件運(yùn)行在什么平臺(tái)。尤其是操作系統(tǒng)的名字及版本和游覽器名稱版本。特別是web應(yīng)用,這些信息對(duì)我們很重要。
差:“Windows”
好:“Windows7,IE9”
是否能重現(xiàn):有些惱火的Bug是間歇性的出現(xiàn),我們想預(yù)先知道,如果我們正在處理一個(gè)靈異事件或者正逢Bug出現(xiàn)時(shí)。
差:留空白
好:“每次”,“偶然”,“不重現(xiàn)”
描述:這部分是很多人拿不定的地方,不知道怎么描述問題,在描述中做到包括下面的內(nèi)容:
● 總結(jié):用簡(jiǎn)潔的語言概括出Bug出現(xiàn)時(shí)你正在做的事情。從上下文開始,在操作應(yīng)用的哪個(gè)部分。聚焦在你做的時(shí)候軟件做了什么?
差:“系統(tǒng)不能用了”
好:在“honor report”頁面單擊“打印按鈕”,但是報(bào)表是空的。
● 發(fā)生了什么:一步一步描述你做的事情當(dāng)bug出現(xiàn)時(shí),為什么你認(rèn)為是錯(cuò)誤的。事無巨細(xì),打印出菜單的名稱,頁面標(biāo)題,點(diǎn)擊時(shí)的按鈕或者鏈接的名稱。做相同的操作是不是出現(xiàn)一樣的錯(cuò)誤。
差:“空白報(bào)表”
好:“點(diǎn)擊 ‘File/Save as…’,’Save‘對(duì)話空彈出,然后點(diǎn)擊‘OK’按鈕,但是文件沒有保存”
● 錯(cuò)誤時(shí)什么:如果錯(cuò)誤消息出現(xiàn)時(shí),拷貝粘貼整個(gè)信息,這樣更有利于我們跟蹤錯(cuò)誤。
差:“有個(gè)錯(cuò)誤,點(diǎn)擊它始終讀不出”
好:“Error 403:訪問拒絕”
● 復(fù)現(xiàn)的步驟:如果你可以讓bug重現(xiàn),那太好了,這能提供很大的幫助。一步步描述如何重現(xiàn)次bug。
差:“打印沒法使用”
好:“從‘Honors Report’頁面,點(diǎn)擊‘打印按鈕’”
● 預(yù)期結(jié)果:描述你預(yù)期發(fā)生的結(jié)果當(dāng)bug發(fā)生時(shí),這部分特別有用如果程序沒有按照你期待的結(jié)果發(fā)生時(shí),因?yàn)樗茉幃悺?/p>
差:“我期待能正常工作”
好:“我期待能看到‘Honors Reports’的PDF文件”
真實(shí)結(jié)果:當(dāng)bug發(fā)生時(shí)是怎么發(fā)生的,什么錯(cuò)誤,為什么有錯(cuò),或者如果錯(cuò)誤拋出,拋出什么錯(cuò)。
差:“沒法用”
好:“我收到是空的PDF文件,或者’403錯(cuò)誤,訪問拒絕’”
● 附件:如果你知道怎么截屏,做吧,附上一個(gè)簡(jiǎn)短的錯(cuò)誤,截屏可以是錯(cuò)誤之前或者發(fā)生錯(cuò)誤之后,我們的開發(fā)者能夠看到究竟發(fā)生了什么。如果應(yīng)用有崩潰的日志,同樣附上它。
● 聯(lián)系方式:附上你的名字和email,我們可以讓你提交的報(bào)告及時(shí)的得到答復(fù),在我們不理解問題的描述時(shí)還能夠詢問你,如果你忘記附聯(lián)系方式了,我們也就沒法聯(lián)系到你,也沒法修復(fù)bug。
英文原文:Noverse