宏光
摘 要:針對軟件測試人力資源分配問題,研究最優(yōu)的人力資源分配方法,并給出利用計算機實現(xiàn)的相應的具體算法。
關鍵詞:軟件測試;人力資源分配;最優(yōu)算法;軟件的可靠性
一、問題的提出
在當今信息網(wǎng)絡的社會里,由于信息與經(jīng)營的一體化使各行各業(yè)對計算機的依存性越來越大,這就造成了對計算機軟件的需求量逐年增加。軟件開發(fā)周期正向短工期化的方向發(fā)展,如何排除軟件在開發(fā)過程中所產(chǎn)生的故障因素,這就必然考慮測試人力的最優(yōu)分配問題。
二、分配原理
測試工程是軟件開發(fā)的結尾工程,它分三個連續(xù)階段:單元測試(單體、模塊)、結合測試、綜合測試(系統(tǒng)運用)。單體測試是對軟件設計階段按功能分割的各模塊分別獨立地進行測試;結合測試是將各模塊結合起來后測試其是否能正確地進行數(shù)據(jù)的I/O操作;結合測試是對所有的系統(tǒng)模塊結合起來,測試它們能否按用戶的需求規(guī)格進行動作。
分配方法:(1)設總測試人力量Q 事先確定;(2)測試軟件由M個相對獨立的模塊構成,并且可根據(jù)軟件的可靠度增長模型推算出各模塊殘存的差錯數(shù);(3)對各模塊最優(yōu)分配既定測試總人力量Q 的原則是分配能使軟件內(nèi)殘存差錯數(shù)盡可能最少;根據(jù)人力型軟件可靠度增長模型來解決最優(yōu)分配問題,投入測試人力量與發(fā)現(xiàn)差錯數(shù)關系式:
(其中a>0,1>r>0) (1-1)
至于軟件整體及各模塊的可靠性評價基準尺度則采用NHPP模型的殘存差錯數(shù)期望值:
所以由(1-1)式可定義測試時刻t 的殘存差錯數(shù)的期望值為:
其中測試工程投入測試人力以工時數(shù)或CPU小時表示,分配給模塊i(i=1,2,…,M)的測試人力量用q*表示,于是可由qi(i=1,2,…,M)代換(1-2)式中的w(t):
(1-2)
式子中各參數(shù)的意義為:
:測試開始前模塊i內(nèi)潛在差錯總數(shù)期望值;
:對模塊i的單元測試人力差錯發(fā)現(xiàn)率;
:分配給模塊i的測試人力量。
所以軟件整體殘存差錯總數(shù)期望值可由(1-3)式推出:
(1-3)
如果將以上測試人力最優(yōu)分配問題用數(shù)學表達式來表示則有:
(1-4)
其中是模塊i的重要程度、程序設計的復雜程度等因素而確定的對模塊i的加權值,但對(1-4)還要附加如下限制條件:
(1-5)
式中Q 表示事先測算的既定測試總人力量。
下面我們的目標就是推出滿足(1-5)式條件下(1-4)式所表示的分配給各模塊的測試人力量(i=1,2,…,M)
其次引入一個Lagrange乘數(shù)以便解(1-4)和(1-5)的最適解問題,即:
(1-6)
那么,具有最適解的必要條件:
(1-7)
就是說最佳解必須滿足上述方程,由此可解得最適解為:
(1-7)
這里(i=1,2,…,M)據(jù)(1-5)、(1-6),可由下式給出:
(1-9)
在此,設各模塊排列次序為:
(1-10)
這個排列次序意味著對各模塊分配的測試人力量是按發(fā)現(xiàn)差錯從難到易的模塊
順序來進行的。
三、最優(yōu)分配算法
根據(jù)以上分析,顯然,具有(1-8)式所表示的最佳解的充分條件是有(1-5)的曲線凸特性和(1-6)的直線性,因此,可按以下算法算出最佳分配量(i = 1,
2,…,M):
1.推算關于M個測試模塊的參數(shù)、和權值(i=1,2,…,M),以及設定測試開始時根據(jù)預測決定的總測試人力Q;
2.設定初始值K=0;
3.進行(1-8)、(1-9)式的有關計算
4.如果對于所有i都有qi≥0則去執(zhí)行第6 步;
5.令<0 的模塊I(I=M-K,M-K+1,…,M)的=0 使K=K+1 后轉去執(zhí)行第3步;
6.輸出最優(yōu)分配量(i=1,2,…,M)
參考文獻
[1]趙曉華著:計算機可靠性與質(zhì)量管理.北京,中國經(jīng)濟出版社,2000.8
[2]張海藩著:軟件工程.北京,清華大學出版社,1999.2
[3]H.ohtera and S.Yamaha《 Optinal allocation and control problem for software testingresources》,IEEETrans. Reliability,Vol.R-39,NO.2(June,1990)
[4]山田茂 大寺浩志著:《リァトゲヱの信賴性》,SRC,車子(1990)
(作者單位:神華銷售集團錫林浩特能源銷售有限公司)