6、
測試人員素質低,缺乏相關知識培訓。
項目管理人員對測試存有偏見,對于測試的重要性認識不足,導致其嚴重忽略測試人員的選拔和知識培訓。許多軟件項目讓軟件用戶或新招收的技術人員來完成測試工作,他們認為測試人員的工作很簡單,就是技術人員讓測什么就測什么,它基本是一個動手不動腦的工作。
這樣做的后果進一步導致了測試工作的無序和混亂,測試過程缺乏計劃性,測試人員缺乏技術能力,缺乏對架構的了解,相關素質的缺失使他們成為技術人員的附庸。測試對于他們來說,是一種枯燥的“手+眼”式的工作,他們唯一渴望的,是將無聊的測試盡快完成,從而遠遠的逃離。這樣的測試結果可想而知。
其實,軟件工程對測試人員的素質要求是很嚴格的,比如:要有相關計算機知識背景、具備軟件工程基本知識、熟悉項目編程語言、熟悉項目技術架構及需求內容、工作有責任感、獨立分析能力及團隊精神等等。真正規范的軟件項目對于測試人員的要求是不會低于技術人員的,而且會為測試人員提供進一步的知識培訓機會,以應對各種項目的復雜情況。
7、
測試進度的錯誤估算。
在項目開發中,領導為督促測試的進程,往往會讓項目組匯報工作進度,了解已經完成的工作占比,從而對工作進度做出判斷。我對這種工作方式完全擁護,只是覺得這種方式還有不足。
測試進程不是簡單的1+1過程,不能武斷地認為“我用8天干完了80%的工作,那么,剩余工作便能在2天內干完”。著名的Pareto80/20規律告訴我們:測試發現的所有錯誤中的80%很可能集中在20%的程序模塊中,另外20%很可能集中在80%的程序模塊中。
所以,沒有對測試對象認真分析的基礎,單憑工作完成數量而對工作進度做出的的判斷往往是錯誤的。
我認為,“工作實際進度=工作完成量占比+測試對象的錯誤占比分析”才是一個較合理的測試進度估算方式。
測試新思路:
項目的開發風險來自于對需求的誤解,來自于設計與開發過程及產品的缺陷,只有盡早發現這些缺陷,才能降低并控制項目風險;谶@種思想,軟件業出現了一些新的測試思路,主要有二:
1、測試驅動開發(Test-DrivenDevelopment,簡稱TDD)。這種測試思想被最近流行的XP(Extreme Programming)極限編程方式所大力提倡。它的基本思想是,通過測試來為編程做指導,在某個要開發的需求對象明確之后,在編碼之前,先進行相關測試代碼(測試代碼的內容和需求規格說明書描述是相同的,有人把它稱為“可執行的需求規格說明書”)的編寫工作,完成之后針對測試代碼進行編程,然后再用測試程序對開發代碼進行測試,驗證其正確性,若程序通過了測試,就說明它是符合需求規格說明書要求的。周而復始,通過這樣的過程,開發進程得以層層深入,直到開發完成。而這時單元測試也基本完成了。
這種測試方式的最大的好處是,盡早地發現設計、開發中存在的問題,避免傳統開發模式中的“測試過程中發現代碼不能滿足需求而導致的大量返工”。降低項目風險;同時可以盡早地將“半成品”展示給客戶,使客戶對需求進行驗證、補充及完善,另外測試代碼的表達方式相對準確、無二義性,可以降低因需求理解錯誤而導致的項目風險。2、迭代測試。這種測試是IBM所推崇測試方式之一,它從迭代式開發模式演變而來。在迭代開發模式中,每個迭代都包含需求、設計、編碼、集成、測試等過程。在每一次迭代完成之后,便會開始新的迭代過程。通過一次次迭代的累進,系統會增量式集成一些新的功能,直至整個系統功能的完成。其中,每個迭代周期的測試工作由兩方面內容構成:
· 對當前迭代周期產品的增量測試。
· 對前迭代周期已完成功能的回歸測試。
隨著迭代周期的累進,測試工作內容隨之不斷變化。早期迭代測試重點在于新功能的測試,后期迭代測試重點在于累積功能的回歸測試。
有的人不喜歡XP編程的開發方式,認為其沒有明確的階段性劃分,不利于計劃管理,模式過于靈活,不好掌握。迭代式開發模式為這些人提供了新的選擇。這種開發方式繼承了瀑布式開發模式的優點――全面、嚴謹、有計劃性、易管理,更重要的是,這種模式將測試工作分布到每個迭代周期中,使測試工作提前進行,從而使將發現軟件缺陷
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/