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