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 and what they’re up to.
  • Expressive: User can express themselves through the features
  • Easy: Intuitive. Easy to figure out how to do what you want to do
  • Relevant: Show only information the user care about
  • Extensible: Capable of integrating with Google properties and third-party site and application
  • Private: User’s data won’t be shared.

Components :

  • Profile: Information and preferences for the logged in user
  • People: Profiles that the user has connected with.
  • Stream: A ranked stream of posts, comments, notifications, photos, and so on.
  • Circles: Groups to put contacts into “friends”,”coworkers”, and so on.
  • Notifications: Indicators for when you are mentioned in a post
  • Interest or +1: Indication for user likes
  • Posts: Buzz posts from the users and their contacts
  • Comments: Comments on posts, photos, videos, and so on
  • Photo: Photos uploaded by the users and their contacts

當有了Attributes跟Components之後,接下來就是列出目前系統所所擁的功能。而這邊強調的是,每一個功能背後一定要找了一個而且是唯一一個的Attribute,來代表這個功能所要達到的目的。

Capabilities:

每一個Capability,說明了一個Compoent產生的動作如何達成一個Attribute,也就是Capability是讓Component跟Attribute產生連結。 所以ACC方法的流程就是我們先想 Attribute,然後再找 Components,最後再依照現有的 Capability 功能來找出對應的 Attribute 跟 Components 分別是什麼。

在 Google 的ACC中,我們可以產生一個二維的表格。來展現Capability,以Google+為例,在此簡化表格,內容是依照目前Google+的功能列舉出來的︰

Social Easy Private
Profile 分享給朋友自己的個資 很容易更新自己的個資 用户可以保密隱私個資
People 使用者可以連結其它使用者 容易管理好友 用戶可以保密交友圈資料
Photos 1.使用者可以分享照片給其它使用者2.照片可以加上其它使用者的資訊 1. 容易上傳照片 2. 容易從別的來源匯入照片 照片只給有權限的人公布

橫軸是 Attribute,緃軸是 Compoent,而格子裡面就是 Capability

基本上這個表格產生出來之後,基本上就完成了大部份的內容。接下來可以直接針對每一個Capability使用不同的測試案例設計方法來產生測試案例。另外也可以拿來做 Risk Analysis。

Risk analysis

在GTA中,Risk 由兩個因素組成︰Frequency of Failure 跟 Impact 兩者組成。每個 Capability 都可以自己設定該項目的掛掉機率跟掛掉影響。最後就可以產生一個 Risk Heat Map,這邊是我自己在網站上練習的結果,這可以讓我們知道那些Capability是最重要的,可以先開始測試。

ACC使用要點

  • 要隨時更新,反應最新的現況
  • 要精準表達使用者到底想要什麼
  • 讓測試的重點(風險) 可以借由 Heat map來展現

ACC可以視為一種Agile style的Test Plan設計方案,制定速度快,可做風險分析,是測試案例設計的一個好的起點。有現成OpenSource的系統︰GTA,可直接放到Google App Engine上使用。

延伸閱讀 :

google agile

Related Posts

Comments