盧莉娜 胡雋 曾垂振
【摘要】軟件缺陷跟蹤管理是測(cè)試工作的一項(xiàng)重要內(nèi)容,其目的是提高軟件產(chǎn)品質(zhì)量。本文分析了軟件缺陷跟蹤管理的必要性和目標(biāo),描述了軟件缺陷和管理流程,初步探析了在軟件缺陷跟蹤管理中所需作的工作。
【關(guān)鍵詞】軟件缺陷 跟蹤管理 管理流程 缺陷分析 CMM
【中圖分類(lèi)號(hào)】TP311 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2015)10-0249-02
缺陷跟蹤管理是測(cè)試工作的一個(gè)重要部分,測(cè)試的目的是為了盡早發(fā)現(xiàn)軟件系統(tǒng)中的缺陷,因此,對(duì)缺陷進(jìn)行跟蹤管理,確保每個(gè)被發(fā)現(xiàn)的缺陷都能夠及時(shí)得到處理是測(cè)試工作的一項(xiàng)重要內(nèi)容。
一、跟蹤管理軟件缺陷的原因
考察一個(gè)典型的軟件開(kāi)發(fā)流程:需求分析——概要設(shè)汁——詳細(xì)設(shè)計(jì)——程序編碼——系統(tǒng)集成——交付與維護(hù)。你會(huì)發(fā)現(xiàn),此流程中各階段之間的依賴與繼承關(guān)系是相當(dāng)密切的。前一階段形成的方案或產(chǎn)品中正確的部分固然會(huì)被后一階段繼承和細(xì)化,然而,如果前一階段方案中出現(xiàn)錯(cuò)誤,卻沒(méi)有及時(shí)進(jìn)行此階段質(zhì)量控制,該錯(cuò)誤就會(huì)被后一階段繼承和放大,并順序傳遞下去。如果等到交付與維護(hù)階段錯(cuò)誤才被發(fā)現(xiàn),那么相關(guān)糾錯(cuò)工作就將成為一件成本高昂而又收效甚微的事情。在某些情況下,甚至?xí)?dǎo)致整個(gè)開(kāi)發(fā)工作的失敗。這并不是故意危言聳聽(tīng)據(jù)美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院一份報(bào)告顯示,占據(jù)世界軟件銷(xiāo)售額85%的大型專(zhuān)用軟件,其開(kāi)發(fā)失敗率高達(dá)70%。
為了規(guī)避通過(guò)開(kāi)發(fā)過(guò)程把錯(cuò)誤繼承和放大的情況,必須引入軟件缺陷跟蹤管理機(jī)制,其作用為:第一,軟件開(kāi)發(fā)出現(xiàn)的問(wèn)題進(jìn)行有效跟蹤管理;第二,協(xié)調(diào)開(kāi)發(fā)人員、測(cè)試人員和需求三方關(guān)系,規(guī)范軟件研發(fā)流程;第三,通過(guò)對(duì)問(wèn)題的有效跟蹤管理,可以持續(xù)的改進(jìn)產(chǎn)品質(zhì)量;第四,記錄對(duì)問(wèn)題的處理過(guò)程,可作為知識(shí)積累。引入缺陷跟蹤管理機(jī)制,一方面劃清了各個(gè)角色的職責(zé),避免r不必要的爭(zhēng)執(zhí),另一方面也有助于項(xiàng)目管理部門(mén)及時(shí)跟蹤了解軟件產(chǎn)品在開(kāi)發(fā)過(guò)程中質(zhì)量狀況,從而更好地控制產(chǎn)品質(zhì)量。
二、缺陷跟蹤管理的目標(biāo)
缺陷能夠引起軟件運(yùn)行時(shí)產(chǎn)生不希望或不可接受的結(jié)果。軟件測(cè)試過(guò)程簡(jiǎn)單地說(shuō)就是圍繞缺陷進(jìn)行的,對(duì)缺陷的跟蹤管理一般需要達(dá)到以下目標(biāo):
(一)確保每個(gè)被發(fā)現(xiàn)的缺陷都能夠被解決。這里解決的意思不一定是被修正,也可能是其他處理方式(例如,在下一個(gè)版本中修正或是不修正)。總之,對(duì)每個(gè)被發(fā)現(xiàn)的問(wèn)題的處理方式必須能夠在開(kāi)發(fā)組織中達(dá)到一致。
(二)收集缺陷數(shù)據(jù),并根據(jù)缺陷趨勢(shì)曲線識(shí)別側(cè)試過(guò)程的階段。決定測(cè)試過(guò)程是否結(jié)束有很多種方式,通過(guò)缺陷趨勢(shì)曲線來(lái)確定測(cè)試過(guò)程是否結(jié)束是常用并且較為有效的一種方式。
(三)收集缺陷數(shù)據(jù)并在其上進(jìn)行數(shù)據(jù)分析,作為組織的過(guò)程財(cái)富。
在一個(gè)運(yùn)行良好的組織中,缺陷數(shù)據(jù)收集和分析是很重要的,從缺陷數(shù)據(jù)中可以得到很多與軟件質(zhì)量相關(guān)的數(shù)據(jù)。
三、軟件缺陷的描述
軟件缺陷不只是通常所說(shuō)程序中所存在的數(shù)據(jù)錯(cuò)誤、邏輯錯(cuò)誤、內(nèi)容遺漏以及內(nèi)容不一致性等錯(cuò)誤或疏忽,即俗稱(chēng)的Bug。其范圍更大,除程序外還包括其相關(guān)產(chǎn)品:如項(xiàng)目計(jì)劃、需求規(guī)格說(shuō)明、設(shè)計(jì)文檔、測(cè)試用例、用戶手冊(cè)等等中存在的錯(cuò)誤和問(wèn)題。需要強(qiáng)調(diào)的是,在軟件工程整個(gè)生命周期中,任何背離需求、無(wú)法正確完成用戶所要求的功能的問(wèn)題,包括存在于組件、設(shè)備或系統(tǒng)軟件中因異常條件不支持而導(dǎo)致系統(tǒng)失敗的行為都屬于缺陷范疇。如給每個(gè)缺陷分配一個(gè)缺陷號(hào),每個(gè)編號(hào)必須是唯一的??梢愿鶕?jù)該編號(hào)搜索、根據(jù)、查看該缺陷的處理情況。
通常缺陷的基木信息包括缺陷狀態(tài)、缺陷標(biāo)題、缺陷嚴(yán)重程度、缺陷緊急程度、缺陷提交人、缺陷提交日期、缺陷所屬、缺陷解決人、缺陷解決時(shí)、缺陷解決結(jié)果、缺陷處理人、缺陷處理最終時(shí)、缺陷處理結(jié)果、缺陷確認(rèn)人、缺陷確認(rèn)時(shí)間、缺陷確認(rèn)結(jié)果等等信息。
四、缺陷管理的一般流程
為保證缺陷的正確性、需要有豐富測(cè)試經(jīng)驗(yàn)的測(cè)試人員來(lái)驗(yàn)證發(fā)現(xiàn)的缺陷是否是真正的缺陷,書(shū)寫(xiě)的測(cè)試步驟是否準(zhǔn)確,可否重復(fù)。每次對(duì)缺陷的處理都要保留處理信息,包括處理姓名、時(shí)間、處理方法、處理意見(jiàn)、缺陷狀態(tài)拒絕或延期缺陷不能山程序員單方面決定,應(yīng)由項(xiàng)目負(fù)責(zé)人、測(cè)試負(fù)責(zé)人和開(kāi)發(fā)負(fù)責(zé)人共同決定,缺陷修復(fù)后必須經(jīng)報(bào)告缺陷的測(cè)試人員驗(yàn)證后,確認(rèn)已經(jīng)修復(fù),才能關(guān)閉缺陷。加強(qiáng)測(cè)試人員與程序員交流,對(duì)于某些不能重現(xiàn)的缺陷,可以請(qǐng)測(cè)試人員補(bǔ)充詳細(xì)測(cè)試步驟和方法,以及必要的測(cè)試用例。
五、缺陷分析
軟件測(cè)試任務(wù)就是發(fā)現(xiàn)軟件系統(tǒng)缺陷,保證軟件優(yōu)良品質(zhì)。在軟件中是不可能沒(méi)有缺陷的,即便軟件開(kāi)發(fā)人員,包括測(cè)試人員盡了努力,也是無(wú)法完全發(fā)現(xiàn)和消除缺陷。如何做到最大限度發(fā)現(xiàn)軟件系統(tǒng)缺陷,人們首先想到的是,提高開(kāi)發(fā)人員素質(zhì)和責(zé)任心,科學(xué)地應(yīng)用測(cè)試方法和制定優(yōu)秀測(cè)試方案但這還是不夠的,我們還需要實(shí)施缺陷分析。缺陷分析是將軟件開(kāi)發(fā)、運(yùn)行過(guò)程中產(chǎn)生的缺陷進(jìn)行必要的收集,對(duì)缺陷信息進(jìn)行分類(lèi)和匯總統(tǒng)計(jì),計(jì)算分析指標(biāo),編寫(xiě)分析報(bào)告的活動(dòng)。通過(guò)缺陷分析,發(fā)現(xiàn)各種類(lèi)型缺陷發(fā)生概率,掌握缺陷集中的區(qū)域、明晰缺陷發(fā)展趨勢(shì)、了解缺陷產(chǎn)生上要原因。以便有針對(duì)性地提出遏制缺陷發(fā)生的措施、降低缺陷數(shù)量。對(duì)于改進(jìn)軟件開(kāi)發(fā),提高軟件質(zhì)量有著十分重要的作用。缺陷分析報(bào)告中的統(tǒng)計(jì)數(shù)據(jù)及分析指標(biāo)既是對(duì)軟件質(zhì)量的權(quán)威評(píng)估,也是判定軟件是否能發(fā)布或交付使用的重要依據(jù)。高級(jí)別CMM中包含有缺陷分析活動(dòng)。缺陷分析更是一種以發(fā)展方式進(jìn)行軟件過(guò)程改進(jìn)機(jī)制。
每一個(gè)軟件組織都知道,必須妥善處理軟件中的缺陷。這是關(guān)系到軟件組織生存、發(fā)展的質(zhì)量根本遺憾的是,并非所有軟件組織都知道該如何有效地管理自己軟件中的缺陷。從無(wú)到有,建立缺陷跟蹤系統(tǒng),規(guī)范項(xiàng)目中開(kāi)發(fā)、測(cè)試、缺陷處理流程;明確問(wèn)題責(zé)任人,告訴每個(gè)人應(yīng)該做什么,什么是最重要和最緊迫的;通過(guò)對(duì)缺陷歷史紀(jì)錄分析,找到不足和需改進(jìn)的關(guān)鍵點(diǎn);這樣才能更好地提高軟件質(zhì)量,使軟件水平更上一層樓。