| 軟件測試的經(jīng)濟性與復雜性 | |
| 作者:佚名 來(lái)源:中國自學(xué)編程網(wǎng)收集整理 發(fā)布日期:2008-12-03 | |
不論是黑盒測試方法還是白盒測試方法,由于測試情況數量巨大,都不可能進(jìn)行徹底的測試。所謂徹底測試,就是讓被測程序在一切可能的輸入情況下全部執行一遍。通常也稱(chēng)這種測試為“窮舉測試。 黑盒法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實(shí)際上測試情況有無(wú)窮多個(gè),人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。 白盒法是窮舉路徑測試,貫穿程序的獨立路徑數是天文數字,但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規范,即程序本身是個(gè)錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現不了一些與數據相關(guān)的錯誤。 E.W.Dijkstra的一句名言對測試的不徹底性作了很好的注解:“程序測試只能證明錯誤的存在,但不能證明錯誤不存在”。 在實(shí)際測試中,窮舉測試工作量太大,實(shí)踐上行不通,這就注定了一切實(shí)際測試都是不徹底的。當然就不能夠保證被測試程序中不存在遺留的錯誤。軟件工程的總目標是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。為了降低測試成本,選擇測試用例時(shí)應注意遵守“經(jīng)濟性”的原則。 第一,要根據程序的重要性和一旦發(fā)生故障將造成的損失來(lái)確定它的測試等級; 第二,要認真研究測試策略,以便能使用盡可能少的測試用例,發(fā)現盡可能多的程序錯誤。掌握好測試量是至關(guān)重要的,一位有經(jīng)驗的軟件開(kāi)發(fā)管理人員在談到軟件測試時(shí)曾這樣說(shuō)過(guò):“不充分的測試是愚蠢的,而過(guò)度的測試是一種罪孽”。測試不足意味著(zhù)讓用戶(hù)承擔隱藏錯誤帶來(lái)的危險,過(guò)度測試則會(huì )浪費許多寶貴的資源。 |
聯(lián)系客服