1. 程式人生 > >軟體測試認識的幾個誤區

軟體測試認識的幾個誤區

隨著市場對軟體質量的不斷提高,軟體測試不斷受到重視,但是由於總體上,國內軟體專案過程不規範,導致重視編碼和輕視測試的現象,對於軟體測試的重要性、測試方法和流程等還存在很多錯誤的認識。根據作者的軟體工作經驗,本文列舉了七種有代表性的軟體測試得認識誤區,並作了剖析和相應的解釋。希望對軟體行業的技術和管理人士,正確認識軟體測試起到一定的作用。 

作為軟體質量保證和可靠性的關鍵技術手段,軟體測試正日益受到重視。但是,我國不少軟體企業的軟體開發模式仍然處在無序開發的不規範狀態,與軟體程式設計比較,軟體測試的地位和作用,還沒有真正受到重視,對於很多人(甚至是軟體專案組的技術人員)還存在對軟體測試的認識誤區,這進一步影響了軟體測試活動的開展和真正提高軟體測試質量。


隨著市場對軟體質量的不斷提高,軟體測試不斷受到重視,但是由於總體上,國內軟體專案過程不規範,導致重視編碼和輕視測試的現象,對於軟體測試的重要性、測試方法和流程等還存在很多錯誤的認識。根據作者的軟體工作經驗,本文列舉了七種有代表性的軟體測試得認識誤區,並作了剖析和相應的解釋。希望對軟體行業的技術和管理人士,正確認識軟體測試起到一定的作用。 

作為軟體質量保證和可靠性的關鍵技術手段,軟體測試正日益受到重視。但是,我國不少軟體企業的軟體開發模式仍然處在無序開發的不規範狀態,與軟體程式設計比較,軟體測試的地位和作用,還沒有真正受到重視,對於很多人(甚至是軟體專案組的技術人員)還存在對軟體測試的認識誤區,這進一步影響了軟體測試活動的開展和真正提高軟體測試質量。

誤區之一:軟體開發完成後進行軟體測試

人們一般認為,軟體專案要經過以下幾個階段:需求分析,概要設計,詳細設計,軟體編碼,軟體測試,軟體釋出。據此,認為軟體測試只是軟體編碼後的一個過程。這是不瞭解軟體測試周期的錯誤認識。

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

誤區之二:軟體釋出後如果發現質量問題,那是軟體測試人員的錯

這種認識很打擊軟體測試人員的積極性。軟體中的錯誤可能來自軟體專案中的各個過程,軟體測試只能確認軟體存在錯誤,不能保證軟體沒有錯誤,因為從根本上講,軟體測試不可能發現全部的錯誤。從軟體開發的角度看,軟體的高質量不是軟體測試人員測出來的,是靠軟體生命週期的各個過程中設計出來的。出現軟體錯誤,不能簡單地歸結為某一個人的責任,有些錯誤的產生可能不是技術原因,可能來自於混亂的專案管理。應該分析軟體專案的各個過程,從過程改進方面尋找產生錯誤的原因和改進的措施。

誤區之三:軟體測試要求不高,隨便找個人多都行

很多人都認為軟體測試就是安裝和執行程式,點點滑鼠,按按鍵盤的工作。這是由於不瞭解軟體測試的具體技術和方法造成的。隨之軟體工程學的發展和軟體專案管理經驗的提高,軟體測試已經形成了一個獨立的技術學科,演變成一個具有巨大市場需求的行業。軟體測試技術不斷更新和完善,新工具,新流程,新測試設計方法都在不斷更新,需要掌握和學習很多測試知識。所以,具有程式設計經驗的程式設計師不一定是一名優秀的測試工程師。軟體測試包括測試技術和管理兩個方面,完全掌握這兩個方面的內容,需要很多測試實踐經驗和不斷學習精神。

誤區之四:軟體自動測試效率高,將取代軟體手工測試

近年來,軟體測試自動化技術的研究取得了很大進步,市場出現了一些商業化的專用自動測試工具,並且已經成功地應用在某些軟體的自動化測試過程中。自動測試具有測試效率高、人工干涉少、靈活方便等優點。但是,自動測試技術的仍然處於不斷髮展中,當前市場上的自動測試工具仍然只能滿足某些軟體的部分測試特性,應用範圍受到限制,需要針對被測軟體,單獨編寫和除錯比較複雜的測試指令碼,而且自動測試工具價格通常十分昂貴,非一般軟體公司可以購買的起。在當前的軟體測試領域,測試工程師的手工測試仍然處於十分重要的地位,目前軟體自動測試僅是手工測試的輔助手段。由於軟體自身的複雜性和靈活性,而高度發達的人類思維的優勢,決定了無論自動測試技術多麼發達,手工測試將不會消失。

誤區之五:軟體測試是測試人員的事情,與程式設計師無關

開發和測試是相輔相成的過程,需要軟體測試人員、程式設計師和系統分析師等保持密切的聯絡,需要更多的交流和協調,以便提高測試效率。另外,對於單元測試主要應該由程式設計師完成,必要時測試人員可以幫助設計測試樣例。對於測試中發現的軟體錯誤,很多需要程式設計師通過修改編碼才能修復。程式設計師可以通過有目的的分析軟體錯誤的型別、數量,找出產生錯誤的位置和原因,以便在今後的程式設計中避免同樣的錯誤,積累程式設計經驗,提高程式設計能力。

誤區之六:專案進度吃緊時少做些測試,時間富裕時多做測試

這是不重視軟體測試的表現,也是軟體專案過程管理混亂的表現,必然會降低軟體測試的質量。一個軟體專案的順利實現需要有合理的專案進度計劃,其中包括合理的測試計劃,對專案實施過程中的任何問題,都要有風險分析和相應的對策,不要因為開發進度的延期而簡單的縮短測試時間、人力和資源。因為縮短測試時間帶來的測試不完整,對專案質量的下降引起的潛在風險,往往造成更大的浪費。克服這種現象的最好辦法是加強軟體過程的計劃和控制,包括軟體測試計劃、測試設計、測試執行、測試度量和測試控制。

誤區之七:軟體測試是沒有前途的工作,只有程式設計師才是軟體高手

由於我國軟體整體開發能力比較低,軟體過程很不規範,很多軟體專案的開發都還停留在"作坊式"和"壘雞窩"階段。專案的成功往往靠個別全能程式設計師決定,他們負責總體設計和程式詳細設計,認為軟體開發就是編寫程式碼,給人的印象往往是程式設計師是真正的牛人,具有很高的地位和待遇。因此,在這種環境下,軟體測試很不受重視,軟體測試人員的地位和待遇自然就很低了,甚至軟體測試變得可有可無。隨著市場對軟體質量的不斷提高,軟體測試將變得越來越重要,相應的軟體測試人員的地位和待遇將會逐漸提高。在微軟等軟體過程比較規範的大公司,軟體測試人員的數量和待遇與程式設計師沒有多大差別,優秀測試人員的待遇甚至比程式設計師還要高。軟體測試將會成為一個具有很大發展前景的行業,軟體測試大有前途,市場需要更多具有豐富測試技術和管理經驗的測試人員,他們同樣是軟體專家。