軟體測試中的行業技術
資深軟體測試工程師應該具備哪些技能是很多軟體測試網站和部落格上的討論重點,稍做總結大概可以歸結為下幾點:測試執行能力,測試設計能力,自動化測試能力,指令碼等測試工具編寫能力,需求分析能力,測試規劃能力,系統分析能力,效能分析能力,測試管理能力等。可以將前四項歸結為測試技術的掌握,中間四項為行業技術能力或理解為特殊領域的技術專長,最後一項即為管理能力。這個結果有些出人意料,行業技術居然與測試技術所有相同的比例,而且從第五項開始,技術的含量好像也越來越高。
事實就是這樣的,測試技術的提高可以通過書籍和技術網站等等途徑獲得資訊,但是業務技術,卻沒有那樣簡單,它是領域技術、領域動態、未來發展趨勢等方方面面的資訊綜合體,雖然它很重要,但往往最容易被忽視。
很多測試工程師在制定職業發展目標的時候,往往傾向於測試技術的不斷提高,其實高質量的軟體測試往往是從軟體的架構測試開始的,針對軟體架構進行的測試要求測試工程師具有根據需求分析確定測試策略的能力和分析系統效能指標的能力。而行業技術恰恰就是提高軟體需求分析能力和系統分析能力的基礎。成為某行業領域的專家,才能從這個領域的專業角度去稽核軟體需求方案、軟體效能測試整體方案設計,完成軟體系統功能問題、效能問題定位和效能優化,記憶體優化及分析資料溢位等,分析系統的安全漏洞等工作。
可能大家看到這裡會覺得有些難以置信,那我們來做了小測驗怎麼樣?讓兩位分別測試網管軟體和手機軟體的測試工程師互換角色,測試的質量會怎麼樣呢?結果常常會是測試的質量沒有做本職行業的時候高。從這個結果可以看出,不是兩位測試工程師的測試技能不夠高或者資歷不夠深,而是他們沒有建立對新領域的認知,無從下手才會導致測試質量的下降。這種對專業領域的認知就可以稱為是行業技術。網管軟體的測試工程師一定會諳熟網路協議等等網路相關知識,而手機軟體的測試工程師又會對手機作業系統等等知識掌握得很透徹,所以當他們負責本職工作的時候都會做得很出色。
從上述的小例子中可以看出,行業技術在測試的過程中扮演了非常重要的角色。所以,當軟體測試工程師想在技術方面取得明顯進步的時候,不妨去深入的瞭解專案組所需要的行業技術,從當前的專案開始培養行業技能,如果有興趣也可以嘗試著做做其他行業的工作,眼光深遠,發展才會更遠。