如何成為一個優秀的軟件測試工程師
在過去半個世紀,軟件獲得了空前的發展,逐漸滲透到各個領域,從最早的科學計算、文字處理、數據庫管理、銀行業務處理到工業自動控制和生產、辦公自動化、新聞媒體、通信、汽車、消費電子、娛樂等等,軟件無處不在,改變了人類生活與生產方式。隨著計算機軟件在各行各業的普及應用,人們對軟件質量的要求也越來越高,專業化和多樣化的特點越來越顯著。但同時,我們看到軟件產業還不夠成熟,軟件質量狀況不容樂觀,軟件在運行和使用過程中出現的問題還比較多。例如,2008年互聯網web發展十大失敗的事件中,其中90%的失敗都是由質量問題造成的,與“宕機”、“停機”、“崩潰”等一系列嚴重的質量問題聯系在一起。
軟件質量一直是軟件工程中的一個焦點,成為人們幾十年來不斷研究、探索的領域。為了改善軟件質量,人們不僅從企業文化、軟件過程模型、需求工程、設計模式等不同方面來獲取有效的方法和最佳的實踐,而且開始重視軟件測試、在軟件測試上有更多的考慮和投入。雖然質量是內建的,但軟件測試依舊承擔著非常重要的作用。軟件測試自身也在發生變化,已經不再只充當門衛——在軟件發布之前進行檢驗,而是正在成為一個持續的反饋機制,貫穿軟件開發的整個過程,盡早地發現問題,降低開發成本,提高軟件開發生產力。軟件測試人員不再是軟件開發的輔助人員,而是軟件開發團隊的主體之一、積極的參與者。從項目開始的第一天,測試人員就參與項目需求和設計的討論、評審等各種活動,盡早發現軟件需求定義和設計實現上的問題,及時發現軟件項目中存在的質量風險。軟件開發團隊必須盡可能地在交付產品之前控制未來的質量風險,這就必然需要依賴于卓有成效的軟件測試。將傳統的程序測試的狹義概念擴展到今日業界逐漸認可的、廣義的軟件測試概念,測試涵蓋了需求驗證(評審)、設計驗證(評審)等活動。軟件測試貫穿整個軟件生命周期,從需求評審、設計評審開始,就介入到軟件產品的開發活動或軟件項目實施中,和其它開發團隊相互協作、相互補充,構成軟件生命周期中的有機整體。
軟件測試不是一項簡單的工作,遠比人們所直觀想象的要復雜。高效、高質量地完成一個軟件系統的測試,涉及的因素很多,也會碰到各種各樣的問題,并且要在測試效率和測試風險之間找到最佳平衡點和有效的測試策略,這些都需要測試人員一一克服。要做好軟件測試,不僅需要站在客戶的角度思考問題,真正理解客戶的需求,具有良好的分析能力和創造性的思維能力,完成功能測試和用戶界面的測試,而且能理解軟件系統的實現機理和各種使用場景,具有扎實的技術功底,通過測試工具完成相應的性能測試、安全性測試、兼容性測試和可靠性測試等更具挑戰性的任務。軟件測試主要目的是發現軟件中的缺陷,堅持“質量第一”的原則,在實際操作中會遇到一些阻力,需要測試人員去克服。從這些角度看,要成為一個優秀的測試工程師,其實比對設計、編程人員的要求還要高,不僅要體現高超的技術能力,如系統平臺設置、架構設計分析、編程等方面的能力,而且要展示自己的業務分析能力、對客戶需求的理解能力和團隊溝通協作的能力。
文章來源于領測軟件測試網 http://www.kjueaiud.com/