軟體測試中存在的問題

shbwf發表於2013-03-11

  1、軟體測試及其地位

  軟體測試是軟體生命週期中的一個重要階段,是軟體質量保證的關鍵步驟。軟體測試的目的是為了檢驗軟體系統是否滿足需求。軟體測試應該是“為了發現錯誤而執行程式的過程”。或者說,軟體測試應該根據軟體開發各階段的規格說明和程式的內部結構而精心設計一批測試用例(即輸入資料及其預期的輸出結果),並利用這些測試用例去執行程式,以發現程式錯誤或缺陷。

  隨著軟體危機的頻繁出現,以及人們對軟體本質的進一步認識,軟體測試的地位得到了前所未有的提高。軟體測試已經不僅僅侷限於軟體開發中的一個階段,它已經開始貫穿於整個軟體開發過程,人們已經開始認識到:測試開始的時間越早,測試執行的越頻繁,所帶來的整個軟體開發成本的下降就會越多。

  美國質量保證研究所對軟體測試的研究結果表明:越早發現軟體中存在的問題,開發費用就越低;在編碼後修改軟體缺陷的成本是編碼前的10倍,在產品交付後修改軟體缺陷的成本是交付前的10倍。另外,根據對國際著名IT企業的統計,它們的軟體測試費用佔整個軟體工程所有研發費用的50%以上,軟體測試時間佔整個軟體工程所有研發時間的40%至50%。

  2、軟體測試中的常見問題

  軟體測試雖然日益受到重視,但是,目前不少軟體企業的軟體開發模式仍然處在無序開發的不規範狀態,與軟體程式設計比較,軟體測試的地位和作用,還沒有真正受到重視,很多人還存在對軟體測試的錯誤認識,這更影響軟體測試活動的進行和真正提高軟體測試質量。下面幾小節將列出一些軟體測試上的常見問題並進行解釋。

  2.1 軟體測試僅僅是為了發現軟體缺陷

  對軟體測試略有了解的人都知道,在說到軟體測試時,多數人都會強調軟體測試的目的是為了發現軟體中的缺陷。一個好的測試用例在於能發現至今未發現的缺陷。也就是人們常說的:軟體測試可以說明軟體存在缺陷,但不能說明軟體不存在缺陷。

  這種觀點不能說是錯誤的,但至少是不全面的。如果從軟體過程的角度來看,就可以看到一個被大多數人忽略的軟體測試目的是:軟體測試可以幫助發現當前開發工作所採取的軟體過程的缺陷,以便進行改進。

  具體的說,軟體測試並不僅僅是為了要找到軟體中的缺陷,而是分析錯誤產生的原因和其產生的階段。通過分析結果,從軟體過程方面去改進,從而避免今後有類似的錯誤出現,並能發現有關聯的潛在缺陷。這樣,就可以儘早的發現和修正缺陷,並可以預防某些缺陷的產生。因此,應該正確分析與利用測試的結果並有效地進行軟體過程改進,從根本上提高軟體質量,降低軟體開發成本。

  2.2 編碼完成後再進行軟體測試

  根據軟體生命週期的定義,軟體專案開發過程一般要經過以下幾個階段:需求分析,概要設計,詳細設計,軟體編碼,軟體測試,軟體釋出。因此,許多人認為軟體測試只是軟體編碼後的一個過程。這是不瞭解軟體測試周期的真正含義造成的錯誤認識。

  軟體測試是一個系列過程活動,包括軟體測試需求分析,測試計劃設計,測試用例設計,執行測試。因此,軟體測試貫穿於軟體專案的整個開發過程。在軟體專案的每一個階段都要進行不同目的和內容的測試活動,以保證各個階段的正確性。軟體測試的物件不僅僅是軟體程式碼,還包括軟體需求文件和設計文件。軟體開發與軟體測試應該是互動進行的,例如,單元編碼需要單元測試,模組組合階段需要整合測試,系統整合階段需要系統測試。如果等到軟體編碼結束後才進行測試,那麼,測試的時間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。更嚴重的是如果此時發現了軟體需求階段或概要設計階段的錯誤,要修復錯誤,將會耗費大量的時間和人力。

  高效的系統測試有賴於高效的計劃。測試用例像原始碼一樣,需要設計、評審和實施。如果不想讓測試成為阻礙軟體釋出的關鍵路徑,就要儘早開始測試計劃。可以在瞭解了需求之後就開始。若採用分階段交付使用的方法,在第一階段中途就可獲得可執行的軟體,這時就可以開始系統測試。

  ......

本文轉載自51Testing軟體測試網,檢視全文:http://www.51testing.com/html/89/n-837489.html

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1060285/,如需轉載,請註明出處,否則將追究法律責任。

相關文章