[心得 ]How Google Tests Software

前言

身為一個菜鳥的工程師免不了都對於GOOLE的開發及測試作法感到有興趣,在line社群中意外的得知了這本書就從海鮮拍賣上拉了古書翻譯本下來

Chapter 1 - gooole 測試軟體介紹

  1. goole是一間奠基在創新與速度上的公司,在這樣的環境下進行的測試比須非常敏捷,有時邊開發邊寫測試會讓兩者交織,有時測試根本就是獨立進行
  2. 測試不會造成摩擦而會讓創新與開發的速度慢下來
  3. 別雇用太多的測試者(品質是開發者需要去維護的)
  4. goole重視品質勝過功能
  5. 測試必須是開發過程中不可被忽略的面向,而開發與測試的融合就可以達到品質的要求
  6. 組織分工
  • SWE(software engineer)
    1. 建立設計文件
    2. 設計架構
    3. 撰寫TDD與單元測試
  • SET(software engineer in test)
    1. 以開發者角色
    2. 檢視設計且特別注意程式品質與風險
    3. 編寫單元測試框架與自動化
  • TE(Test Engineer)
    1. 以使用者角度
    2. 撰寫自動化腳本的程式碼,模擬使用者情境的程式碼
    3. 組織整體品質實作
    4. 解釋測試結果
  1. goole是通常會製作出”最小可用產品”
  2. goole使用小,中,大測試來替代程式碼、整合與系統測試,用意是強調範圍比形式更加重要

Chapter 2 - 測試軟體工程師

  1. 編寫功能碼與測試碼所隱含的是不同類型的思考
  • 功能碼著重在創造與思考使用者、使用案例與工作流程
  • 測試碼著重的則是破壞與編寫可以干擾使用者並中斷其工作流程的程式碼
  1. 所有工程師都必須重複使用現有的程式庫,除非有正當的理由對於特定需求
  2. 所有共享程式碼必須都要能容易被找到與研讀
  3. 相依性必須清楚的呈現而且不容忽略
  4. 如果有工程師找到某件事更好的處理方式,要求他去條整現有的程式庫並協助相關專案遷移到新的程式庫上面,當然獎勵機制是必須的
  5. goole很重視code review,特別是通用程式碼
  6. 平台相依性必須要盡量降低(每位工程師都配給到相同的DEV環境)
  7. 在軟體變得重要之前,品質並不重要
  8. 過度投資在模擬環境自動化工程上,常會讓你被產品某項特定設計所限
  9. 小型測試可增加程式碼的品質,中大型測試可提升產品的品質
  10. 70/20/10 法則,小中大型測試的比率差異

結語

未讀完,等看完後補上