轉載請聯繫做者,謝謝!
本文簡單介紹下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