1.常見(jiàn)術(shù)語(yǔ)
Bug和Defect
Bug:電腦系統(tǒng)或者程序中存在的任何一種破壞正常運(yùn)轉(zhuǎn)能力的問(wèn)題或者缺陷,都可以叫做“Bug”;有時(shí)也被泛指因軟件產(chǎn)品內(nèi)部的缺陷引起的軟件產(chǎn)品最終運(yùn)行時(shí)和預(yù)期屬性的偏離。
Defect(缺陷):既指靜態(tài)存在于軟件工作產(chǎn)品(文檔、代碼)中的錯(cuò)誤,也指軟件運(yùn)行時(shí)由于這些錯(cuò)誤被激發(fā)引起的和軟件產(chǎn)品預(yù)期屬性的偏離現(xiàn)象。
2.缺陷的評(píng)價(jià)標(biāo)準(zhǔn)
軟件未實(shí)現(xiàn)需求規(guī)格說(shuō)明書(SRS)要求的功能
軟件未實(shí)現(xiàn)需求規(guī)格說(shuō)明書(SRS)雖未明確提及但應(yīng)該實(shí)現(xiàn)的目標(biāo)
軟件出現(xiàn)了需求規(guī)格說(shuō)明書(SRS)指明不應(yīng)出現(xiàn)的錯(cuò)誤
軟件實(shí)現(xiàn)了需求規(guī)格說(shuō)明書(SRS)未提到的功能
軟件難以理解、不易使用、運(yùn)行緩慢,或者從測(cè)試工程師的角度來(lái)看——最終用戶會(huì)認(rèn)為不好
3.缺陷產(chǎn)生的原因
需求表述、理解、編寫引起的錯(cuò)誤。
系統(tǒng)設(shè)計(jì)架構(gòu)引起的錯(cuò)誤。
開發(fā)過(guò)程缺乏有效的溝通及監(jiān)督,甚至沒(méi)有溝通或監(jiān)督。
程序員編程中產(chǎn)生的錯(cuò)誤。
軟件開發(fā)工具本身隱藏的問(wèn)題。
軟件復(fù)雜度越來(lái)越高。
與用戶需求不符,即使軟件實(shí)現(xiàn)本身無(wú)缺陷。
上述情況都可能產(chǎn)生缺陷,常見(jiàn)的缺陷分為以下4種情況。
4.缺陷類型
遺漏(Missing)
錯(cuò)誤(Error)
額外的實(shí)現(xiàn)(Extra)
不滿意(unsatisfy)
5.缺陷報(bào)告單
缺陷報(bào)告單(Bug Report):
????????也叫缺陷跟蹤單。測(cè)試執(zhí)行過(guò)程中,發(fā)現(xiàn)軟件失效后,提出書面的報(bào)告,提供給開發(fā)人員或者其他負(fù)責(zé)人員作為定位缺陷的依據(jù),也作為日后缺陷度量的數(shù)據(jù)依據(jù)。
6.缺陷報(bào)告單寫作準(zhǔn)則(5C)
Correct(準(zhǔn)確)
每個(gè)組成部分的描述準(zhǔn)確,不會(huì)引起誤解
Clear(清晰)
每個(gè)組成部分的描述清晰,易于理解
Concise(簡(jiǎn)潔)
只包含必不可少的信息,不包括任何多余的內(nèi)容
Complete(完整)
包含復(fù)現(xiàn)該缺陷的完整步驟和其他本質(zhì)信息
Consistent(一致)
按照一致的格式書寫全部缺陷報(bào)告
7.缺陷報(bào)告相關(guān)屬性
缺陷ID
缺陷標(biāo)題
缺陷所屬模塊
缺陷嚴(yán)重程度
缺陷優(yōu)先級(jí)
可再現(xiàn)性
缺陷發(fā)現(xiàn)人
缺陷狀態(tài)
①缺陷ID
????????缺陷ID用來(lái)唯一標(biāo)識(shí)缺陷,在缺陷管理中,缺陷ID不可重復(fù),即使缺陷被刪除,ID也不可復(fù)用。缺陷ID一般用阿拉伯?dāng)?shù)字標(biāo)識(shí)即可,如1、2、3等。有的公司有自己的格式規(guī)定,則按照公司規(guī)定編寫即可。
②概要描述
????????簡(jiǎn)要描述缺陷的存在形式及表象,通過(guò)概要描述,開發(fā)人員能快速理解缺陷產(chǎn)生的現(xiàn)象,推測(cè)可能的缺陷誘因,從而提高缺陷處理的效率。例如,商品查詢功能查出的商品標(biāo)題信息顯示為亂碼。簡(jiǎn)要描述要求描述盡量簡(jiǎn)潔,通過(guò)概要描述能夠基本了解缺陷的內(nèi)容。
③缺陷的嚴(yán)重程度
嚴(yán)重性:顧名思義就是軟件缺陷對(duì)軟件質(zhì)量的破壞程度,即此軟件缺陷的存在將對(duì)軟件的功能和性能產(chǎn)生怎樣的影響。
致命:例如,軟件的意外退出甚至操作系統(tǒng)崩潰,造成數(shù)據(jù)丟失。
嚴(yán)重:例如,由于單功能失效導(dǎo)致多個(gè)相關(guān)功能均失效。
一般:例如,軟件的單個(gè)功能失效。
提示:軟件界面的細(xì)微缺陷,例如,某個(gè)控件沒(méi)有對(duì)齊,某個(gè)標(biāo)點(diǎn)符號(hào)丟失等。
④缺陷優(yōu)先級(jí)
????????該字段由研發(fā)團(tuán)隊(duì)確定,根據(jù)缺陷的嚴(yán)重度,決定缺陷修復(fù)的先后次序,原則上修復(fù)優(yōu)先級(jí)與缺陷嚴(yán)重度相同。嚴(yán)重度級(jí)別越高的缺陷,修復(fù)優(yōu)先級(jí)也越高。但是,嚴(yán)重性和優(yōu)先級(jí)并不總是一一對(duì)應(yīng)。有時(shí)候嚴(yán)重性高的軟件缺陷,優(yōu)先級(jí)不一定高,甚至不需要處理,而一些嚴(yán)重性低的缺陷卻需要及時(shí)處理,具有較高的優(yōu)先級(jí)。
⑤缺陷的詳細(xì)描述
詳細(xì)描述當(dāng)前缺陷引發(fā)的原因,包括環(huán)境、執(zhí)行步驟、期望結(jié)果和實(shí)際結(jié)果對(duì)比等若干便于描述該缺陷的信息。
測(cè)試環(huán)境:描述發(fā)現(xiàn)此缺陷時(shí),可能與缺陷相關(guān)的環(huán)境和配置描述。
執(zhí)行步驟:發(fā)現(xiàn)此缺陷操作步驟的描述,描述要求要詳細(xì),無(wú)歧義, ? 開發(fā)人員參照可以重現(xiàn)缺陷。
期望結(jié)果和實(shí)際結(jié)果對(duì)比:給出缺陷的現(xiàn)象。
⑥缺陷附件
????????當(dāng)缺陷表述需額外附件的證據(jù)信息時(shí),可提交相對(duì)應(yīng)的數(shù)據(jù)信息,如截圖、錄屏操作、系統(tǒng)運(yùn)行日志等,便于開發(fā)人員更好的重現(xiàn)缺陷或定位問(wèn)題。一般缺陷管理工具都有添加附件功能。
8.缺陷報(bào)告單寫作要點(diǎn)
再現(xiàn):一般是盡量三次再現(xiàn)故障,如果問(wèn)題是間斷的,那要報(bào)告問(wèn)題發(fā)生頻率。
初步定位:可能影響再現(xiàn)的變量,例如配置變化、工作流、數(shù)據(jù)庫(kù),這些都可能改變錯(cuò)誤的特征。
推廣:確定系統(tǒng)其他部分是否可能出現(xiàn)這種錯(cuò)誤,以及使用不同的數(shù)據(jù)時(shí)是否存在著這種問(wèn)題等等,特別是那些可能存在更加嚴(yán)重特征的部分。
壓縮:精簡(jiǎn)任何不必要的信息,特別是冗余的測(cè)試步驟。
去除歧義:使用清晰的語(yǔ)言,尤其是避免使用那些有多個(gè)不同或相反含義的詞匯。
中立:公正的表達(dá)自己的意思,對(duì)錯(cuò)誤及其特征的事實(shí)進(jìn)行陳述,避免夸張、幽默或諷刺。
評(píng)審:至少有一個(gè)同行,最好是一個(gè)有經(jīng)驗(yàn)的測(cè)試工程師或測(cè)試經(jīng)理,在遞交錯(cuò)誤報(bào)告之前自己先閱讀一遍。
9.缺陷管理
????????缺陷管理/軟件缺陷管理(Defect Management)是在軟件生命周期中識(shí)別、管理、溝通任何缺陷的過(guò)程(從缺陷的識(shí)別到缺陷的解決關(guān)閉),確保缺陷被跟蹤管理而不丟失。一般的,需要跟蹤管理工具來(lái)幫助進(jìn)行缺陷全流程管理。
保證信息的一致性
保證缺陷得到有效的跟蹤,縮短溝通時(shí)間,解決問(wèn)題更高效
利于缺陷分析、產(chǎn)品度量,使項(xiàng)目情況可視化加強(qiáng)
10.缺陷管理工具
軟件缺陷跟蹤過(guò)程需要有軟件工具支撐:
HP Quality Center(簡(jiǎn)稱QC)
HP ALM(Application Lifecycle Management)(QC的升級(jí)版)
禪道
Jira
Bugzilla
11.BUG的生命周期
????????缺陷的生命周期就是指缺陷從開始提出到最后完全解決,并通過(guò)驗(yàn)證和確認(rèn)的過(guò)程。在這個(gè)過(guò)程中缺陷報(bào)告的狀態(tài)不斷發(fā)生著變化,記錄著缺陷被處理的過(guò)程。
缺陷的生命周期通過(guò)缺陷流程圖得以展現(xiàn)

BUG的跟中流程

12.缺陷報(bào)告單狀態(tài)

13.缺陷狀態(tài)遷移(缺陷狀態(tài)的對(duì)應(yīng)分別有那些)
New:Open、Postpone、Rejected、Duplicate、Abandon
Open:Fixed
Fixed:Closed、Reopen
Closed:Reopen
Reopen:Closed
Postpone:Open
Rejected:Closed、Reopen、Abandon
Duplicate:Closed、Reopen、Abandon
Abandon:Reopen
14.軟件測(cè)試管理流程

15.缺陷分析
? ? ? ?針對(duì)缺陷的關(guān)鍵字段,運(yùn)用數(shù)據(jù)分析的統(tǒng)計(jì)方法,發(fā)掘軟件系統(tǒng)的缺陷分布、密度及發(fā)展趨勢(shì),在此基礎(chǔ)上追溯軟件生產(chǎn)過(guò)程中引發(fā)缺陷的根本原因,為軟件質(zhì)量分析提供基礎(chǔ)真實(shí)的數(shù)據(jù)依據(jù)。
缺陷分析活動(dòng)中常用的度量字段有嚴(yán)重度、所屬模塊、產(chǎn)生原因、所屬版本、持續(xù)周期、缺陷性質(zhì)等。