株洲中車時代電氣股份有限公司 陳明奎 段 靜
軟件測試工作量估算方法在DCU測試中的應(yīng)用
株洲中車時代電氣股份有限公司 陳明奎 段 靜
DCU是列車牽引系統(tǒng)核心控制部件,在列車正式上線運行前,需對DCU軟件進行充分測試。軟件測試工作量的估算對于DCU測試工程化管理至關(guān)重要,為此,本文對目前較為常見的DCU工作量測試估算方法進行介紹,提出提高估算準(zhǔn)確度的計算方法優(yōu)化策略,以某DCU測試項目為實際操作用例,進行項目統(tǒng)計、測試設(shè)計,和估計值與實際值之間的偏差結(jié)果分析,探討軟件測試工作量估算方法在DCU測試中的應(yīng)用方法。
DCU測試;軟件測試;工作量估算;估算方法
DCU(Driver Control Unit,傳動控制單元)是列車牽引系統(tǒng)的核心控制部件之一,用于控制列車的變流器和牽引電機,為保證列車安全運行,在正式上線運行前,需對DCU軟件進行充分的測試。在DCU測試中的軟件測試工作量估算主要憑借以往經(jīng)驗,估算結(jié)果存在較大的誤差,為此本文從軟件測試估算量的原理入手,分析DCU軟件測試工作量估算的影響因素,探討軟件測試工作量估算在DCU測試中的作用,針對目前普遍采用的軟件測試估算工作量估算方法的優(yōu)缺點進行分析,以便于更好的提出DCU測試中軟件測試工作量估算方法的解決方案。并通過實際用例進行應(yīng)用,證明本文研究的軟件測試工作量估算方法可以提高DCU測試的準(zhǔn)確性。
軟件測試工作量估算要通過項目分析明確項目的整體規(guī)模,再估計軟件測試工作量的規(guī)模,最后得到軟件測試的生產(chǎn)率。軟件測試工作量的估算過程中會存在三種情況,一是工作量估算無誤差的理想化狀態(tài),二是工作量估算過程中因軟件測試原因?qū)е鹿浪愠霈F(xiàn)誤差,三是因軟件設(shè)計或開發(fā)存在缺陷導(dǎo)致估算出現(xiàn)誤差,所以引入軟件測試生產(chǎn)率,軟件測試工作量估算可以表示為:
其中w為軟件測試工作量,s為軟件項目測試規(guī)模,p為軟件測試生產(chǎn)率。
在軟件測試量估算前,首先需要了解軟件的整體規(guī)模,軟件需要測試的用例數(shù)量和測試要求難度,軟件規(guī)模是軟件測試工程量初步預(yù)估的基礎(chǔ),通過軟件規(guī)模的判斷可大體確定軟件開發(fā)的周期、難度及產(chǎn)生的費用。測試用例是軟件功能與性能的用例參考,軟件測試用例在軟件測試工作量的影響方面主要是測試用例的可用性、精簡性、代表性、可執(zhí)行性和可重用性,這些都是影響軟件測試工作量估算的重要參考。
在一個軟件開發(fā)項目團隊中,軟件測試工作量要占據(jù)軟件開發(fā)總工作量的40%以上,測試成本占總開銷的近50%。軟件開發(fā)中的成本、質(zhì)量與進度之間的平衡關(guān)系對軟件項目的成敗具有直接的關(guān)系,而軟件測試則是平衡軟件開發(fā)各資源關(guān)系的重要方法。據(jù)統(tǒng)計,目前有超過70%以上的軟件開發(fā)消耗成本在軟件測試方面,軟件測試的質(zhì)量關(guān)系軟件后期的應(yīng)用與維護,為此軟件測試工作量的計算是軟件開發(fā)的數(shù)據(jù)重要支持,其準(zhǔn)確性關(guān)系到軟件開發(fā)的成敗。
基于規(guī)模的估算方法中可以采用功能點數(shù)的方式進行度量,功能點數(shù)是把對表的輸入與輸出按照估算規(guī)則轉(zhuǎn)化為功能點,對功能點數(shù)的工作量進行累加的到軟件測試的總工作量。通常把測試用例的數(shù)量最小值作為程序功能點總數(shù)的1.15∧,測試用例的數(shù)量最大值等于程序功能點數(shù)的1.3∧,測試用例工作量的平均值相當(dāng)于程序功能點數(shù)的1.2∧?;谝?guī)模的估算方法在軟件測試中非常常見,其主要是由于方法簡單、工作量小,對于一般中小型測試項目具有較好的適用性。但是受估算參考籠統(tǒng)化、誤差離散化、歷史數(shù)據(jù)規(guī)?;蜆I(yè)務(wù)邏輯算法復(fù)雜化的影響,基于規(guī)模的估算方法存在應(yīng)用的局限性,并且受測試人員工作水平參差不齊的影響,在維護性項目中基于規(guī)模的估算方法工作量非常的龐大,估算的準(zhǔn)確性難以保證。
基于用例的估算方法是通過以往相同或者相似類型的軟件項目測試工作量來估算目標(biāo)軟件測試的工作量?;谟美墓浪惴椒ㄒ筌浖y試必須具備參照的用例,根據(jù)用例所花費的人力、物力和財力計算出目標(biāo)項目的工作量,用例可以為其中某個相似的模塊花費的工作量,但是受編程人員和測試人員技術(shù)水平和工作能力差異性的影響,基于用例的估算方法在準(zhǔn)確性方面仍有所偏差,并且若是開發(fā)的軟件項目無參照用例則無法使用該方法。
基于項目的估算方法對軟件測試管理工作量與支持活動工作量的要求較高,管理工作量和支持活動工作量越高則軟件測試的準(zhǔn)確性就越大。以項目為基礎(chǔ)的估算方法是完全根據(jù)項目開展過程中產(chǎn)生的工作量進行估算,其能夠較為真實的反映軟件開發(fā)的全過程,較為準(zhǔn)確的得到軟件測試的工作量,但是受軟件開發(fā)過程中變化情況的復(fù)雜性,基于項目的估算方法軟件測試工作量估算結(jié)果變動非常大,在每個任務(wù)開展的過程中都存在諸多的不確定因素,這導(dǎo)致軟件測試人員需要經(jīng)常反復(fù)進行測試,增加測試的工作量。
如果將測試人員的經(jīng)驗、熟練度和穩(wěn)定性等按照等級劃分成為上、中、下三等,并對其賦權(quán)值為N上,N中和N下,則N上gt;N中g(shù)t;N下,N上+N中+N下=1,假定軟件測試工作量估算過程匯中無缺陷,軟件規(guī)模工作量設(shè)為A,N上的規(guī)模估算總和為X1,N中的規(guī)模估算總和為Y1,N下的規(guī)模估算總和為Z1,以加權(quán)算術(shù)平均法進行計算得到軟件規(guī)模工作量為:
本文引入質(zhì)量估算模型對軟件測試工作量估算中存在的缺陷進行計算,從外部軟件開發(fā)的需求、設(shè)計、編碼三方面存在的缺陷為中心,假設(shè)引入的總?cè)毕萘繛镠,則根據(jù)質(zhì)量估算模型得到公式:
其中,i為缺陷因子,j為缺陷類型,DI為驅(qū)動因子,Aj是缺陷類型j的基線DI比率調(diào)整因子,(DI)ij為第j個類型與第i個因子的缺陷引入的驅(qū)動因子。n為驅(qū)動因子需要的成本參數(shù)。
表1 影響測試生產(chǎn)率因素及系數(shù)
軟件測試工作內(nèi)部也存在工作量估算的缺陷,以測試需求缺陷、測試設(shè)計缺陷和測試執(zhí)行缺陷三方面作為質(zhì)量估算模型參數(shù)得到軟測測試內(nèi)部缺陷總數(shù)為E,則根據(jù)質(zhì)量估算模型得到公式:
公式中,X為DI驅(qū)動因子的個數(shù)。由此,可根據(jù)軟件規(guī)模工作量進行內(nèi)部和外部的劃分,內(nèi)部工作量和外部工作量的總和減去因缺陷增加的規(guī)模,軟件測試工作量的值A(chǔ)’為:
將軟件測試工作量估算影響因素按照影響重要程度進行等級劃分,并折算成系數(shù)得到軟件測試工作量估算影響因素系數(shù)表如表1所示。
將所有的影響因素生產(chǎn)率設(shè)為S,產(chǎn)生的折算系數(shù)和為O,則生產(chǎn)率可表示為:
軟件測試工作量為:
項目估算方法中軟件測試管理與支持活動工作量是軟件測試工作量估算準(zhǔn)確性的保障。假設(shè)軟件測試中的測試人員熟練程度高的個數(shù)為a,其測試活動所需的工作總量為Ma,測試支持活動工作總量為Qa,測試人員熟練度為中的個數(shù)為b,其測試活動所需的工作總量為Mb,測試支持活動工作總量為Qb,測試人員熟練度為低的個數(shù)為c,其測試活動所需的工作總量為Mc,測試支持活動工作總量為Qc,則測試管理和支持活動工作量分別為:
通過以上的優(yōu)化得到軟件的最后工作量估算實際值為:
本文以某地鐵DCU測試項目為例,采用DCU實時測試環(huán)境對軟件進行測試,測試項點包括:上電初始化、方向處理功能、控制信號處理功能、變流器邏輯控制功能、牽引特性曲線功能、制動特性曲線功能等26個測試項點。測試類型包括功能性測試、性能測試、接口測試、交互測試和文檔審查,環(huán)境數(shù)據(jù)分別進行各類型的測試,參與測試人員共計3名,對測試人員工作量進行估算,按照本文的軟件測試工作量估算優(yōu)化方法計算出DCU測試的工作總量。
測試人員技術(shù)水平按照以往工作經(jīng)歷劃分為高、中、低三個級別,讓測試人員分別采用基于規(guī)模的估算方法進行軟件測試規(guī)模的預(yù)估,得到的結(jié)果如表2所示。
表2 軟件測試規(guī)模預(yù)估結(jié)果
以測試人員的技術(shù)水平進行賦權(quán)值,分別表示為N1=0.5,N2=0.3,N3=0.2,得到軟件測試規(guī)模估算結(jié)果為:
根據(jù)表2得到DCU測試項目的測試人員測試設(shè)計生產(chǎn)率各因素的折算系數(shù)分別為:用例可重用性系數(shù)0.1,用例復(fù)雜度系數(shù)0.03,用例錯誤密度系數(shù)為0.1,用例精簡性系數(shù)為0.1,測試人員技術(shù)水平系數(shù)為0.2。按測試執(zhí)行生產(chǎn)率計算各因素的折算系數(shù)分別為:復(fù)雜度系數(shù)為0.08,重用性系數(shù)為0.05,測試人員操作熟練度系數(shù)為0.1,精簡性為0.05,可執(zhí)行性系數(shù)為0.12,測試環(huán)境系數(shù)為0.1,測試工具系數(shù)為0.1,測試數(shù)據(jù)可用性系數(shù)為0.1,硬件穩(wěn)定性系數(shù)為0.1。為此得到DCU測試設(shè)計的生產(chǎn)率為:
測試人員人均測試生產(chǎn)執(zhí)行率為:
由此得到測試設(shè)計的工作量(人時)為:
測試執(zhí)行的工作量為:
引入軟件測試管理工作量與支持活動工作量,測試人員技術(shù)水平按照以往工作經(jīng)歷劃分為高、中、低三個級別,測試人員需要的管理工作量和支持活動工作量如表3所示:
表3 管理工作量和支持活動工作量(人時)需求
得到軟件測試管理工作量(人時)與支持活動工作量(人時)的結(jié)果分別為:
軟件測試總工作量(人時)為:
以DCU測試項目實際測試工作量結(jié)果進行參考,在測試過程中功能性測試、性能測試、接口測試、交互測試和文檔審查的統(tǒng)計、設(shè)計、執(zhí)行、管理與活動支持的實際值,測試工作量實際結(jié)果如表4所示。
通過表4的測試結(jié)果與本文的總DCU測試預(yù)估值偏差約為15.43,工作量的估算值接近實際工作量,估算方法基本可以滿足實現(xiàn)預(yù)計的規(guī)模,可正確反映出DCU測試所需的人力、物力和財力,為項目開發(fā)工作量估算提供了可靠的支持。
表4 DCU測試項目實際工作量結(jié)果(此表格數(shù)據(jù)建議重新整理)
DCU(牽引控制單元)是機車、動車、城軌的重要組成部件,對DCU軟件測試工作量的估算是保證項目實施的人力、物力、財力分配準(zhǔn)確性的關(guān)鍵,為此本文提出了軟件測試工作量估算方法優(yōu)化策略,將影響軟件測試工作量估算準(zhǔn)確性的因素折算成系數(shù),并將測試人員工作水平劃分出上、中、下三等,再加上測試管理工作量與支持活動工作量,由此得到軟件工作量估算的公式。在以某地鐵DCU測試項目為例進行實際測試工作量估算中,運用優(yōu)化公式進行計算得到的最后結(jié)果與工程實際的工作量結(jié)果幾乎接近,由此證明了該算法的可行。
[1]丁曉峰.地鐵車輛DCU牽引控制單元測試裝置[J].科研,2015(10):70-70.
[2]賀晉寧,杜偉偉,高靜.軟件自動化測試的探索實踐[J].國外電子測量技術(shù),2016,35(7):1-4.
[3]亓卓亞.軟件項目中工作量估算方法的研究[J]辦公自動化,2017(12):33-39.