談談 Google 的 Test Certified

轉載請聯繫做者,謝謝!

本文簡單介紹下Google的Test Certified。html

Test Certified(後文簡稱TC)是Google內部的一個認證項目,在8年的時間裏取得了多個里程碑,有1700+的項目註冊,其中1200+得到了1到5級的認證,578名導師參與。Test Certified最先起源於2006年,經過多年的實踐,在Google的不少項目中起到了積極的做用,Test Certified使用5個級別的規範來定義一個項目的測試健康度,以此來促進開發人員將測試看成軟件開發的一部分,尤爲是單元測試。現在這個目標已經達成,TC在今年光榮的退休了,啓用了新的標準——Project Health,也許未來有機會能聊一聊。less

 

 

 

TC Level # Projects
1 564
2 316
3 204
4 97
5 122

什麼是Test Certified?
測試認證項目包含一系列遞增的認證級別,每一個級別定義了一個可衡量的測試目標。參與的團隊達成的目標越多,得到的級別越高(是否是有CMMI的感受,不過這是一個鼓勵開發測試的項目),它是一個改進測試實踐的項目。單元測試

爲何Test Certified?
測試認證計劃基於如下一些前提:測試

  • 越晚發現bug,修復的成本越高
  • Google沒有大規模的手工測試團隊,即便有,也更願意經過自動化來解決問題
  • 開發人員測試來提早發現bug是一個相對便宜和有效的方式
  • 沒有一個Google本身的測試標準來讓工程團隊遵照

咱們相信良好的測試方法是有效的軟件開發的重要組成部分。測試認證計劃是促進測試做爲工程團隊的一種文化,經過指導來養成工程團隊的測試習慣。ui

你嘗試解決哪些問題?
咱們想定位出Google是否有以下問題:設計

  • 缺少工程測試文化。參與測試認證計劃團隊的增長,可讓其餘團隊提升對測試的重視。
  • 缺少標準,團隊不知道從哪裏開始。經過測試認證的階梯,咱們給團隊一個清晰的實現目標的層級結構。
  • 缺少指導,如何提升團隊的測試技能。測試導師、文檔和列表提供指南。

咱們但願每一個團隊本身來決定如何以及什麼時候測試他們的代碼。code

有什麼好處?
Bugs是橫在開發者和用戶之間的一大障礙,咱們花了時間和金錢來創造它,卻還要花更多的時間和金錢來定位、研究和修復它。而測試是已知減小缺陷的良好方式。
改進開發過程,更低的成本,更少的缺陷,更快的發佈,更快樂的工程師。
(這裏老調重談,由於是06年定義的你懂得就好)htm

可衡量的改進
下面是參與計劃的團隊能夠得到改進的地方:blog

  • 更少的緊急發佈
  • 更少的失敗構建:冒煙測試能夠減小發生
  • 更高的產品信心:經過調查反饋測量
  • 更高的變化率:團隊克服對變化的恐懼(擁抱變化,某司的口號)
  • 更少的損壞:404,未處理異常等
  • 下降複雜性
  • 更高的缺陷修復率

測試認證標準(分爲五級)生命週期

 

 

Level 1

  • Set up test coverage bundles
  • Set up a continuous build
  • Classify your tests as Small, Medium, and Large
  • Identify nondeterministic tests
  • Create a smoke test suite

Level 2

  • No releases with red tests
  • Require smoke test suite to pass before a submit
  • Incremental coverage by all tests >= 50%
  • Incremental coverage by small tests >= 10%
  • At least one feature tested by an integration test

Level 3

  • Require tests for all nontrivial changes
  • Incremental coverage by small tests >= 50%
  • New significant features are tested by integration tests

Level 4

  • Automate running of smoke tests before submitting new code
  • Smoke tests should take less than 30 minutes to run
  • No nondeterministic tests
  • Total test coverage should be at least 40%
  • Test coverage from small tests alone should be at least 25%
  • All significant features are tested by integration tests

Level 5

  • Add a test for each non-trivial bug fix
  • Actively use available analysis tools
  • Total test coverage should be at least 60%
  • Test coverage from small tests alone should be at least 40%

爲何退休

  • 團隊成員的測試習慣已經養成
  • 標準是靜態的,級別達成後團隊可能沒有再進一步的動力,甚至項目實際狀況已經降級了
  • Project Health的出現,PH能夠自動且動態的天天無需人工干預的考量項目的健康度(PH是整個生命週期的考量,設計到開發、測試、發佈和部署)

參考:
https://mike-bland.com/2011/10/18/test-certified.html

相關文章
相關標籤/搜索