試析軟體測試的錯覺及發展方向

shbwf發表於2012-11-07

  摘要:市場對軟體質量重要性的認識逐漸增強,但是由於還存在部分公司軟體專案過程不規範,導致重視編碼和輕視測試的現象。本文重點介紹代表性的認識錯覺,並作了剖析和相應的解釋。

  關鍵詞:軟體測試

  隨著軟體規模的不斷擴大,軟體設計的複雜程度不斷提高,軟體開發中出現錯誤或缺陷的機會越來越多,而市場對軟體質量重要性的認識逐漸增強,所以,軟體測試在軟體專案實施過程中的重要性日益突出,但是由於還存在部分公司軟體專案過程不規範,導致重視編碼和輕視測試的現象,對於軟體測試的重要性,測試方法和流程等還存在很多錯誤的認識。這進一步影響了軟體測試活動的發展和真正提高軟體測試質量。一下列舉了幾種有代表性的認識錯覺,並作了相應的解釋:

  一、軟體測試普遍被認為是在開發後開始執行

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

  二、軟體測試人員承擔釋出後所有的質量問題

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

  三、公司和軟體測試人員都不重視測試

  軟體工程學的發展和軟體專案管理經驗的提高,軟體測試已經形成了一個獨立的技術學科,演變成一個具有巨大市場需求的行業。軟體測試技術不斷更新和完善,新工具,新流程,新測試設計方法都在不斷更新,需要掌握和學習很多測試知識。所以,具有程式設計經驗的程式設計師不一定是一名優秀的測試工程師。軟體測試包括測試技術和管理兩個方面,完全掌握這兩個方面的內容,需要很多測試實踐經驗和不斷學習精神。這是不重視軟體測試的表現,也是軟體專案過程管理混亂的表現,必然會降低軟體測試的質量。一個軟體專案的順利實現需要有合理的專案進度計劃,其中包括合理的測試計劃對專案實施過程中任何問題,都要有風險分析和相應的對策,不要因為開發進度的延期而簡單的縮短測試時間,人力和資源。

  四、程式設計師認為測試與我無關

  開發和測試是相輔相成的過程,需要軟體測試人員,程式設計師和系統分析師等保持密切的聯絡,需要更多的交流和協調,以便提高測試效率。另外,對於單元測試主要應該由程式設計師完成,必要時測試人員可以幫助設計測試用例。

  五、軟體測試不可能成為軟體測試高手

  專案的成功往往靠個別全能程式設計師決定,他們負責總體設計和程式詳細設計,認為軟體開發就是編寫程式碼。因此,在這種環境下,軟體測試很不受重視,軟體測試人員的地位和待遇自然就很低了,甚至軟體測試變得可有可無。隨著市場對軟體質量的不斷提高,軟體測試將變得越來越重要,相應的軟體測試人員的地位和待遇將會逐漸提高。在微軟等軟體過程比較規範的大公司,軟體測試人員的數量和待遇與程式設計師沒有多大差別,優秀測試人員的待遇甚至程式設計師還要高。

  由於軟體系統越來越精密,越來越複雜,軟體及系統的質量測試正在成為IT行業中一個新亮點,軟體測試行業未來發展前景良好。對軟體測試工作的發展方向有以下幾點分析:

  1、BUG預防和早期檢測,因為現在把重點放在產品交付的質量上來,預防實踐和靜態分析儀這樣的檢測工具將成為主流。

  2、模擬工具變的很普通,使得仿造計算機環境變得容易起來。在開發過程的早期就可以進行意外和錯誤流程的測試。程式碼穩定後,在用真實環境驗證模擬是否準確無誤。龐大的測試用例管理系統將成為昔日的東西,大量的測試用例生成了卻沒有使用。

  3、有用的方法,比如需求覆蓋,模型覆蓋,程式碼覆蓋將驅動專案開發。機器將代替測試人員做大部分他們以往建立測試所做的繁瑣工作,測試小組需要比以往更少的測試人員,留下來的測試人員將是經過更多高度培訓過的。

  4、測試人員的角色更換,測試中界限模糊,在測試領域工作使得專職測試的人員和專職建立測試工具的人員界限模糊,一個既是通過程式破壞事物的測試員又是建立程式用於破壞事物的程式設計師的專業出現了,關於如何稱呼這個新的專業,新聞圈內的人們在進行著無休止的爭論。測試於開發界限模糊,測試人員與開發人員一前一後,共同創造可測試的,高質量的程式碼,測試人員幫助開發人員消除需求中的問題,使得開發人員的工作更易完成,同時,開發人員寫出更清晰,可測性更高的程式碼,使得測試人員的工作更易完成。

  5、顧客反饋與測試合為一體,交付的產品質量更高。測試人員進行根本原因的分析,我們會問比如我們怎麼會遺漏了這個BUG呢?或者我們將來如何防止這類BUG?這些問題,我們的工作就是使顧客滿意。複雜的相互關聯的計算機世界使得了測試安全這一類新的問題讓測試人員不斷努力工作,但這沒有關係因為這些挑戰使測試人員精力充沛。

  6、測試人員獲得尊重測試人員將不再是在最後時刻才被叫來對產品狂轟爛炸,他們將在整個軟體開發過程中提供一個可見的,重要的,增值服務。人們意識到,測試是有益的,有趣的甚至富有樂趣。軟體測試人員開始揚眉吐氣,而且,由於破壞事物至少可以帶來建立事物一樣的樂趣,人們開始在開發和測試角色之間轉換,所有的人將學到更多如何得到良好程式碼的知識。

本文轉載自51Testing軟體測試網,檢視更多:http://www.51testing.com/html/news.html

[@more@]

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

相關文章