軟體測試過程度量是這樣一種技術,它提取軟體測試過程中可計量的屬性,在測試過程進行中以一定頻度不斷地採集這些屬性的值,並採用一些恰當的分析方法對得到的這些數據進行分析,從而量化地評定測試過程的能力和性能,提高測試過程的可視性,幫助軟體組織管理以及改進軟體測試過程。
基本介紹
- 中文名:軟體測試過程度量
- 性質:技術
- 特徵:提取軟體測試過程中可計量的屬性
- 優點:幫助軟體組織管理
重要作用,相關概念,軟體分類,
重要作用
隨著軟體生產規模的日益增大,保證軟體產品質量的軟體測試工作越來越得到人們的重視,為更好地保證軟體產品質量、更有效地執行軟體測試工作,迫切需要對軟體測試過程進行有效管理並逐步改善。目前,軟體生產過程的管理模式也經歷了完全依據管理者的經驗到以數據為依據的量化管理這樣一個逐步轉化的過程。要對軟體測試過程進行有效的管理就需要有反映過程本質特性的過程數據,通過這些數據,測試過程的執行狀況才能得到監控,測試過程改進的決策才能有的放矢。由於軟體測試過程的不可見性,軟體測試過程度量則成為對軟體測試過程進行量化管理不可或缺的一個環節。
軟體測試過程度量的作用主要體現在如下幾個方面:
發現:通過度量對過程、產品、資源和環境進行分析和理解,在此基礎上建立過程基線。過程基線是進行過程評價和過程改進的基準。
評價:通過評價比較實際軟體過程與標準或計畫間的差異。過程評價是衡量過程好壞和過程改進效果的有效手段。
控制:通過度量所反映的產品狀態信息、項目狀態信息和過程狀態信息,可以幫助制定合理的管理控制措施,使產品偏離度、項目偏離度和過程偏離度在可控制的範圍內,使項目過程的性能表現穩定,並且項目過程性能滿足需求。
預測:歷史度量數據的積累能幫助預測當前項目的相關屬性數據,有助於計畫和決策的制定。
改進:度量並不能直接改進過程,但基於度量的理解和評價為過程改進提供了有效的線索。根據這些線索再結合度量所記錄的過程場景信息分析過程偏差的原因,幫助過程改進制定有效的變更措施。過程改進既是度量的結果,又是度量的動因。
相關概念
Process:過程 ,指一組部分有序的活動[IEEE-STD-610]。計畫和實施一個過程都是為了達到特定的目的,該定義表明過程是由活動組成,活動可以是串列的,可以是並行的,也可以是串並相結合的。其中活動的順序可能是時間的先後次序,因果順序,或條件順序等。
Activity:活動,是過程中要執行的工作[CMM Version 1.1]。實施活動是要達到一定的目的,所以活動都有信息輸入和信息輸出,信息輸入是活動的前提條件,信息輸出是活動的目的結果。
Measure:度量(名詞),是通過執行測量賦予一個實體屬性的數值或類別[1]。數值是對軟體產品、軟體過程的特徵的量化記數的結果,例如軟體模組的規模是10K代碼行;類別是特徵的定性表示,例如軟體風險,可以是高或低。
Measure:度量(動詞),執行測量[1],是按照度量過程中的過程定義,對軟體過程或軟體產品實施度量,表示實際的動作。
Measurement:測量,是按照一定的尺度用度量(metric)給軟體實體屬性賦值(可能是數值或類別)的過程[2]。它強調對軟體實體屬性進行量化的過程性,是提取軟體過程或軟體產品屬性的度量(measure,名詞)的過程。它所蘊涵的內容是度量的過程。
Metric:度量,是已定義的測量方法和測量尺度[1]。在很多場合與Indicator交叉出現,但其內涵大於Indicator,Metric指軟體環境中任何一個軟體對象的屬性的量化表現。
Indicator:指示器,是用於評價或預測其他度量(measure,名詞)的度量(measure,名詞)[1]。指示器是一個或多個度量(metric)的綜合,是對軟體產品或軟體過程的某一方面特徵的反映。不同的度量目的有不同的度量指示器。在具體的實施過程中,可操作的度量成千上萬,選擇最能反映當時度量環境的指標作為度量指示器。
軟體測試過程:保證軟體質量的過程,已經不再被視為是在軟體開發之後的一個獨立的過程,而是貫穿於整個軟體生存周期中的重要過程,並分為若干個階段。
軟體測試過程度量:是對軟體測試過程進行度量的定義、方法、活動和結果的集合。
軟體分類
對軟體測試過程的度量是對軟體測試過程特性的一種描述,不同的描述類型決定了不同的度量內容、度量的表達方式、度量數據的採集手段、度量數據的分析方法。根據不同的描述類型劃分測試過程度量類型如下:
(1)客觀度量和主觀度量:客觀度量是過程或產品的實際結果,主觀度量是人的主觀判斷結果,也可以是在客觀數據基礎上的分析結果。實施主觀度量的一個前提是要有經驗豐富的軟體工程和軟體過程人員。客觀度量在一定程度上減少了人為的主觀影響,因為它多表現為量化的數據,且數據的來源和產生的背景信息又可以清楚定義,這就賦予了數據較強的說明能力,為軟體組織對過程進行量化管理和最佳化管理打下基礎。本文給出的度量定義和度量分析方式是以客觀度量為主、主觀度量為輔的。
(2)絕對度量和相對度量:絕對度量其度量值的取得沒有參照物或沒有其他屬性之間的依賴關係,比如,一個被測的程式模組具有絕對的代碼行數,其他代碼模組的變化不影響該模組的大小。相對度量是指其度量值的取得具有參照物或與其他屬性之間有依賴關係,比如生產效率依賴於過程時間和產品的規模。
(3)顯式度量和隱式度量:顯式度量是可直接得到數據的度量,隱式度量是對原始度量數據進行運算或結合多個度量分析得到的結果。例如測試時間是顯式度量,測試人員工作效率是隱式度量。
(4)動態度量和靜態度量:動態度量是二維以上的度量,用於動態監控過程信息隨時間的更新情況。一般第一維表示數值或類別,第二維表示時間。時間可能是絕對的日期或時鐘,也可能是測試項目進度或里程碑等表示過程的進程信息。靜態度量是一維度量,例如過程的計畫信息。
(5)預測度量和解釋度量:預測度量是根據既有度量信息來預測過程的未來執行情況。解釋度量是事後度量,對已經執行的活動進行度量。從過程疊代的角度來看,上一次的解釋度量可能是下一次的預測度量。
(6)內部度量和外部度量:內部度量和外部度量的劃分是從度量的信息源和結果套用的作用域而言的。有三種類型的作用域:軟體測試組織內部和外部,項目組內部和外部,項目內各小組之間。