軟件測試的復(fù)雜性與經(jīng)濟性
能夠決定需要做多少次測試的主要影響因素如下:
1.系統(tǒng)的目的
系統(tǒng)的目的的差別在很大程度上影響所需要進行的測試的數(shù)量。那些可能產(chǎn)生嚴(yán)重后果的系統(tǒng)必須要進行更多的測試。一臺在Boeing 757上的系統(tǒng)應(yīng)該比一個用于公共圖書館中檢索資料的系統(tǒng)需要更多的測試。一個用來控制密封燃?xì)夤艿赖南到y(tǒng)應(yīng)該比一個與有毒爆炸物品無關(guān)的系統(tǒng)有更高的可信度。一個安全關(guān)鍵軟件的開發(fā)組比一個游戲軟件開發(fā)組要有苛刻得多的查找錯誤方面的要求。
2.潛在的用戶數(shù)量
一個系統(tǒng)的潛在用戶數(shù)量也在很大程度上影響了測試必要性的程度。這主要是由于用戶團體在經(jīng)濟方面的影響。一個在全世界范圍內(nèi)有幾千個用戶的系統(tǒng)肯定比一個只在辦公室中運行的有兩三個用戶的系統(tǒng)需要更多的測試。如果不能使用的話,前一個系統(tǒng)的經(jīng)濟影響肯定比后一個系統(tǒng)大。除此而外,在分配處理錯誤的時候,所花的代價的差別也很大。如果在內(nèi)部系統(tǒng)中發(fā)現(xiàn)了一個嚴(yán)重的錯誤,在處理錯誤的時候的費用就相對少一些,如果要處理一個遍布全世界的錯誤就需要花費相當(dāng)大的財力和精力。
3.信息的價值
在考慮測試的必要性時,還需要將系統(tǒng)中所包含的信息的價值考慮在內(nèi),一個支持許多家大銀行或眾多證券交易所的客戶機/服務(wù)器系統(tǒng)中含有經(jīng)濟價值非常高的內(nèi)容。很顯然這一系統(tǒng)需要比一個支持鞋店的系統(tǒng)要進行更多的測試。這兩個系統(tǒng)的用戶都希望得到高質(zhì)量、無錯誤的系統(tǒng),但是前一種系統(tǒng)的影響比后一種要大得多。因此我們應(yīng)該從經(jīng)濟方面考慮,投入與經(jīng)濟價值相對應(yīng)的時間和金錢去進行測試。
4.開發(fā)機構(gòu)
一個沒有標(biāo)準(zhǔn)和缺少經(jīng)驗的開發(fā)機構(gòu)很可能開發(fā)出充滿錯誤的系統(tǒng)。在一個建立了標(biāo)準(zhǔn)和有很多經(jīng)驗的開發(fā)機構(gòu)中開發(fā)出來的系統(tǒng)中的錯誤不會很多,因此,對于不同的開發(fā)機構(gòu)來說,所需要的測試的必要性也就截然的不同。 然而,那些需要進行大幅度改善的機構(gòu)反而不大可能認(rèn)識到自身的弱點。那些需要更加嚴(yán)格的測試過程的機構(gòu)往往是最不可能進行這一活動的,在許多情況下,機構(gòu)的管理部門并不能真正地理解開發(fā)一個高質(zhì)量的系統(tǒng)的好處。
5.測試的時機
測試量會隨時間的推移發(fā)生改變。在一個竟?fàn)幒芗ち业氖袌隼?,爭取時間可能是制勝的關(guān)鍵,開始可能不會在測試上花多少時間,但幾年后如果市場分配格局已經(jīng)建立起來了,那么產(chǎn)品的質(zhì)量就變得更重要了,測試量就要加大。測試量應(yīng)該針對合適的目標(biāo)進行調(diào)整。