例如微軟的開發方式本來就是“測試驅動”的,在測試過程中發現了墻角還有沒涂到油漆的小塊,開發則根據這個思想再補上那一塊。測試的經歷恰好讓人更能從用戶的角度來考慮問題,更能深入了解程序開發過程中可能出現的問題,這都是成為一個優秀的項目管理者的必要條件。盡管可能一整天都為了一個小控件“循規蹈矩”地反復測試并撰寫測試文檔,這樣的重復被A當作了重要的積累。A喜歡新東方學校的徐小平新書《騎驢找馬》中的一句話:“重復做漢堡,就是麥當勞;重復煮咖啡,就是星巴克;重復教托福,就是俞敏洪;重復做好事,就是活雷鋒!
測試工作,在好多公司說到底還是不夠重視。如果管理層從控制成本考慮,不打算對測試投入太多,例如對用了2年左右的測試工程師不想加更多的薪水留人怎么辦呢?那我們就要問了,什么是軟件成本?不僅僅是生產過程中產生的費用叫成本,未來因為產品缺陷產生的服務費用也是成本,如果產生了客戶退貨、產品召回,也是要算成本的哦!作為測試的工程師要學會使用數據說話,把產品缺陷造成的成本數據搜集起來,關鍵的時候拿出來給重視成本的領導或管理層查閱方能實現工作向工作量的轉變。
四、測試的成本
測試成本的要素包含很多方面,是否寫了測試代碼只是其中一個重要部分,是否采用JUint以及Mock對象更加不是對其評價的決定性因素。對測試的更好評價應該是額外代碼、測試可重復性、測試范圍和邊界值識別等綜合構成(測試對設計的作用是更高級的判斷)。
對于涉及到數據庫持久方面的測試、涉及到UI(瀏覽器或者富客戶端)交互的測試以及多對象多方法過程的測試(也可體現為UI交互,這里是指獨立性質的)等,以及上面說到的一些問題(不再重復),是我們現實測試實踐要面臨的問題。
對這些問題的解決,就會更多的涉及到項目具體情況的選擇和具體項目和團隊的情況來做最佳判斷,這就是成本的意義。
在軟件開發的早期,軟件開發只是編碼及部署。但隨著軟件行業的發展,開發企業開始在發布前進行測試。因此,這個意義上來說,軟件測試是成本。但從更普遍的意義上來講,軟件測試其實是一種提供軟件質量的投資。
軟件測試看似成本,但其實可能就是一項可以減少將來若干不必要費用的投資,同時還可以為企業贏得良好的口碑。而達到這一目的解決方案,主要有:采用測試驅動開發方式;確保每個小功能的模塊都得到很好的測試,并建立可持續的資源整合環境;進行可靠的整體測試。軟件測試最終將轉化成為節約成本的開支。不論它是產品開發、軟件升級、或是軟件維護。
許多統計資料表明,開發過程每前進一步,發現和修復一個缺陷的平均成本要提高10倍.那么是不是說找缺陷就不重要了呢?當然不是。軟件測試的另一個經濟目標是盡早發現缺陷,降低修復及售后服務成本。顯然,每一個已發布產品中的缺陷除了會影響產品及企業的聲譽外,還會直接增加產品的售后服務成本。無論是派人到現場調試,或研發、發布補丁程序都要遠比在發布前的修復成本昂貴數十倍,甚至數百倍。
五、小結
軟件測試的必要性已經完全為業內決策人士所接受。這是因為軟件工業已經發展到了與其他主要工業相當的規模。經過十幾年的發展,少數天才們手工作坊的世界已經轉化為大工業生產的天下。由于Java的流行,我們更看到了組裝生產線的模式。
在工業生產的傳統行業里,測試是生產的有機組成環節,各道工序的測試、組裝測試、出廠測試及致破壞性試驗是生產目的實現的重要保證。
可以肯定,軟件開發面臨很多的困難,諸如發布時間緊、市場壓力大、投資過高等。這些不能成為擠壓軟件測試投入的借口。因為軟件測試是軟件開以生命周期一個非常重要的部分。筆者認為,對于一些基于產品的公司或組織,軟件測試作為一種投資可能更加適合一些,因為這樣可以節約銷售成本及技術支持成本。
文章來源于領測軟件測試網 http://www.kjueaiud.com/