跟谷歌測試工程師的對話
Alan Faulkner 是谷歌的測試工程師,他的工作對象是谷歌的 DoubleClick 廣告報價管理系統(Bid Manager),這個系統提供讓廣告代理商和廣告客戶在多個廣告上進行報價競標的功能。Bid Manager 是谷歌 2010 年收購的 Invite Media 系統的下一代產品。 Alan Faulkner 的主要工作負責 Bid Manager 系統用來移植數據的組件,這些組件用來把 Invite Media 中的廣告客戶信息轉換到 Bid Manager 系統中。Alan Faulkner 2011 年進入谷歌,工作地點是位于華盛頓的柯克蘭辦公室。
</blockquote>本文的主人公 alan
英文原文:Conversation with a Test Engineer
你是測試工程師,還是編寫測試代碼的軟件工程師?這兩者之間有什么區別?
目前我是測試工程師,但這兩種角色非常的相似。作為測試工程師,你更多的是專注于產品的總體質量和軟件發布的速度,而編寫測試代碼的軟件工程師 更多的是關注測試框架,自動化測試和為測試重構代碼。我想這兩者之間的不同更多的是關注點,而不是能力問題,因為在谷歌,這兩種角色都需要能寫出產品級質 量的代碼。例如,我所做的測試工程師的任務是引入自動化的發布過程,為團隊劃分模塊來提高測試覆蓋率,減少校驗數據正確性時需要的手工操作步驟。
你的典型的一天的工作是個什么樣的情形?
當來到公司,我首先去看哪些代碼審查是需要回復的,看看哪些從技術客戶經理發過來的 bug 是具有高優先級的,然后開始寫代碼。在當前的職務上,我的主要精力是放在提高大規模集成測試和測試框架上的測試有效性和覆蓋率。我也會在我們的產品中增加 一些功能特征,來改進測試有效性。我的時間的 50% 到 75% 會花在寫代碼上或代碼審查上。
你只寫測試代碼嗎?
不是的,我寫的很多代碼會留在發布的產品中。在谷歌做 SET 或 TE 的一個最大的好處是:你寫產品代碼就像寫測試代碼一樣簡單。我兩者都寫。我寫的測試代碼主要是用來改進測試框架,讓開發人員能寫出集成性好的測試程序。我 寫的產品代碼主要是來改進對外部輸入數據的驗證。我還會寫一些來提高可測試性的功能代碼。這些代碼能給產品帶來質量更高的功能特征,避免了讓產品依賴于測 試程序來發現其中的問題。
你用什么語言開發?
測試代碼和產品代碼大部分都是使用 Java。偶爾也會使用 Python 或C++。
手工測試會占用你多少時間?
目前,在這個崗位上,我手工測試的時間少于5%。經過某些探索式的測試能幫助提高對產品的認識、發現某些風險的存在,但這些不會反復的出現,也不多。需要手工的步驟很少,我的任務就行幫助減少這種操作,所以團隊不會讓我去做那些數據遷移中反復的手工測試工作。
你不是給自己的代碼寫測試代碼吧?
在谷歌,測試的任務是在所有工程師間交叉分攤的,并不是只由測試工程師來做。每個人都要為他們的組件寫出單元測試代碼,就像集成測試工作一樣。 這就是說,我寫的測試用例針對的組件并不是我開發的,但這些組件需要有說明如何為它寫測試代碼。這些組件通常牽涉到非常復雜的代碼或需要用新的模擬框架, 例如 Mockito。
開發谷歌的廣告產品,哪些是你喜歡的?
我喜歡我們需要解決的問題中的海量或高性能所帶來的挑戰——從處理海量數據到在毫秒級間實時對大量的廣告請求進行響應。我還喜歡我們產品的影響力,因為這些產品會牽涉到很多的用戶。這是工作在這樣的產品上獲得的回報。
依你的經驗,谷歌的測試工作和你干的其它公司里有什么不同?
我感覺在谷歌,這個角色非常的靈活。在我的團隊里很少區分這是 SET 的那是 TE 的,每個人可以靈活的選擇他們認為最重要的工作去做。例如,我寫了很多的產品代碼,修改了很多產品中的 bug,提高代碼的可測試性,增加在遷移數據中對錯誤數據的可觀察性。同時,谷歌的很多開發人員卻在花大量的時間測試代碼,所以說,測試不是我的唯一任 務。
在谷歌柯克蘭工作區工作和在谷歌總部工作有什么不同?
我真正喜歡谷歌的地方是它的各個辦公區各有自己本地風格和個性。谷歌提倡這樣。例如,位于柯克蘭的辦公區有攀巖和劃船設施,我們辦公大樓里的所有會議室都是以本地品牌命名的。位于西雅圖的辦公室有皮劃艇,而紐約的辦公區里在自主餐廳里有食品車。
谷歌的這種測試文化有前途嗎?
我覺得前途一片光明。我們有很大的靈活性,能對產品的質量和可測試性產生重大積極的影響,能提高產品發布的速度。我們需要快速的產品發布和高質 量的產品發布。問題是我們面對的問題很復雜,而且要求很苛刻。我們需要用技術來確保團隊有有效的測試方式。這是所有在谷歌的測試人員和工作中這個領域的開 發人員的努力目標。
對谷歌的測試工作感興趣嗎?
來自: 外刊IT評論本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!