再談軟件測試人員的發展方向


  大概在五年前,我寫了一篇博客,題目叫《軟件測試員----你的路在這里!》,大概論述了軟件測試人員發展的幾個方向。

      如果你不想轉開發,轉管理,轉產品,或自己創業買煎餅果子的話。那么說明你是對測試是真愛。測試需要掌握的測試技術太寬泛了,所以,我們必須要選擇一個方向。五年過去了,我想再試着寫寫對這幾個方向的認識。

 

自動化測試

 

  自動化測試有廣義和狹義之分,廣義上一切使用工具或代碼來代替手工測試都可以認為是自動化測試;不過,在測試圈中,我們一般狹義的來理解自動化測試,基於UI層的自動化測試技術。

      如果想做好自動化測試,我覺得測試人員應該達到一般開發人員的水平。如果是名普通的Web開發人員,想做好本職工作需要掌握一門編程語言 + Web框架 + 數據庫;如果一名普通Web自動化測試人員,想做好本職工作需要掌握一門編程語言 + 單元測試框架 + selenium(注 :Selenium已經成為了做Web自動化的不二之選了)。Web開發人員想進一步提升,可能需要學習代碼重構,設計模式,SQL設計與優化。Web自動化測試人員想進一步提升,也需要學習代碼重構,設計模式,基於Selenium的二次封裝等。

      所以,在我看來一名合格的Web自動化測試基本上等同一名Web開發人員的水平。只不過,后者寫的是功能代碼,前者寫的自動化測試代碼。

      除此之外,還有接口自動化、移動自動化等,基本上也等同相關開發人員的水平。

 

性能測試

  性能測試,相信每個測試人員都或多或少的接觸過性能測試。表面上看,它的入門非常簡單,主流的LoadRunner和Jmeter都提供了錄制腳本的功能,錄制--> 設置虛擬用戶數 --> 運行,然后一個性能測試就完成了。筆者的首份測試工作的第二任務也完成一個性能需求;當時磕磕絆絆的花了三四天時間搞定,性能測試報告也做的有模有樣。

      但如果想做好性能測試,我覺得測試人員應該達到一般架構師的水平,至少比一般的開發人員更了解系統的整體架構。

      當然,這個架構也分兩說,對於一般的項目,市場上都有成熟的方案,比如LAMP,再加上Nginx和redis,也有很多成熟Web框架,所以,開發人員只需要根據業務需求把功能實現了就好,除非是特別新的開發新手,犯一些低級的錯誤導致性能問題,一般的性能就是驗證當前系統的能力,增加服務器也是最便捷的手段。

      另一類就是對系統的性能有極高的要求,比如證券交易系統,銀行系統,網上購票系統這些,這些一般用的架構和方案就不是我們常見的了。那么,對性能測試人員的要求也非常高。聽一朋友說,性能測試環境與線上正式環境是一模一樣的配置,單這一點,一般的小公司也玩不起。

      所以,想成為一個牛x的性能測試人員,朝着的架構師的方向努力吧!最好能到億級用戶、百萬並發的項目和團隊中磨練。

 

安全測試

  關於安全測試,我知道很少,只能簡單的談談。安全測試是主流中的非主流,“主流”指的是它是測試技術的一個主流方向,“非主流”是指在我看來,對這個技術的研究和學習沒有什么固定的章法,想要有所成就需要一些天資和悟性。

      曾幾何時,我接觸到第一位安全測試工程師,他教我們用AppScan工具掃描,晚上下班的時候開着掃描,第二天把掃描出的問題給開發人員分析。我以為安全測試不過如此嘛!

      最近這家公司前后接觸到兩位安全測試工程師,人家基本不用工具的好么!前者給我們演示用SQL注入去拿到一個網站的后台管理員密碼,還是覺得很酷的,對了,他的Python語言也用的66的。后者告訴我主要的安全手段就是代碼審查;你要對項目所使用的編程語言和框架里面的某些方法/函數非常熟悉,知道某些方法/函數在怎樣使用時會存在安全隱患,單這一點我也覺得很難,這個方法我會用,我怎么知道在什么情況下引發漏洞?除非我遇到過。

     (題外話,我跟這兩位安全工程師關系都挺好,前者一直是飯友,常常中午一起吃飯;后者旅游時常住一個房間,兩人能探討人生到很晚,可惜未得他們身上學到半點皮毛,遺憾!)

 

白盒測試

  白盒測試給測試人員去做,有利有弊,整體來說,我不太贊同由測試人員完成。

      白盒測試的主要工具就是單元測試框架了,這個真沒啥難的,如果你一點編程基礎,我可以一個小時把你教會。

      測試人員做白盒的優勢就是具備測試思維,在設計測試用例時考慮更加全面;但難點也很明顯,和開發一樣熟悉被測代碼,這一點有難度,我在做接口測試的時候,曾花好幾個小時去理解開發寫的一個接口的邏輯,明顯覺得自己智商有點不夠用。而且,你可能需要同時熟悉2~3位開發人員的代碼。

      開發人員去寫單元測試,拋除“盲目自信”“沒時間”“懶”等因素之外,優勢非常明顯,沒有誰比自己更熟悉自己寫的代碼了,他們只需要掌握單元測試框架的用法和一些常用的測試方法,就可以很快的把單元測試寫完並全部運行通過,而且發現bug之后,修改起來也非常快速。

      所以,我覺得我們更應該教開發人員寫單元測試,而不是幫他們去寫。

 

 

----------華麗的分割線----------

本篇博客由測試圈TC首發,轉載請注明出處。更多測試資訊,原創測試文章和視頻,掃我!掃我!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM