1. 程式人生 > >[譯文] Google的測試工程師是怎麼做測試的?

[譯文] Google的測試工程師是怎麼做測試的?

原文標題:What Test Engineers do at Google
釋出日期:美國時間2016-09-12
文章來源:Google Testing Blog
文章作者:Matt Lowrie, Manjusha Parvathaneni, Benjamin Pick, and Jochen Wuttke
文章譯者:丁老九

引言:Google測試團隊裡有兩種角色,TE(測試工程師)和SETI(測試開發工程師),本文主要介紹Google測試工程師的發展歷程和工作內容。

Google的測試工程師(全稱Test Engineer,簡稱TE)專注於使用一系列驗證過的最佳測試方法來促使產品精益求精。我們通過整合資源實現了產品版本的快速測試釋出流程。實現這個流程需要工程師們具備豐富的創造力和技能的多樣性,這樣才能為我們的使用者提供更好的支援。為了保證產品的可靠性,我們將使用者體驗方向的測試也放入流程中。測試工程師的職責看起來相當於團隊的粘合劑,它將一個產品的各個相關人員,包括產品經理、開發工程師、UX設計師、釋出工程師、beta測試人員和終端使用者等人員“粘合”在一起,以確認產品的順利釋出。而實際上,我們每天都在問自己:“我們怎樣才能使我們的軟體開發過程更有效率,能提供讓使用者滿意的產品?”.

一開始我們設立測試工程師的角色是想讓谷歌早期的免費產品(如搜尋、Gmail和Docs)比當時市場上的同類付費產品更優秀。在谷歌早期的歷史中,一小部分工程師認為,通過持續的自動化測試,谷歌的“啟動和迭代”軟體部署方法可以得到改進。通過一些你可能已經聽說過的專案,比如廁所馬桶上的測試測試認證專案谷歌自動化測試大會(GTAC),他們自己決定向公司的每一個團隊推廣優秀的測試實踐。他們的努力使得每個專案都意識到測試的重要性,並主動接入了多種測試環節,例如程式碼覆蓋率測試和效能測試。測試實踐迅速的被全公司認同,工程師為自己的程式碼編寫測試用例成為了一種標準。時至今日,測試工程師仍保持著這個傳統:為所有的產品設定應該達到的質量標準。

從歷史上看,谷歌設立了兩個與測試相關的職位:測試工程師(Test Engineer,簡稱TE)和測試開發工程師(Software Engineer, Tools and Infrastructure,簡稱SETI),這很容易讓人混淆,我們也經常被問到兩者的區別是什麼。其中,SETI更關注整個工程效率的提升,而對TE來說,是要成為把控產品質量的權威。而我們的最終目的,是在整個公司範圍內維護一套測試標準,既能以程式設計方式實現,又能讓所有人信服。

測試工程師是谷歌獨一無二的角色。我們定義和組織自己的工程專案,彌合工程產出與終端使用者滿意度之間的差距。為了讓你更清楚地瞭解TE是做什麼的,這裡有一些我們需要在日常解決的挑戰案例:

  • 自動化一個產品釋出申請的手動驗證過程,這樣開發人員就有更多的時間來應對潛在的釋出阻塞問題。
  • 設計並實現一種自動化的方式來跟蹤並向開發者展示安卓電池的使用情況,以便他們能立即知道新功能是否會導致使用者電池耗電過快。
  • 量化一個產品要使用的十億級的再生資料集是否比現有的資料集質量更好。
  • 寫一套自動化測試來驗證基於使用者興趣顯示給使用者看的內容是不是達到了可接受的標準。
  • 閱讀新需求的設計方案,並就如何和在何處構建可測試性提供建議。
  • 通過我們的反饋跟蹤系統調查使用者提交的相關堆疊資訊,跟蹤並搜尋程式碼庫定位到問題所在位置。
  • 與開發協作一起確認產品崩潰的根本原因,然後新增的對應的測試,以防止將來出現類似的崩潰。
  • 組織一個特別工作小組進行測試諮詢服務,例如在測試可訪問性時,向公司內部的團隊提供最佳實踐。

預告:
下篇翻譯《Google的測試開發工程師是怎麼做測試的?》