王 俐
(北京國(guó)鐵華晨通信信息技術(shù)有限公司, 北京 100070)
軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。軟件測(cè)試工作一般應(yīng)完成以下各層測(cè)試:軟件單元測(cè)試、軟件集成測(cè)試、軟件系統(tǒng)測(cè)試。如圖1所示。
軟件系統(tǒng)測(cè)試(以下簡(jiǎn)稱系統(tǒng)測(cè)試)是將經(jīng)過(guò)集成測(cè)試后的軟件,作為計(jì)算機(jī)系統(tǒng)的部分,與計(jì)算機(jī)硬件、某些支持軟件、數(shù)據(jù)和人員等系統(tǒng)元素結(jié)合起來(lái),在實(shí)際運(yùn)行環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的嚴(yán)格有效的測(cè)試來(lái)發(fā)現(xiàn)軟件的潛在缺陷,保證軟件/系統(tǒng)的質(zhì)量。
系統(tǒng)測(cè)試從軟件研發(fā)的需求階段就開(kāi)始介入,系統(tǒng)測(cè)試的生命周期如下:需求獲取與評(píng)審,測(cè)試策略生成(決定風(fēng)險(xiǎn)、環(huán)境、定義測(cè)試執(zhí)行流程及成果物),系統(tǒng)測(cè)試設(shè)計(jì)(包括確定系統(tǒng)測(cè)試方法、測(cè)試工具、系統(tǒng)識(shí)別測(cè)試項(xiàng)、計(jì)劃資源及工期、需求變更等),用例開(kāi)發(fā)(用例規(guī)格化、前置條件、后置條件及接受標(biāo)準(zhǔn)),測(cè)試準(zhǔn)備(測(cè)試環(huán)境搭建、數(shù)據(jù)準(zhǔn)備),測(cè)試執(zhí)行(運(yùn)行測(cè)試、確認(rèn)結(jié)果),發(fā)現(xiàn)及剔除缺陷周期(發(fā)現(xiàn)及記錄缺陷、缺陷跟蹤、缺陷分析、驗(yàn)證缺陷),測(cè)試周期結(jié)束,缺陷分析和結(jié)果報(bào)告。
缺陷能夠引起軟件運(yùn)行時(shí)產(chǎn)生一種不希望或不可接受的外部行為結(jié)果,對(duì)缺陷的跟蹤管理一般需要達(dá)到以下目標(biāo)。
1)確保每個(gè)被發(fā)現(xiàn)的缺陷都能夠被解決,這里的解決不一定是被修正,也可能是其他處理方式(例如,在下一個(gè)版本中修正或是不修正)。
2)收集缺陷數(shù)據(jù)并根據(jù)缺陷趨勢(shì)曲線識(shí)別測(cè)試過(guò)程的階段;決定測(cè)試過(guò)程是否結(jié)束有很多種方式,通過(guò)缺陷趨勢(shì)曲線來(lái)確定測(cè)試過(guò)程是否結(jié)束,是常用并且較為有效的一種方式。
3)收集缺陷數(shù)據(jù)并在其上進(jìn)行數(shù)據(jù)分析,作為組織的過(guò)程財(cái)富。
測(cè)試人員在嚴(yán)格按照測(cè)試用例執(zhí)行測(cè)試后,發(fā)現(xiàn)實(shí)際輸出與預(yù)期輸出不一致時(shí),將發(fā)現(xiàn)的問(wèn)題作為缺陷填寫(xiě)到缺陷跟蹤表中,缺陷跟蹤如表1所示。
我們使用SIM卡管理系統(tǒng)在EXCEL表格中的缺陷跟蹤作為例子來(lái)看,缺陷跟蹤表中的每一條信息都詳細(xì)地記錄了缺陷的多個(gè)方面。跟蹤表中的各項(xiàng)內(nèi)容分別由測(cè)試人員項(xiàng)目經(jīng)理或開(kāi)發(fā)人員、以及驗(yàn)證人員來(lái)進(jìn)行填寫(xiě);跟蹤表的各缺陷屬性可以根據(jù)需要進(jìn)行調(diào)整。
表1 缺陷跟蹤表
我們可以根據(jù)缺陷狀態(tài)來(lái)判斷測(cè)試進(jìn)展情況,開(kāi)發(fā)人員的編程質(zhì)量,修正缺陷的進(jìn)度。通過(guò)缺陷的分析,可以完成產(chǎn)品質(zhì)量的評(píng)估,確定測(cè)試是否達(dá)到結(jié)束的標(biāo)準(zhǔn),也就是判定測(cè)試是否已滿足規(guī)定的需求。通過(guò)缺陷的分析,還可以發(fā)現(xiàn)開(kāi)發(fā)過(guò)程中存在的問(wèn)題;無(wú)論對(duì)測(cè)試人員,還是開(kāi)發(fā)人員或管理人員,缺陷分析都是一項(xiàng)必不可少的工作。
缺陷分析分兩種:缺陷趨勢(shì)分析、缺陷分布分析。
系統(tǒng)測(cè)試完成后,測(cè)試工程師對(duì)系統(tǒng)測(cè)試結(jié)果要進(jìn)行統(tǒng)計(jì)分析,其中包括系統(tǒng)測(cè)試用例執(zhí)行情況,缺陷各屬性等數(shù)據(jù);并生成統(tǒng)計(jì)圖表,比如缺陷嚴(yán)重程度的餅圖、缺陷原因分析的柱狀圖等,這些都屬于缺陷的分布分析。
缺陷趨勢(shì)分析,也就是看軟件/系統(tǒng)缺陷有多嚴(yán)重,缺陷的影響有多大。缺陷趨勢(shì)分析從記錄所有發(fā)現(xiàn)的缺陷,為每個(gè)缺陷標(biāo)識(shí)屬性,定義缺陷相關(guān)度量,應(yīng)用統(tǒng)計(jì)方法/工具進(jìn)行分析開(kāi)始;缺陷趨勢(shì)分析的內(nèi)容,主要是缺陷密度、缺陷重現(xiàn)率和缺陷周期。
下面以最基礎(chǔ)的統(tǒng)計(jì)工具EXCEL表格為例,來(lái)看一下SIM卡管理系統(tǒng)軟件項(xiàng)目的系統(tǒng)測(cè)試缺陷分析,統(tǒng)計(jì)數(shù)據(jù)主要來(lái)源于《缺陷跟蹤表》,主要從缺陷的嚴(yán)重程度、缺陷來(lái)源和缺陷在各模塊中的分布3方面來(lái)分析缺陷。缺陷嚴(yán)重程度分析和缺陷來(lái)源分析如圖2所示,缺陷按模塊分布如圖3所示。
由各個(gè)統(tǒng)計(jì)表格,可以得出嚴(yán)重的缺陷占所有缺陷的比例;哪些模塊中存在的缺陷比較多等信息。當(dāng)然還可以分析缺陷的類型,比如功能上的缺陷、性能上的缺陷、文檔缺陷等;或按照修復(fù)狀態(tài)來(lái)分析每輪回歸測(cè)試中,已經(jīng)修復(fù)的缺陷數(shù)、新發(fā)現(xiàn)的缺陷數(shù)、重新打開(kāi)的缺陷數(shù)等信息。缺陷的分析統(tǒng)計(jì),按照軟件/系統(tǒng)的需要,可以制定各種類型的統(tǒng)計(jì)分析圖表模式,充分使用測(cè)試過(guò)程中采集的基礎(chǔ)缺陷數(shù)據(jù),為下一步的度量工作打下良好的基礎(chǔ)。
軟件度量是對(duì)軟件開(kāi)發(fā)項(xiàng)目、過(guò)程及其產(chǎn)品進(jìn)行數(shù)據(jù)定義、收集以及分析的持續(xù)性定量化過(guò)程,目的在于對(duì)此加以理解、預(yù)測(cè)、評(píng)估、控制和改善。比如“度量數(shù)據(jù)采集表及指示圖”表中的“質(zhì)量-測(cè)試”度量表,整體缺陷分布、模塊缺陷整體分布、測(cè)試輪次缺陷分布的采集表分別如表2、表3和表4所示。
以上的測(cè)試缺陷分析,作為衡量軟件質(zhì)量的一種標(biāo)準(zhǔn)是非常有效的;每個(gè)項(xiàng)目經(jīng)理在軟件項(xiàng)目的階段報(bào)告中都將缺陷分析的度量作為關(guān)鍵的部分;同時(shí)度量數(shù)據(jù)最簡(jiǎn)單的使用,是可以納入開(kāi)發(fā)人員的績(jī)效管理。
表2 整體缺陷分布采集表
表3 模塊缺陷整體分布采集表
表4 測(cè)試輪次缺陷分布采集表
對(duì)于系統(tǒng)測(cè)試何時(shí)停止,按規(guī)定,系統(tǒng)測(cè)試滿足軟件/系統(tǒng)規(guī)定的出口準(zhǔn)則才能停止。系統(tǒng)測(cè)試完成,一般情況下必須同時(shí)滿足以下條件。
1)系統(tǒng)測(cè)試用例100%覆蓋軟件需求規(guī)格說(shuō)明書(shū)。
2)沒(méi)有遺留嚴(yán)重及一般缺陷。
3)軟件/系統(tǒng)的遺留缺陷率少于等于1個(gè)缺陷每千行代碼等。
這里的遺留缺陷率在項(xiàng)目立項(xiàng)時(shí)由項(xiàng)目組和測(cè)試組共同確定。要判斷軟件/系統(tǒng)是否滿足出口準(zhǔn)則,系統(tǒng)測(cè)試是否可以停止,就要通過(guò)判斷缺陷分析得出的結(jié)果與規(guī)定的要求是否符合來(lái)決定。
系統(tǒng)測(cè)試完成,評(píng)價(jià)及建議表中缺陷分析的內(nèi)容如表5所示。
表5 評(píng)價(jià)及建議表
缺陷管理的發(fā)展,可以說(shuō)從口頭缺陷管理開(kāi)始,到單一的文檔管理,在開(kāi)發(fā)及測(cè)試團(tuán)隊(duì)間傳遞;繼而發(fā)展到EXCEL圖表管理,也是最基礎(chǔ)的工具管理;然后開(kāi)始使用缺陷跟蹤工具,例如BugZilla等;發(fā)展到現(xiàn)在,已經(jīng)有非常全面的企業(yè)級(jí)測(cè)試工具套集,例如,Rational Suite(Clear Case +Clear Quest + Req Pro)來(lái)確保標(biāo)準(zhǔn)流程在產(chǎn)品開(kāi)發(fā)全生命周期中得以執(zhí)行。比如使用Bugzilla進(jìn)行缺陷跟蹤和分析,只需定制需要的分析內(nèi)容,針對(duì)參數(shù)進(jìn)行相應(yīng)設(shè)置。自動(dòng)化提供了復(fù)用性,自動(dòng)化測(cè)試腳本能被多次使用;既保證了統(tǒng)計(jì)分析的數(shù)據(jù)一致性,又提高分析效率,使軟件/系統(tǒng)提早上市。
[1] 朱少民.全程軟件測(cè)試[M]. 北京:電子工業(yè)出版社,2008.
[2] 柳純錄.軟件評(píng)測(cè)師教程[M]. 北京:清華大學(xué)出版社,2009.