Cody Blog

Software development

使用 Attributes-Components-Capabilities(ACC) 來制定敏捷測試計劃

這套方法是記錄在《How Google Tests Software》 一書之中,我覺得蠻不錯的,分享一下︰

Attributes-Components-Capabilities(ACC) 是Google團隊使用的測試建模的方法,可以視為快速譔寫 Test Plan 的一種方式。據 Jame Whittaker 的講法,一份ACC的完成時間約為 10~30 分鐘,如果達不到,代表自己對於要測的系統不夠了解。

目前 Google 己經把這個方法實現在 Google Test Analytics (GTA) 這套系統之上,更棒的是 GTA 目前己經 Open Source 出來了,而且有一個公開的沙箱網站,任何人都可以上去快速體驗一下ACC的魅力。

ACC 內容

ACC主要的內容就是依照產品的 Attribute(特性), Component(元件), Capability (能力) 的三者,分別依照順序,一步一步來分析我們到底要測什麼,該測什麼,什麼要先測等等問題。下面分別介紹ACC三者的意義︰

  1. Attributes: 產品的特色,是產品的形容詞。例如︰快,安全,穩定,好用。這個清單說明為什麼顧客要用我們的產品,而不是其它的競爭者的。

  2. Components: 產品的元件,是產品的名詞。例如︰資料庫,通知系統,使用者..等等。這個清單列舉出整個系統中的元件,約10個左右為宜。

  3. Capability: 產品的功能,是產品的動詞。例如︰分享照片給朋友,新增好友,收到朋友訊息通知。

關於 Attribute 跟 Componet,這邊書中是舉Google+為例︰

Attribute :

  • Social: Empowers users to share information ...

How Google Tests Software ?

這本書的作者是在軟體測試界很有名的 James Whittaker,以 How to break xxx 系列跟 Exploratory Testing 聞名。這本是他在Google期間完成的著作。可惜他己經在2012年3月左右離開了Google,發表了一篇Why I left google/中文翻譯。從微軟到Google,最後又回鍋到微軟了。文中大體的原因就是Google把創新精神丟掉,而只專注在廣告上,不再是一家是以技術優先導向的公司。但是這些還是毫不影響Google在軟體界的王者地位。

Google跟微軟在軟體測試上的策略很不一樣。傳統上,微軟的開發與測試人員比例大概是1:1左右。小弟的公司也是如此。但是Google專職在測試的人員,就明顯少得很多。我想從本書找到,如果專職測試人員少的話,那麼整個軟體開發流程會變的如何?其實,微軟在2008年也有出一本拿自己公司名稱當招牌的測試書 How We Test Software at Microsoft,這本有點厚,之後找個機會來看。以目前軟體公司的發展看來,也許之後就會看到一本以 Facebook 為主角的測試書了。

Ch1. Introduction to Google Software Testing

  • 在 Google,測試工作是由一個中央的組職稱為 Engineering Productivity 來負責。包含 Developer 跟 Tester tool chain, Release engineer 。從 Unit test 包到 Exploratory testing。

  • Google 在2001年時,約有200位開發工程師,但是只有3位測試工程師,那時開發工程師就必需為自己寫的程試的品質負責。那時TDD跟JUnit才準備流行,所以測試主要以 ad-hoc 為主。

  • James 常給人的忠告︰「不要顧用太多測試員工」,Larry Page︰「Scarcity brings clarity (意指︰在缺乏資源的情況時,會有清楚的目標;銀彈不足,才會想辦法彈無虛發 ...