用別的眼光去感悟軟件測試[1] 軟件測試
曾經對軟件測試很輕視,因為我那時很無知,只是一名普通的中國程序員,這也是那時絕大多數程序員的心態,那時中國程序員最講究“編程才是硬道理”。
如今卻非常熱愛軟件測試,包括軟件測試工具,方法,理論,技術。因為我在3年的測試工作中,深刻體會到軟件測試的重要性和趣味性。此時,我已經跳出了“小程序員”的圈子,以軟件系統工程的更大視角審視軟件測試這項工作。
很長時間以來我一直被下面的問題而困惑,有些問題至今仍然只是具有膚淺的認識,而且,我感覺我做的測試項目越多,閱讀的測試書籍越多,我越感到我對軟件測試理解的越膚淺。因為我越來越感受到軟件測試的廣度和深度的無限性,它像大海寬廣,像宇宙那樣深邃。 為什么要進行軟件測試?軟件測試的前途如何?軟件測試的工具和思想誰更重要?軟件測試的最高境界是什么?
軟件測試是保證軟件質量的重要活動,是軟件項目實施的不可缺少的環節。軟件測試的直接目的是發現軟件中存在的缺陷。此為測試的有效性。
在軟件項目沒有結束之前的全部軟件缺陷主要由軟件開發人員負責,因為軟件缺陷來自程序員的編程。軟件項目結束后的軟件缺陷主要由軟件測試人員負責,因為軟件測試人員沒有在軟件發布之前的測試中沒有發現隱藏的錯誤。 但這不是絕對的,因為軟件項目是一個系統工程,軟件質量牽扯到多個部門和人員,以及需求分析,設計,編碼等各個環節和過程。軟件測試只能證明軟件存在缺陷,不能保證軟件沒有錯誤。
軟件測試不是萬能的,因為不可能發現全部的軟件缺陷,而且軟件的功能和性能不是由測試決定的。此為測試的有限性。
軟件測試目前主要以手工測試為主,自動測試工具雖然很多,但實際應用的廣度和深度還有很大潛力,自動將有很大的發展空間!。
軟件驅動開發的觀點說明了測試與編程的關系,測試應該貫穿于軟件開發的整個生命周期,編程只是軟件開發的一個環節。但往往大家非常重視軟件編程,把測試作為編程后的一個輔助環節。這是典型的本末倒置。 軟件測試的缺陷管理流程非常重要,報告的軟件缺陷的質量,應該由他人驗證,做到責任明確,方法簡便可行。
軟件測試技術不斷進步,但總體來看,國內的測試重視程度還不夠,但已經發展很快。差不多兩年之前,國內計算機書店中關于軟件測試的書籍非常稀少,如今卻琳瑯滿目,異彩紛呈。
軟件測試是個可以很快入門的職業,門檻不高,但是,不要認為什么人都可以做好軟件測試。因為會做和做好是兩個概念。軟件測試人員最好具有軟件開發經驗,理解軟件工程的知識。這是提高軟件測試能力的基礎。對于剛剛畢業的學生,如果希望今后從事軟件開發,那么,先從事一段時間的測試可能更有利于今后的編程。而對于具有多年編程經驗的程序員,如果改行做測試,更容易提高技術。 軟件測試不是孤立的活動或過程,需要開發和市場人員的參與和交流,需要軟件質量保證人員SQA的積極配合和溝通。
軟件測試的技術不斷進步,與具體測試技術相比,掌握測試的核心思想比具體技術更重要!測試的最高境界在于運用最簡單有效的測試技術,最大限度的發現軟件缺陷!
應當承認,目前國內的軟件測試工程師的地位和待遇仍然很低,而且不少測試人員存在浮躁的心態(我甚至感到整個軟件行業始終存在著浮躁的泡沫)。如何改變這種局面,這應該是個漫長的過程。當整個IT業真正以客戶為上帝時,當軟件質量成為決定企業生存和發展的決定因素時,當軟件測試工程師的測試工作給軟件企業帶來更大的經濟效益時,軟件測試工程師才會得到應有的尊重!
軟件開發是一項復雜的、創造性的協作式游戲。作為游戲它自然存在著樂趣,所以程序員們才會樂此不疲,前仆后繼。首先、這種快樂源于一種創造事物的快樂。其次、這種快樂來自于一種開發出對別人有用的東西時所帶來的滿足感。第三、快樂源自開發過程中,親眼看到軟件按自己預先設想的那種效果運行時所帶來的迷人魅力。第四、快樂源自開發過程中持續學習的快樂。最后、快樂源自開發過程中,我們能象詩人一樣,僅憑自己的想像,來建造自己的城堡時帶來的快樂。編程的快樂在于它不僅滿足了我們內心深處進行創建的渴望,而且還喚醒了每個人內心的情感。不幸的是,同樣作為游戲它也有苦惱的一面:首先、苦惱來自追求完美主義。其次、苦惱來自總是由他人來設定目標、供給資源、提供信息。第三、苦惱來自于尋找瑣碎的BUG卻是一項枯燥的、重復性的活動。第四、人們通常希望在項目接近結束時,能收斂得快一些,然而,情況卻是越接近完成,收斂得越慢。最后、苦惱來自當投入大量的辛苦勞動后,產品發布時卻面臨著陳舊過時的危險。作為軟件開發者,我們別無選擇,只有適應它們,就這樣痛并快樂著地面對每一天。
文章來源于領測軟件測試網 http://www.kjueaiud.com/