新聞中心

EEPW首頁 > 測試測量 > 軟件測試的基礎(chǔ)知識概要介紹[3]

軟件測試的基礎(chǔ)知識概要介紹[3]

——
作者: 時間:2006-12-19 來源: 收藏
四、的復(fù)雜性與經(jīng)濟(jì)性

  人們常常以為,開發(fā)一個程序是困難的,測試一個程序則比較容易。這其實(shí)是誤解。設(shè)計測試用例是一項(xiàng)細(xì)致并需要高度技巧的工作,稍有不慎就會顧此失彼,發(fā)生不應(yīng)有的疏漏。

  不論是黑盒測試方法還是白盒測試方法,由于測試情況數(shù)量巨大,都不可能進(jìn)行徹底的測試。所謂徹底測試,就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍。通常也稱這種測試為“窮舉測試”。 “黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實(shí)際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。 “白盒”法是窮舉路徑測試,貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字,但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。e.w.dijkstra的一句名言對測試的不徹底性作了很好的注解:“程序測試只能證明錯誤的存在,但不能證明錯誤不存在”。

  在實(shí)際測試中,窮舉測試工作量太大,實(shí)踐上行不通,這就注定了一切實(shí)際測試都是不徹底的。當(dāng)然就不能夠保證被測試程序中不存在遺留的錯誤。軟件工程的總目標(biāo)是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。為了降低測試成本,選擇測試用例時應(yīng)注意遵守“經(jīng)濟(jì)性”的原則。第一,要根據(jù)程序的重要性和一旦發(fā)生故障將造成的損失來確定它的測試等級;第二,要認(rèn)真研究測試策略,以便能使用盡可能少的測試用例,發(fā)現(xiàn)盡可能多的程序錯誤。掌握好測試量是至關(guān)重要的,一位有經(jīng)驗(yàn)的軟件開發(fā)管理人員在談到時曾這樣說過:“不充分的測試是愚蠢的,而過度的測試是一種罪孽”。測試不足意味著讓用戶承擔(dān)隱藏錯誤帶來的危險,過度測試則會浪費(fèi)許多寶貴的資源。

  測試是軟件生存期中費(fèi)用消耗最大的環(huán)節(jié)。測試費(fèi)用除了測試的直接消耗外,還包括其它的相關(guān)費(fèi)用。能夠決定需要做多少次測試的主要影響因素如下:

 ?、?、系統(tǒng)的目的

  系統(tǒng)的目的的差別在很大程度上影響所需要進(jìn)行的測試的數(shù)量。那些可能產(chǎn)生嚴(yán)重后果的系統(tǒng)必須要進(jìn)行更多的測試。一臺在boeing 757上的系統(tǒng)應(yīng)該比一個用于公共圖書館中檢索資料的系統(tǒng)需要更多的測試。一個用來控制密封燃?xì)夤艿赖南到y(tǒng)應(yīng)該比一個與有毒爆炸物品無關(guān)的系統(tǒng)有更高的可信度。一個安全關(guān)鍵軟件的開發(fā)組比一個游戲軟件開發(fā)組要有苛刻得多的查找錯誤方面的要求。

 ?、凇撛诘挠脩魯?shù)量

  一個系統(tǒng)的潛在用戶數(shù)量也在很大程度上影響了測試必要性的程度。這主要是由于用戶團(tuán)體在經(jīng)濟(jì)方面的影響。一個在全世界范圍內(nèi)有幾千個用戶的系統(tǒng)肯定比一個只在辦公室中運(yùn)行的有兩三個用戶的系統(tǒng)需要更多的測試。如果不能使用的話,前一個系統(tǒng)的經(jīng)濟(jì)影響肯定比后一個系統(tǒng)大。除此而外,在分配處理錯誤的時候,所花的代價的差別也很大。如果在內(nèi)部系統(tǒng)中發(fā)現(xiàn)了一個嚴(yán)重的錯誤,在處理錯誤的時候的費(fèi)用就相對少一些,如果要處理一個遍布全世界的錯誤就需要花費(fèi)相當(dāng)大的財力和精力。

  ③、信息的價值

  在考慮測試的必要性時,還需要將系統(tǒng)中所包含的信息的價值考慮在內(nèi),一個支持許多家大銀行或眾多證券交易所的客戶機(jī)/服務(wù)器系統(tǒng)中含有經(jīng)濟(jì)價值非常高的內(nèi)容。很顯然這一系統(tǒng)需要比一個支持鞋店的系統(tǒng)要進(jìn)行更多的測試。這兩個系統(tǒng)的用戶都希望得到高質(zhì)量、無錯誤的系統(tǒng),但是前一種系統(tǒng)的影響比后一種要大得多。因此我們應(yīng)該從經(jīng)濟(jì)方面考慮,投入與經(jīng)濟(jì)價值相對應(yīng)的時間和金錢去進(jìn)行測試。

 ?、?、開發(fā)機(jī)構(gòu)

  一個沒有標(biāo)準(zhǔn)和缺少經(jīng)驗(yàn)的開發(fā)機(jī)構(gòu)很可能開發(fā)出充滿錯誤的系統(tǒng)。在一個建立了標(biāo)準(zhǔn)和有很多經(jīng)驗(yàn)的開發(fā)機(jī)構(gòu)中開發(fā)出來的系統(tǒng)中的錯誤不會很多,因此,對于不同的開發(fā)機(jī)構(gòu)來說,所需要的測試的必要性也就截然的不同。

  然而,那些需要進(jìn)行大幅度改善的機(jī)構(gòu)反而不大可能認(rèn)識到自身的弱點(diǎn)。那些需要更加嚴(yán)格的測試過程的機(jī)構(gòu)往往是最不可能進(jìn)行這一活動的,在許多情況下,機(jī)構(gòu)的管理部門并不能真正地理解開發(fā)一個高質(zhì)量的系統(tǒng)的好處。

 ?、荨y試的時機(jī)

  測試量會隨時間的推移發(fā)生改變。在一個竟?fàn)幒芗ち业氖袌隼铮瑺幦r間可能是制勝的關(guān)鍵,開始可能不會在測試上花多少時間,但幾年后如果市場分配格局已經(jīng)建立起來了,那么產(chǎn)品的質(zhì)量就變得更重要了,測試量就要加大。測試量應(yīng)該針對合適的目標(biāo)進(jìn)行調(diào)整。


關(guān)鍵詞: 軟件測試

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉