?掌握軟件缺陷的基本概念和相關(guān)術(shù)語(yǔ)
?掌握高質(zhì)量缺陷問(wèn)題單的填寫(xiě)方法
?掌握軟件缺陷的相關(guān)屬性
?了解軟件缺陷管理的常用工具
?掌握軟件缺陷的生命周期
常見(jiàn)術(shù)語(yǔ)
?關(guān)于BUG
-Bug的由來(lái)
-Debug
?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)象。
缺陷類型
遺漏(missing)
錯(cuò)誤(error)
額外實(shí)現(xiàn)(extra)
不滿意(UNsatisfy)
缺陷評(píng)價(jià)標(biāo)準(zhǔn)
-軟件未實(shí)現(xiàn)需求規(guī)格說(shuō)明書(shū)(SRS)要求的功能
-軟件未實(shí)現(xiàn)需求規(guī)格說(shuō)明書(shū)(SRS)雖未明確提及但應(yīng)該實(shí)現(xiàn)的目標(biāo)
-軟件出現(xiàn)了需求規(guī)格說(shuō)明書(shū)(SRS)指明不應(yīng)出現(xiàn)的錯(cuò)誤
-軟件實(shí)現(xiàn)了需求規(guī)格說(shuō)明書(shū)(SRS)未提到的功能
-軟件難以理解、不易使用、運(yùn)行緩慢,或者從測(cè)試工程師的角度來(lái)看——最終用戶會(huì)認(rèn)為不好
缺陷產(chǎn)生原因
軟件缺陷產(chǎn)生的原因多種多樣,一般可能有以下幾種原因:
-需求表述、理解、編寫(xiě)引起的錯(cuò)誤。
-系統(tǒng)設(shè)計(jì)架構(gòu)引起的錯(cuò)誤。
-開(kāi)發(fā)過(guò)程缺乏有效的溝通及監(jiān)督,甚至沒(méi)有溝通或監(jiān)督。
- 程序員編程中產(chǎn)生的錯(cuò)誤。
-軟件開(kāi)發(fā)工具本身隱藏的問(wèn)題。
-軟件復(fù)雜度越來(lái)越高。
-與用戶需求不符,即使軟件實(shí)現(xiàn)本身無(wú)缺陷。
上述情況都可能產(chǎn)生缺陷,常見(jiàn)的缺陷分為以下4種情況
遺漏(missing) ? ??錯(cuò)誤(error) ? ? 額外實(shí)現(xiàn)(extra) ? 不滿意(UNsatisfy)
缺陷報(bào)告單
也叫缺陷跟蹤單。測(cè)試執(zhí)行過(guò)程中,發(fā)現(xiàn)軟件失效后,提出書(shū)面的報(bào)告,提供給開(kāi)發(fā)人員或者其他負(fù)責(zé)人員作為定位缺陷的依據(jù),也作為日后缺陷度量的數(shù)據(jù)依據(jù)。
缺陷管理工具中的bug report


缺陷報(bào)告單的寫(xiě)作準(zhǔn)則 ?(5c)
Correct(準(zhǔn)確)
每個(gè)組成部分的描述準(zhǔn)確,不會(huì)引起誤解
Clear(清晰)
每個(gè)組成部分的描述清晰,易于理解
Concise(簡(jiǎn)潔)
只包含必不可少的信息,不包括任何多余的內(nèi)容
Complete(完整)
包含復(fù)現(xiàn)該缺陷的完整步驟和其他本質(zhì)信息
Consistent(一致)
按照一致的格式書(shū)寫(xiě)全部缺陷報(bào)告
缺陷報(bào)告單的相關(guān)屬性
?缺陷ID
?缺陷標(biāo)題
?缺陷所屬模塊
?缺陷嚴(yán)重程度
?缺陷優(yōu)先級(jí)
?可再現(xiàn)性
?缺陷發(fā)現(xiàn)人
?缺陷狀態(tài)
?缺陷發(fā)現(xiàn)階段
?缺陷所屬版本
?缺陷修改日期
?缺陷引入階段
?缺陷引入原因
缺陷ID
缺陷ID用來(lái)唯一標(biāo)識(shí)缺陷,在缺陷管理中,缺陷ID不可重復(fù),即使缺陷被刪除,ID也不可復(fù)用。缺陷ID一般用阿拉伯?dāng)?shù)字標(biāo)識(shí)即可,如1、2、3等。有的公司有自己的格式規(guī)定,則按照公司規(guī)定編寫(xiě)即可。
概要描述
簡(jiǎn)要描述缺陷的存在形式及表象,通過(guò)概要描述,開(kāi)發(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ú)歧義,? ?? 開(kāi)發(fā)人員參照可以重現(xiàn)缺陷。
期望結(jié)果和實(shí)際結(jié)果對(duì)比:給出缺陷的現(xiàn)象
缺陷附件
當(dāng)缺陷表述需額外附件的證據(jù)信息時(shí),可提交相對(duì)應(yīng)的數(shù)據(jù)信息,如截圖、錄屏操作、系統(tǒng)運(yùn)行日志等,便于開(kāi)發(fā)人員更好的重現(xiàn)缺陷或定位問(wèn)題。一般缺陷管理工具都有添加附件功能。
缺陷報(bào)告寫(xiě)作要點(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)告之前自己先閱讀一遍。
缺陷管理
缺陷管理/軟件缺陷管理(Defect Management)是在軟件生命周期中識(shí)別、管理、溝通任何缺陷的過(guò)程(從缺陷的識(shí)別到缺陷的解決關(guān)閉),確保缺陷被跟蹤管理而不丟失。一般的,需要跟蹤管理工具來(lái)幫助進(jìn)行缺陷全流程管理。
-保證信息的一致性
-保證缺陷得到有效的跟蹤,縮短溝通時(shí)間,解決問(wèn)題更高效
-利于缺陷分析、產(chǎn)品度量,使項(xiàng)目情況可視化加強(qiáng)

軟件缺陷跟蹤過(guò)程需要有軟件工具支撐:
HP Quality Center(簡(jiǎn)稱QC)
HP ALM(Application Lifecycle Management)
禪道
Jira
Bugzilla
bug的生命周期
-缺陷的生命周期就是指缺陷從開(kāi)始提出到最后完全解決,并通過(guò)驗(yàn)證和確認(rèn)的過(guò)程。在這個(gè)過(guò)程中缺陷報(bào)告的狀態(tài)不斷發(fā)生著變化,記錄著缺陷被處理的過(guò)程。
-缺陷的生命周期通過(guò)缺陷流程圖得以展現(xiàn)

一個(gè)簡(jiǎn)單的bug跟蹤流程

缺陷跟蹤流程人員角色
?軟件開(kāi)發(fā)人員
?軟件測(cè)試人員
?軟件測(cè)試經(jīng)理
?軟件項(xiàng)目經(jīng)理
?軟件開(kāi)發(fā)經(jīng)理
缺陷報(bào)告工具的相關(guān)狀態(tài)

缺陷狀態(tài)遷移矩陣(每一狀態(tài)的下一有可能狀態(tài))

軟件缺陷管理流程


缺陷分析
針對(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ì)等。
案例



