田輝++王玲
摘要摘要:隨著軟件測試行業(yè)的興起,如何預測、評估、控制軟件測試成本,成為軟件測試團隊和第三方軟件測評機構需要研究的問題。軟件測試成本度量是對軟件測試成本進行數(shù)據(jù)定義、收集以及分析的持續(xù)性定量化過程。目前,我國尚缺少軟件測試成本度量方面的規(guī)范,如何開展軟件測試成本度量工作缺少指導依據(jù)。從軟件測試成本構成、軟件測試成本度量過程、軟件測試成本度量應用三方面,對如何開展軟件測試成本度量工作進行了闡述。
關鍵詞關鍵詞:軟件測試;成本估算;數(shù)據(jù)采集;度量分析
DOIDOI:10.11907/rjdk.151882
中圖分類號:TP301
文獻標識碼:A文章編號文章編號:16727800(2015)011000103
基金項目基金項目:山東省質(zhì)監(jiān)局科技計劃項目(2013KYZ24)
作者簡介作者簡介:田輝(1987-),女,山東濟南人,碩士,國家網(wǎng)絡軟件產(chǎn)品質(zhì)量監(jiān)督檢驗中心(濟南)工程師,研究方向為軟件檢測技術;王玲(1963-),女,山東濟南人,國家網(wǎng)絡軟件產(chǎn)品質(zhì)量監(jiān)督檢驗中心(濟南)中心副主任、高級工程師,研究方向為軟件檢測技術。
0引言
隨著軟件在各行各業(yè)的日益普及,越來越多的企業(yè)和用戶意識到軟件測試的重要性,第三方軟件測試行業(yè)快速發(fā)展。如何預測、評估、控制軟件測試成本成為當前研究的重點。軟件測試成本度量是對軟件測試項目的成本進行數(shù)據(jù)定義、收集以及分析的持續(xù)性定量化過程。PMP從項目經(jīng)理的角度對項目成本管理進行了規(guī)范,CMMI從項目組織層面對如何度量進行了規(guī)范。然而,目前國內(nèi)尚缺乏軟件測試成本度量方面的規(guī)范。本文對軟件測試成本度量方法進行了研究,從軟件測試成本的構成、軟件測試成本度量的過程、軟件測試成本度量的應用三方面闡述如何開展軟件測試成本度量工作,為軟件測試團隊和第三方軟件測評機構的測試成本度量提供科學依據(jù)。
1軟件測試成本構成
軟件測試成本由直接成本和間接成本構成。直接成本包括直接人力成本和直接非人力成本,間接成本包括間接人力成本和間接非人力成本。軟件測試成本構成如圖1所示。
(1)直接人力成本包括軟件測試人員的工資、獎金、福利等人力資源費用。對于非全職投入軟件測試人員,按照在軟件測試項目中的工作量占其總工作量比例折算其人力資源費用。軟件測試人員一般包括測試項目負責人、測試分析員、測試設計員、測試程序員、測試人員、測試系統(tǒng)管理員、配置管理員。一人可承擔多個角色的工作,一個角色可由多人承擔。其中,當軟件供方實施測試時,配置管理員由軟件開發(fā)項目的配置管理員承擔;當獨立的測試組織實施測試時,應為測試活動配置管理員。
(2)直接非人力成本包括軟件測試方為測試該項目而產(chǎn)生的辦公費、差旅費、培訓費、業(yè)務費、采購費及其它未在以上項目列出,但確系軟件測試方為測試此項目所花費的費用。
(3)間接人力成本指軟件測試方服務于測試管理整體需求的非軟件測試人員人力資源費用分攤,包括質(zhì)量保證人員、組織級技術管理人員等的工資、獎金、福利等分攤。
(4)間接非人力成本指軟件測試方不為測試某個特定項目而產(chǎn)生,但服務于整體研發(fā)活動的非人力成本分攤,包括軟件測試方場地房租、水電、物業(yè),軟件測試人員日常辦公費用分攤及各種研發(fā)辦公設備的租賃、維修、折舊分攤。
2軟件測試成本度量過程
軟件測試成本度量過程[5]包括軟件測試成本的估算、軟件測試成本的測量和軟件測試成本分析三部分。
2.1軟件測試成本估算
2.1.1軟件測試成本估算基本流程
軟件測試成本估算基本流程如圖2所示。
本文所指的被測軟件是指具有測試計劃或測試合同、具有軟件測試所需的各種文檔,系統(tǒng)邊界已確定、需求描述明確、編碼工作基本完成且版本受控的軟件。軟件測試成本估算從軟件規(guī)模度量開始,對工作量、工期、成本進行估算,可充分利用基準數(shù)據(jù),采用方程法、類比法或類推法。
2.1.2軟件規(guī)模度量
功能點(FP)與代碼行(LOC)是常用的兩種軟件規(guī)模度量方法[6]。然而,隨著近年來可視化編程工具、模板庫、類庫的廣泛采用,程序中有大量自動生成的代碼、復雜的自動配置腳本或資源文件設置,在采用這些工具的項目中,用LOC進行軟件規(guī)模度量已經(jīng)不夠準確。相對而言,近年來FP方法得到了不斷的改進和完善,其歷史數(shù)據(jù)也有了非常大的積累,技術日趨成熟。鑒于上述兩種方法的優(yōu)缺點,本文選用功能點估算方法。
在軟件規(guī)模度量前,估算人員應根據(jù)測試計劃或測試合同中規(guī)定的測試范圍確定系統(tǒng)邊界,然后再根據(jù)已確定的系統(tǒng)邊界和需求描述、項目特點和度量需求進行軟件功能規(guī)模度量。在軟件規(guī)模度量時,估算人員應考慮可能的測試需求變更程度,并對規(guī)模度量結果適當調(diào)整。
度量的方法可選用國際標準化組織ISO/IEC已發(fā)布的以下5種功能規(guī)模度量標準中的一種,即:①ISO/IEC 19761(COSMIC-FFP方法);②ISO/IEC 20926(IFPUG方法);③ISO/IEC 20968(MkⅡ方法);④ISO/IEC 24570(NESMA方法);⑤ISO/IEC 29881(FiSMA方法)。
根據(jù)相關國際標準中的方法適用范圍聲明,COSMIC方法適用于商業(yè)應用軟件和實時系統(tǒng);IFPUG方法[7]適用于所有類型軟件的功能規(guī)模度量;MkⅡ方法[8]適用于邏輯事務能被確定的任何軟件類型;NESMA方法與IFPUG方法非常類似,但對功能點計數(shù)進行了分級,以便在估算的不同時期選擇不同精度方法進行估算;FiSMA方法適用于所有類型軟件的功能規(guī)模度量。
2.1.3工作量估算
工作量估算[9]需要考慮的因素眾多,如測試存在的風險、測試中資源可復用的程度等。工作量估算可分估算準備、估算與調(diào)整兩步。工作量估算的準備主要是分析測試的風險、確定影響測試的主要因素;估算與調(diào)整主要是根據(jù)風險分析結果,對估算方法或模型進行合理調(diào)整,根據(jù)軟件測試復用情況的分析,調(diào)整工作量估算。
2.1.4工期估算
對軟件測試工期的估算[10]主要有以下幾種方式:①根據(jù)工作量估算結果和資源情況,對軟件測試任務進行分解并制訂時間表;②利用基準數(shù)據(jù)建立“工作量—工期”模型,估算合理的工期范圍;③將委托方的期望工期或軟件測試方初步制訂的工作時間表中的工期與工期估算結果比較;如果委托方期望工期或工作時間表中的工期低于估算出的工期下限或超出估算出的工期上限,則應分析原因,必要時需對人力資源安排或項目范圍進行調(diào)整,再重新估算工作量、工期,并制訂新的工作時間表。
2.1.5成本估算
(1)估算直接人力成本。估算人員根據(jù)工作量估算結果和測試人員直接人力成本費率估算直接人力成本。軟件測試方應優(yōu)先使用本單位的直接人力成本費率數(shù)據(jù)。直接人力成本的計算宜采用以下兩種方式:①根據(jù)不同類別人員的直接人力成本費率和估算工作量分別計算每類人員的直接人力成本,將各類人員的直接人力成本相加得到該項目總的直接人力成本;②根據(jù)項目平均直接人力成本費率和估算的總工作量,直接計算該項目的直接人力成本。
(2) 估算直接非人力成本。估算人員根據(jù)項目情況,按照上文中的要求分項估算直接非人力成本。
(3) 估算間接人力成本。估算人員根據(jù)項目情況,按照上文中的要求分項估算間接人力成本。間接人力成本應按照工作量比例分攤。
(4) 估算間接非人力成本。估算人員根據(jù)項目情況,按照上文中的要求分項估算間接非人力成本。間接非人力成本應按照工作量比例分攤。
2.1.6軟件測試成本確定
軟件測試成本計算公式:
軟件測試成本=直接人力成本+直接非人力成本+間接人力成本+間接非人力成本(1)
2.2軟件測試成本數(shù)據(jù)采集
軟件測試成本數(shù)據(jù)采集分兩步:①對軟件測試的項目規(guī)模、工作量、測試工期數(shù)據(jù)進行采集;②對軟件測試成本的數(shù)據(jù)采集。
2.2.1軟件測試項目規(guī)模、工作量、工期數(shù)據(jù)采集
軟件測試項目規(guī)模、工作量、工期的數(shù)據(jù)采集,包括對所測軟件項目的總工作量、總工期進行數(shù)據(jù)采集,還包括對項目不同活動、不同階段的工作量、工期的數(shù)據(jù)采集。在軟件測試過程中和測試結束后,負責項目度量的人員應定期或事件驅(qū)動地對所測軟件項目的規(guī)模、工作量、測試工期,進行相關數(shù)據(jù)的采集[11]。
軟件測試項目規(guī)模的衡量屬性為項目的功能模塊數(shù)。采集的項目規(guī)模數(shù)據(jù)為實際所測試的功能點數(shù)。
軟件測試工作量的度量目標有兩個:項目工作量分布和項目總工作量。項目工作量分布采集的數(shù)據(jù)為整個測試過程中各階段、各活動工作量的分布情況。項目總工作量是整個軟件測試項目花費的總工作量。
軟件測試工期采集的數(shù)據(jù)為管理整個軟件測試項目所持續(xù)的時間。
2.2.2軟件測試成本數(shù)據(jù)采集
軟件測試成本數(shù)據(jù)采集包括直接成本的數(shù)據(jù)采集和間接成本的數(shù)據(jù)采集。
在軟件測試過程中,負責項目度量的人員應定期或事件驅(qū)動地對已發(fā)生的直接成本進行數(shù)據(jù)采集。在測試結束后,負責項目度量的人員應按照上文中的要求對各項成本分別進行數(shù)據(jù)采集。
軟件測試成本所需采集的數(shù)據(jù)包括計劃成本(PV)、預算成本(EV)、實際成本(AC)。
2.3軟件測試成本分析
軟件測試成本分析的主要內(nèi)容包括成本偏差CV、成本構成、成本關鍵影響因素相關性分析、成本性能指數(shù)CPI分析。
在軟件測試過程[12]中,項目負責人應定期檢查實際發(fā)生成本與估算成本的偏差。數(shù)據(jù)分析的結果應與利益相關方充分溝通,并采取有效糾正措施。項目結束后,應對成本及相關數(shù)據(jù)進行分析。
成本偏差公式:CV=EV-AC(2)
成本性能指數(shù)公式:CPI=EV/AC(3)
3軟件測試成本度量應用
軟件測試成本度量采集的數(shù)據(jù)、分析的結果均可保留。在軟件測試項目關閉后,度量人員應對全部的分析資料、報告和呈報結果進行總結,提取對今后工作有價值的經(jīng)驗教訓,通過積累公司知識財富庫,不斷調(diào)整成本估算方法。
軟件測試成本度量的數(shù)據(jù)可用于:①項目評價[13];②建立或校正成本估算模型;③組織過程改進。
4結語
隨著我國軟件行業(yè)的逐漸成熟,軟件測試的地位也日益重要,客戶在軟件測試方面投入的成本逐漸增加,如何估算測試成本成為測試行業(yè)關注的重點。然而,由于測試成本估算方面標準與法規(guī)的欠缺,軟件測試成本估算的方式千差萬別,準確性也有待評估。欲得到相對準確的成本估算結果,根據(jù)歷史數(shù)據(jù)完善成本估算模型,選擇適合的模型非常重要。通過本文所述的軟件測試成本度量方法,可以提取具有更高準確度和實用性的成本數(shù)據(jù),更好地改進成本估算模型,并可用來制定軟件測試預算。
參考文獻參考文獻:
[1]宋巍.軟件功能測試成本估算模型研究及其應用[D].上海:上海交通大學,2009.
[2]PMBOK.Guidefifth edition[M].Pennsylvania :Project Management Institute,Inc,2012.
[3]CMMI for Development,Version 1.3[EB/OL].http://www.docin.com/p276663076.html.
[4]SJ/T 11463,軟件研發(fā)成本度量規(guī)范[EB/OL].http://www.spsp.gov.cn/Page/QT/2013/SJT%20114632013.shtml.
[5]楊根興,蔡立志,陳浩鵬,等.軟件質(zhì)量保證、測試與評價[M].北京:清華大學出版社,2007.
[6]CAPER JONES.軟件項目估計 [M].第2版.北京:電子工業(yè)出版社,2008.
[7]ISO/IEC 209262009,Software and systems engineering——software measurementIFPUG functional size measurement method[S].2009.
[8]ISO/IEC 209682002,Software engineeringMl II function point analysiscounting practices manual[S].2002.
[9]李明樹,何梅,楊達,等.軟件成本估算方法及應用[J].軟件學報,2007,18(4):776795.
[10]曹靜,邵宗有.軟件測試成本評估方法研究[J].計算機與現(xiàn)代化,2011,57(9):210214.
[11]中國電子技術標準化研究院.GB/T 85662007.信息技術 軟件生存周期過程[M].北京:中國標準出版社,2007.
[12]柳純錄.軟件評測師教程[M].北京:清華大學出版社,2005.
[13]中國電子技術標準化研究院.GB/T 25000.512010,軟件工程 軟件產(chǎn)品質(zhì)量要求和評價(SQuaRE)商業(yè)現(xiàn)貨(COTS)軟件產(chǎn)品的質(zhì)量要求和測試細則[M].北京:中國標準出版社,2010.
責任編輯(責任編輯:杜能鋼)