隨著中國軟件業的迅猛發展,軟件產品的質量控制與管理正在成為企業生存與發展的核心。日益激烈、復雜的商業環境使得企業的IT系統需要有更快的反應速度和更高的穩定性。解決IT系統的質量問題,減少因為軟件本身的質量而引發的問題已經越來越被人們所關注。
而時下的軟件測試人才職場正面臨著粥多僧少的尷尬局面。業內專家表示,軟件測試行業已經顯現出實際需求與人力資源之間的尖銳矛盾,幾乎所有的IT企業在軟件產品發布前都需要大量的質量監控工作。2005年4月,權威專業人才招聘網站——中華英才網發布的最新一期的IT職場人氣排行榜顯示:IT人才仍然是企業需求量最大的人群,其中軟件測試工程師、高級程序員、產品項目經理位列“三甲”,成為IT就業市場最新風向標。越來越多的國內IT企業逐漸認識到測試環節在軟件產品研發過程中的重要性,軟件測試工程師也成為IT就業的新亮點,正處于地位高、待遇高的“雙高”地位。
在軟件業發達國家,軟件測試早已成為軟件開發的一個有機組成部分,在整個軟件開發周期中占很大的比例。一般說來,以IE4.0為例,代碼開發時間為6個月,而穩定程序花去了8個月的時間。從投入的資金和人力物力來看,測試和修改花去的時間要占總投入量的60%以上。對于一些要求高可靠性、高安全性、高穩定性的軟件,測試的費用甚至相當于開發設計總費用的3倍以上。
IDC在2004年發布的軟件質量管理調研報告中指出,由于商業環境和軟件產品的日益復雜,質量管理軟件的市場需求將會逐漸增強,預計到2008年,該領域市場全球銷售額將達到13.39億美元(2003年市場銷售額為6.59億美元)。EIU(英國經濟學家商情組織)2004年底公布的調研結果也顯示,在亞太、歐洲和中東地區的21個國家中,有86%的被調查者(調查對象為高級IT經理、IT經理、CIO 、IT主管和技術主管)認為他們使用的應用軟件過于復雜,其中,60%的澳大利亞被調查者認為復雜的應用軟件是他們所面臨的最大困難。另外,在其對2005年IT投入領域的調查中,47%的被訪者表示要重視應用管理,41%的被訪者表示要加強IT 管控,38%的被訪者表示要提高應用軟件的測試與實施。
美國Mercury公司在這種背景下應運而生。作為獨立的第三方測試公司,測試工作根據相應的軟件要求并依據相應的標準進行,提供有效的測試報告。這種為電信、航天、政府等重要部門和領域的軟件進行安全性的第三方測試,擁有著良好的市場,如今Mercury公司占據著軟件測試市場的半壁江山。
然而,國內軟件業因為對軟件質量控制的重要作用認識比較晚,所以目前還沒有形成系統化的軟件測試人員的需求供應鏈,據《中國教育報》稱,我國目前軟件從業人員缺口有40萬人,并且在未來5到10年中,我國社會對軟件人才需求的量還將繼續增大,即使按照軟件開發工程師與測試工程師1:1的崗位比例來計算,未來幾年我國對于軟件測試人員的需求也有數十萬之眾。軟件測試人員的“供遠小于求”的現實問題正影響著我國軟件業的健康發展。
那么,什么是軟件測試呢?軟件測試工程師平時的工作都有哪些?軟件測試并不是簡單地對開發出來的軟件查漏補缺,而是一項需要具備較強專業技術的工作。在具體的工作過程中,測試工程師要利用測試工具按照測試方案和流程對產品的性能、穩定性、安全性、可靠性等進行測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估,以確保軟件的質量。
眾所周知,軟件,特別是像Windows這類的大軟件,是大量的源代碼組成的,一套成熟的ERP產品也有數百萬行源代碼,而每一行源代碼都可能影響到程序的其他部分,并且每個部分之間又可能相互影響。可能一個小小的疏漏或者錯誤就可能導致整個系統的崩潰。2003年9月1日,澳大利亞電信公司(Telstra)移動網絡上的一個主要軟件出現故障,造成了大量的電話串線以及語音郵件服務器的錯誤聯接,使成千上萬的用戶受到了影響。2004年的全球數百萬的電腦系統崩潰,就是由“沖擊波”和“振蕩波”針對Windows操作系統的一個小小的漏洞所造成的。除此之外,軟件產品的不確定性因素過多,如:用戶需求的不確定性、設計的不可預測性。
作為一名合格的軟件測試工程師應該具備哪些素質呢?雅虎中國品質保證部經理鮑海燕認為,軟件測試工程師首先必須具有電子、電機類相關專業知識背景。第二,還應有三年以上的實際操作經驗,這也是對軟件測試負責任的表現。第三,軟件的使用者千差萬別,軟件在使用過程中遇到的各種現象也是千差萬別的,所以要求軟件測試工程師需要具有一些逆向思維的能力。這是作為一名優秀的軟件測試工程師最基本的素質。第四,要有一種窮追到底的精神。第五,善于溝通,軟件測試人員與開發人員搞好關系,這對于提高整個軟件項目質量是十分重要的。第六,軟件測試技術隨著時間的變化也在做一些提高和改進,作為一名優秀的測試人員要善于利用書籍、網站、論壇、同事間交流等各種途徑不斷提高自己的軟件測試水平。第七,當軟件測試人員發現軟件中存在缺陷的時候,往往要書寫缺陷報告,作為一名優秀的測試人員提高自己的寫作能力是非常必要的。
一名合格的軟件測試工程師必須經過嚴格的系統化職業教育培訓。作為軟件正式投放市場前的質量把關人,如果沒有專業的技術水準、沒有高度的工作責任心、沒有持之以恒的耐心和細心以及自信心,那么他將是無法勝任這一重要工作崗位的。
目前,國內少數的IT培訓機構已經開始認識到測試工程師的供需矛盾,開始針對軟件測試行業人才需求啟動系統化的專項培訓。我國軟件企業人才將日趨合理化,這無疑為我國軟件行業整體品質的進一步提升創造了良好的基礎。