文/張靜 鄭羽
為了更加有效地通過軟件測(cè)試發(fā)現(xiàn)軟件缺陷從而最大程度地保障軟件質(zhì)量,國(guó)內(nèi)外專業(yè)人員不斷探索著更新的測(cè)試手段,開發(fā)著更加自動(dòng)化的測(cè)試工具,嘗試著更新的測(cè)試策略。
軟件測(cè)試是一種高強(qiáng)度的腦力工作,其測(cè)試效果除了使用的手段、方法與工具之外,測(cè)試過程能力的強(qiáng)弱也影響著軟件測(cè)試活動(dòng)的最終質(zhì)量。因此,可以說有效的測(cè)試過程管理與實(shí)踐是軟件測(cè)試項(xiàng)目成敗的關(guān)鍵要素。
測(cè)試過程包括:測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行、測(cè)試總結(jié)。對(duì)軟件測(cè)試過程的管理可劃分為測(cè)試策劃、測(cè)試過程監(jiān)督與控制、測(cè)試需求管理、配置管理等多個(gè)方面,過程管理能力對(duì)軟件測(cè)試質(zhì)量的影響包括以下五個(gè)方面。
項(xiàng)目計(jì)劃的目的是在項(xiàng)目伊始就確定測(cè)試工作的范圍、測(cè)試的策略、項(xiàng)目的進(jìn)程、所需的資源及風(fēng)險(xiǎn)評(píng)估。通過合理的計(jì)劃使得測(cè)試范圍與策略得到明確,工作開展進(jìn)程得到提前規(guī)劃,測(cè)試各階段工作資源得到充分保障。在無計(jì)劃或計(jì)劃偏差率過高的情況下,軟件測(cè)試工作會(huì)因?yàn)檫M(jìn)度壓力、資源緊張等等因素被迫縮小測(cè)試范圍、簡(jiǎn)化測(cè)試方法、跨越必要的測(cè)試設(shè)計(jì)階段、弱化缺陷成因分析等等,從而大大影響軟件測(cè)試質(zhì)量。
隨著測(cè)試進(jìn)程的推進(jìn)和深入、測(cè)試環(huán)境的調(diào)整、測(cè)試手段的制約、被測(cè)軟件缺陷密度的逐步顯現(xiàn)和對(duì)被測(cè)軟件復(fù)雜程度的進(jìn)一步認(rèn)識(shí)等,測(cè)試工作是否依然能夠按照預(yù)先設(shè)定的計(jì)劃軌道行駛,需要通過項(xiàng)目進(jìn)程的監(jiān)督和控制來保障。跟蹤控制是一個(gè)反饋過程,一方面對(duì)應(yīng)計(jì)劃?rùn)z查項(xiàng)目進(jìn)程的符合性,另一方面根據(jù)項(xiàng)目實(shí)施的需要及時(shí)調(diào)整更新計(jì)劃。通過對(duì)項(xiàng)目進(jìn)程的監(jiān)控,確保項(xiàng)目計(jì)劃的有效落實(shí),從而成為保障測(cè)試質(zhì)量的前提。
軟件測(cè)試活動(dòng)中涉及軟件配置項(xiàng)眾多,不僅僅包括如軟件需求、軟件設(shè)計(jì)文檔、軟件源代碼等被測(cè)對(duì)象,還包括測(cè)試過程中產(chǎn)生的測(cè)試數(shù)據(jù)、測(cè)試環(huán)境、測(cè)試代碼、測(cè)試文檔等等。由于在多次回歸測(cè)試的前后也會(huì)有大量的被測(cè)對(duì)象的修改,同時(shí)測(cè)試使用的數(shù)據(jù)和環(huán)境也將根據(jù)需要進(jìn)行改變,因此測(cè)試過程的配置管理是否成功將直接影響到測(cè)試的有效性。
對(duì)配置項(xiàng)的管理目前主要是依賴配置管理工具,但工具本身是實(shí)現(xiàn)配置思想和流程的載體,對(duì)于配置管理的能力更多地是體現(xiàn)在對(duì)配管的審計(jì)上。恰當(dāng)頻度的配管審計(jì)是保障配管有效實(shí)施的必要手段。
軟件測(cè)試的最終目的不是發(fā)現(xiàn)缺陷而是清除缺陷。發(fā)現(xiàn)的缺陷對(duì)于項(xiàng)目來講至少具備以下方面的意義:
(1)通過修改缺陷清除缺陷來提高被測(cè)軟件質(zhì)量;
(2)通過開展對(duì)發(fā)現(xiàn)缺陷的測(cè)試用例、測(cè)試方法等的分析,不斷提高軟件測(cè)試效能;
(3)通過分析缺陷的成因提出預(yù)防同類缺陷的方法。
因此,對(duì)缺陷信息和測(cè)試用例等信息的分析和使用的能力,最終將影響軟件測(cè)試活動(dòng)的質(zhì)量。
度量的意義在于:理解、評(píng)價(jià)、控制、預(yù)測(cè)和改進(jìn)。結(jié)合前面提到的五個(gè)測(cè)試過程能力及其在實(shí)際工作中的應(yīng)用,具體來講基于度量的測(cè)試過程管理方法有以下幾種:
為保證制定測(cè)試計(jì)劃的準(zhǔn)確性和可行性,避免由于“拍腦袋”而導(dǎo)致的決策錯(cuò)誤,只有通過一些量化的數(shù)據(jù)指標(biāo)才能準(zhǔn)確預(yù)估測(cè)試所需的工作量、時(shí)間進(jìn)度和成本等。而這往往依賴于組織數(shù)據(jù)的建立。隨著度量數(shù)據(jù)的不斷積累,逐步形成具有一定規(guī)模的歷史經(jīng)驗(yàn)數(shù)據(jù),供以后項(xiàng)目策劃時(shí)參考。例如,我們應(yīng)形成組織級(jí)的測(cè)試生產(chǎn)率以便估算項(xiàng)目的測(cè)試周期;通過查看測(cè)試工作量在不同階段或不同類型活動(dòng)的歷史分布情況,安排各個(gè)階段不同類型測(cè)試任務(wù)的資源投入。
在測(cè)試過程中,采集項(xiàng)目的進(jìn)度、工作量、計(jì)劃延遲率等度量數(shù)據(jù),一方面可以幫助管理者更加清晰地了解項(xiàng)目的進(jìn)展,發(fā)現(xiàn)實(shí)際活動(dòng)與計(jì)劃的偏差,必要時(shí)啟動(dòng)計(jì)劃調(diào)整;另一方面,通過對(duì)采集的過程數(shù)據(jù)進(jìn)行分析還有助于識(shí)別測(cè)試過程中的風(fēng)險(xiǎn)。后面我們將結(jié)合具體的數(shù)據(jù)進(jìn)行說明。
度量另一個(gè)重要的作用是幫助管理者評(píng)定測(cè)試每個(gè)階段工作產(chǎn)品或活動(dòng)是否符合規(guī)定。在實(shí)際測(cè)試工作中,我們強(qiáng)調(diào)對(duì)每個(gè)階段的工作輸出進(jìn)行嚴(yán)格把關(guān)。例如:我們可以對(duì)評(píng)審問題的關(guān)閉情況進(jìn)行度量以判斷是否滿足轉(zhuǎn)階段條件;通過對(duì)缺陷的關(guān)閉情況統(tǒng)計(jì)為軟件是否通過測(cè)試提供充分的依據(jù);我們還可以對(duì)不同測(cè)試類型的測(cè)試用例分布數(shù)進(jìn)行統(tǒng)計(jì),以判斷測(cè)試用例設(shè)計(jì)是否充分且可以轉(zhuǎn)入執(zhí)行階段等。
軟件測(cè)試過程是在負(fù)責(zé)的協(xié)作環(huán)境下進(jìn)行,每個(gè)階段工作產(chǎn)品的完整性和正確性是下個(gè)階段活動(dòng)順利展開的有效保證。在配置管理活動(dòng)中,我們重點(diǎn)關(guān)注以下數(shù)據(jù):每個(gè)階段的工作產(chǎn)品數(shù)量和產(chǎn)出時(shí)間是否與計(jì)劃一致、每個(gè)工作產(chǎn)品的變更次數(shù)、基線的數(shù)量和產(chǎn)出時(shí)間是否與計(jì)劃一致、基線的變更次數(shù)等。
對(duì)缺陷數(shù)據(jù)進(jìn)行采集和量化,將分散的數(shù)據(jù)按規(guī)定的方式集合起來,使其能清晰有序地表征出變化趨勢(shì)以及分布情況,從而提高測(cè)試效果和軟件質(zhì)量。關(guān)于缺陷的度量數(shù)據(jù)有:千行代碼缺陷率、缺陷密度、缺陷種類、缺陷的修復(fù)情況等。
傳統(tǒng)的測(cè)試過程管理通常采用形式化的方式描述和證明軟件過程的規(guī)范性和有效性,導(dǎo)致測(cè)試過程缺乏客觀性和可視化。我們?cè)趥鹘y(tǒng)的測(cè)試過程管理方法中引入了CMMI的管理思想,使用度量的方法獲得過程或產(chǎn)品的表征數(shù)據(jù),為決策提供量化信息的支撐,促使測(cè)試過程不斷完善和改進(jìn)。
過程度量從明確度量需求開始。根據(jù)需求確定度量范圍、分配所需的資源、選擇度量項(xiàng)。在確定了度量項(xiàng)之后定義各項(xiàng)數(shù)據(jù)的采集規(guī)程,以保障數(shù)據(jù)度量尺度的統(tǒng)一和數(shù)據(jù)采集點(diǎn)的正確。根據(jù)這些準(zhǔn)備編制度量工作計(jì)劃并開始實(shí)施度量,最后通過采集數(shù)據(jù)、分析數(shù)據(jù)達(dá)到度量的目的。
根據(jù)前面分析的過程能力對(duì)測(cè)試質(zhì)量的影響來提取的測(cè)試過程度量項(xiàng)與度量目的如表1所示。
本文通過分析軟件測(cè)試過程能力對(duì)測(cè)試質(zhì)量的影響,提出了基于度量的測(cè)試過程管理方法,并給出了具體的度量流程和度量項(xiàng)。基于測(cè)試過程的度量與應(yīng)用還可以從很多其他維度為測(cè)試過程能力的改進(jìn)提供支撐,也將是該課題下一步研究的方向。