潘在亮:給業務開發提供黑科技裝備的“測試Q博士”(圖靈訪談)
嘉賓簡介:
潘在亮, 現任騰訊 社交網路質量部測試開發中心組長。加入騰訊之前,先後任職甲骨文、微軟公司測試開發工程師,參與企業級搜尋和Visual Studio產品的測試開發工作。於2009年加入騰訊,參與了企點、PCQQ、手機QQ、QQ空間、QQ音樂、騰訊雲等產品的測試技術改進工作。在測試開發領域擁有超過10年的豐富專案經驗,擅長測試自動化、測試工具開發、研發工具開發和靜態程式碼掃描等領域。
訪談內容:
相對於開發人員(也要寫測試程式碼),測試開發人員在測試方面有哪些更高的要求?
各個公司甚至公司內部各小組對“測試開發”這個角色的定義各有不同,對測試開發人員的要求也各有不同。從我個人來說,測試開發角色主要負責測試效率乃至研發效率的提升,而效率的提升一般是通過自動化和流程的方式來實現的,所以從這個角度來說測試開發人員跟開發人員沒有太大的差別。不過,測試效率主要由測試開發人員負責,需要對被測業務的技術方案和測試方法都有比較深刻的理解。
一個合格的測試人員,理解被測試產品的技術特點和功能特性是必須的,否則就不能有效地測試產品。但測試人員對技術的理解跟開發人員的角度又是不一樣的,開發人員需要了解技術從而能夠高效地開發出效能良好的程式碼,測試人員理解產品的技術是為了更高效地進行測試。除了理解產品的技術外,測試人員還需要掌握測試的方法,比如等價類、邊界值、敏捷測試、探索性測試方法等,這些都可以通過相關圖書的學習進而掌握。
如果用類比方式描述測試開發人員的日常工作,您會怎樣描述?
如果業務開發人員是特工007詹姆斯邦德,測試開發人員就是裡面的Q博士,專門給業務提供黑科技裝備。我們的一款產品曾時不時地跟後臺的傳輸協議產生嚴重的問題,造成crash,但僅僅通過介面的黑盒測試很難將相關的場景構造出來。對此,測試開發人員開發出該產品的協議抓取工具,來修改協議內容,相關的測試場景才得以順利進行。
測試開發人員是不是要有一些“找茬”“搞壞”的心態?
騰訊的測試開發人員一般不會直接負責查詢產品的bug,所以不會存在其他測試人員的“找茬”心態。我個人並不鼓勵測試人員的“找茬”“搞壞”心態。團隊作為整體都是對研發的產品負責、對客戶負責,應該站在客戶的角度思考問題而不是一味追求團隊中個別的成績。測試工作中,測試人員應該遵守相關的業務規範,即使這些規範有時候會對個別人產生一些困擾。
在設計測試計劃、測試用例、操作步驟、重現步驟等工作中,您有哪些特別的經驗和教訓要和大家分享?
騰訊的測試開發人員一般不會直接參與測試計劃、測試用例等工作,這裡沒有什麼特別的分享。
我們的測試開發人員負責測試工具、自動化框架、持續整合方面的開發建設工作。我個人在這方面的經驗也想分享下,希望能對行業內人士有些幫助。首先,測試開發人員的工作需要得到團隊和公司領導的認可並給予足夠的耐心,因為任何的開發建設性工作,都需要在初期投入成本。這些建設都是很基礎的、很必要的,部門內最好能有統一的規劃和實施。缺少必要的溝通的話,你搞你的,我做我的,重複的輪子到最後只能變成浪費。
另外,業界一些人認為測試自動化不就是寫寫簡單的用例,這樣簡單的事情隨便派個人搞搞就好了。如果存在這樣的想法,測試自動化基本上是搞不起來的。測試工具和框架的開發跟其他的產品開發一樣,都需要比較好的開發技術和工程化實施。
自動化測試更適合哪些測試場景?
像Google這樣的一些國外公司會採用自動化測試應對絕大部分的測試場景。國內的實際情況下,一般不建議在產品初級階段、產品形態變化較大的情況下進行自動化測試。產品初級階段和產品形態變化大的時候,雖然也可以使用自動化測試來提升研發效率,但實施的前提是研發團隊具有很高的研發水平,能夠保證應用介面很好地擴充套件,保證介面的穩定性,否則每更新一次版本,大部分的自動化測試用例就要推倒從來。
過多地依賴自動化測試工具,而減少人工測試的投入,是否會導致產品的某些缺陷不易被發現?
就目前的自動化測試技術水平來看,它還不能替代人工測試,尤其是在主動發現bug方面,人的靈活性還是非常重要的。自動化測試更多地用於防止bug的迴歸,以及提升釋出的效率。自動化往往也是其他深層測試的基礎,像壓力測試、效能測試、MTTF測試等,沒有自動化框架的支援深層測試就比較難做到。
隨著機器學習領域技術的逐步成熟,機器學習演算法應用到自動化測試只是時間的問題,到時候很多的手工測試會被人工智慧所替代。
PC端、Web、移動端以及後臺Server端的測試工作有哪些不同?
幾個端的測試從本質上講沒有什麼不同,都是測試一個或多個程式的應用。PC端的介面會比較複雜,因為PC的顯示器較大,允許產品在介面上有更復雜靈活的設計,對測試的要求也更高。移動端需要注意碎片化的問題。這個碎片化主要是指Android系統的碎片化問題,測試人員需要在Android的不同版本、不同手機廠商間做多次測試。另外還要更加註重效能、電量等問題。Web端的測試需要面對比較多的的技術棧,js,php,HTML,json等。Server的測試則會面對比較複雜的網路拓撲結構、複雜資料儲存,以及高可用等挑戰。這些對後臺應用的測試環境搭建會產生很大的挑戰。要解決這個問題需要對後臺程式有更高的可測性要求,在剛開始開發的時候後臺應用就要將可測試性考慮到後臺應用中。
麥思博主辦的上海MPD軟體工作坊即將在5月中旬開幕,我知道您將在會上講授“跨多端測試自動化體系”。可以先給我們透露一下,騰訊內部是怎樣打造跨越多端的全棧自動化測試體系的嗎?
騰訊的很多產品都涉及多端,產品的自動化測試自然需要跨越多端的自動化體系。不過,騰訊內部並沒有一個全公司統一的多端自動化體系。就我所在的社交網路質量部而言,多端自動化體系的搭建主要從兩個方面入手。一個是統一的多端驅動來驅動被測試的應用,另一個是統一的用例編寫、管理方式和系統。這兩個方面涉及的技術點和難點是非常多的,但這兩個方面是不可或缺的,是一個完整的多端自動化體系最重要的兩個組成部分。
我們在社交網路事業群打造的QTA自動化測試平臺主要也是從上面的兩方面入手。Android、iOS端的驅動類庫QT4A、QT4i都是我們自己研發的,這保證了驅動介面的一致性。在UI控制元件的定位和管理方面,我們也都採用了統一的做法。Android端和iOS端的UI控制元件採用QPath格式進行描述。各個端的用例統一採用python編寫,此外用例的編寫格式、程式碼風格也是統一的。
為應對校招的測試開發面試,在校生應該做哪些準備?
我覺得在校生需要做好三方面的準備,一個是需要有比較好的心態,積極的心態。自動化測試會存在失敗的情況並且失敗的次數不止一次,這需要積極的心態才能迎難而上,最終克服困難。二是需要對測試有一定的瞭解,例如邊界值測試等。這裡倒不是要求在校生對測試方法有很深地掌握,畢竟學校裡並沒有這樣的課程。對測試有一定的瞭解主要是希望在校生能有較好的場景分析能力,設計出測試要素。例如分析一個簡單的登入視窗,除了考慮登入密碼的正確與否,還要考慮到使用者名稱的不同格式、不同字元的編碼,不同的字串長度。除了功能之外,是否還能考慮到效能因素。三是要有比較好的程式設計基礎,能夠掌握基本的資料結構演算法。如果不能很好地掌握資料結構演算法,測試工作中就很難理解作業系統、資料庫、網路等方面的技術要點,這對掌握團隊的技術方案更是困難。
更多精彩,加入圖靈訪談微信!
相關文章
- 騰訊測試開發組長 · 潘在亮訪談問題有獎徵集(圖靈訪談)圖靈
- 微軟測試工程師史亮:新的產品,新的挑戰(圖靈訪談)微軟工程師圖靈
- 《Python Web開發:測試驅動方法》作者Harry Percival訪談問題有獎徵集(圖靈訪談)PythonWeb圖靈
- 360前端月影(吳亮)訪談問題有獎徵集(圖靈訪談)前端圖靈
- 鍾冠賢:iOS開發之路(圖靈訪談)iOS圖靈
- 開源先驅魏永明:開源可以給你的(圖靈訪談)圖靈
- 圖靈訪談圖靈
- 6年心得,從功能測試到測試開發,送給在測試路上一路走到黑的你!
- 6年心得,從功能測試到測試開發,送給在測試路上一路走到黑的你。
- 《JavaScript Web應用開發》作者Nicolas Bevacqua訪談問題徵集(圖靈訪談)JavaScriptWeb圖靈
- 訪談嘉賓推薦(圖靈訪談)圖靈
- 《R包開發》作者Hadley Wickham訪談問題有獎徵集(圖靈訪談)圖靈
- 《Flask Web開發》作者Miguel Grinberg訪談問題有獎徵集(圖靈訪談)FlaskWeb圖靈
- “圖靈訪談”微信公共賬號開通了圖靈
- [英]專訪《寫給大家看的設計書》作者Robin Williams(圖靈訪談)圖靈
- 《JavaScript快速全棧開發》作者Azat Mardanov訪談問題有獎徵集(圖靈訪談)JavaScript全棧圖靈
- 移動開發專家Brian Hardy訪談有獎問題徵集(圖靈訪談)移動開發圖靈
- 紀念阿蘭·圖靈誕辰,評選“精彩·好訪談”(圖靈訪談)圖靈
- 因圖靈測試而認識圖靈社群(知道圖靈測試後對未來人工智慧侃侃而談)圖靈人工智慧
- 談談測試工具的開發薦
- Nutz 發起者:不亦樂乎(圖靈訪談)圖靈
- 因圖靈測試而認識圖靈社群(知道圖靈測試後對未來人工智慧侃侃而談)2圖靈人工智慧
- 如何用好 Go 的測試黑科技Go
- “科技貓”聯合創始人古茜:懂科技的女生更性感(圖靈訪談)圖靈
- 2013,做你的圖靈訪談圖靈
- Dave Wooldridge:蘋果應用開發與營銷(圖靈訪談)蘋果圖靈
- Apache Member姜寧:Apache的社群發展(圖靈訪談)Apache圖靈
- 《圖靈的祕密》作者Charles Petzold:我眼中的圖靈機和Windows(圖靈訪談)圖靈Windows
- 談“測試驅動的開發”
- 被圖靈測試圖靈
- [英]Dave Wooldridge:蘋果應用開發與營銷(圖靈訪談)蘋果圖靈
- 我和圖靈訪談的2017圖靈
- 《Android系統服務開發》作者金大佑訪談問題有獎徵集(圖靈訪談)Android圖靈
- 黑科技開戶神器黑科技開戶神器黑科技開戶神器黑科技開戶神器黑科技開戶神器
- 《Docker開發實踐》作者曾金龍:迅雷雲的Docker開發實踐(圖靈訪談)Docker圖靈
- 阮一峰訪談問題有獎徵集(圖靈訪談)圖靈
- 馮怡:我想給大家展示一種可能性(圖靈訪談)圖靈
- 《Android惡意程式碼分析與滲透測試》作者趙涏元訪談問題有獎徵集(圖靈訪談)Android圖靈