ACC(Attributes Components Compatibilities)是Google測試團隊使用的一種建模方法,用來快速地建立產品的模型,以指導下一步的測試計劃和設計。在Google內部,ACC得到較普遍的應用,一些工程師還開發了支持ACC模型的Web應用,并將其開源。本文將介紹ACC的內容,所引用的Google+的例子摘錄自《How Google Tests Software》一書。此外,本文還將使用啟發式測試策略模型(Heuristic Test Strategy Model,簡稱HTSM)來分析ACC。
運用ACC建模的第一步是確定產品的Attributes(屬性)。按照谷歌的定義,Attributes是產品的形容詞(adjectives),是與競爭對手相區別的關鍵特征。按照敏捷開發的觀點,Attributes是產品所交付的核心價值(values)。從HTSM的角度,Attributes位于HTSM->Quality Criteria->Operation Criteria,隸屬于面向用戶的質量標準。
Google+的Attributes如下:
Social(社交):鼓勵用戶去分享信息和他們的狀態
Expressive(表現力):用戶可以運用各種功能去表達自我
Easy(容易):讓用戶以直觀的方式做他們想做的事
Relevant(相關):只顯示用戶感興趣的內容
Extensible(可擴展):能夠與Google的已有功能、第三方網站和應用(Application)集成
Private(隱私):用戶數據不會泄漏
ACC以Attribute開始,是產品競爭的自然選擇,也符合Google的開發實踐。在Google的項目中,開發人員和測試人員的比例通常是10:1或更高。開發人員會編寫大量的自動化測試用例,對產品實施周密的測試,因此測試人員主要關注用戶價值和系統級測試。即便如此,測試人員也沒有足夠的資源測試所有用戶行為。所以,測試人員需要通過確定Attributes來明確產品的核心價值,從而區分出測試對象的輕重緩急(priorities)。獲取Attributes的信息源可以是產品經理、市場營銷人員、技術布道者、商業宣傳材料、產品廣告等。測試人員也可以使用“賣點漫游”(The Money Tour)來發掘和檢驗產品的賣點。
第二步是確定產品的Components(部件)。Components是產品的名詞(nouns),可以理解為產品的主要模塊、組件、子系統。從HTSM的角度,Components位于HTSM->Product Elements->Structure和HTSM->Product Elements->Function,即同時具備代碼結構和產品功能的特征。
Google+的Components如下:
Profile(個人資料):用戶的帳戶信息和興趣愛好
People(人脈):用戶已經連接的好友
Stream(信息流):由帖子、評論、通知、照片等組成的有序的信息流
Circles(圈子):將好友分組,如把不同的好友歸于“朋友”、“同事”等小組
Notifications(通知):當用戶被帖子提到時,向他顯示提示信息
Posts(帖子):用戶和好友所發表的信息
Comments(評論):對帖子、照片、視頻等的評論
Photos(照片):用戶和好友所上傳的照片
Components可以看作功能列表(Function List)的頂層元素,是產品核心功能的清單?!禜ow Google Tests Software》建議Components列表要盡可能簡單,10個Components很好,20個就太多了。其目的是重點考慮對產品、對用戶最重要的功能與代碼,并避免漫長的Components列表所導致的分析癱瘓。
第三步是確定產品的Capabilities(能力)。Capabilities是產品的動詞(verbs),描述了一個Component提供了何種能力來實現一個Attribute。在HTSM的角度,Capabilities位于HTSM->Product Elements->Function和HTSM->Quality Criteria->Operation Criteria->Capability,刻畫了產品實現其核心價值的手段。
Google+的Capabilities矩陣如下:
|
Social |
Expressive |
Easy |
Relevant |
Extensible |
Private |
Profile |
在好友中分享個人資料和興趣愛好 |
用戶可以在網上表達自我 |
很容易創建、更新、傳播信息 |
|
向被批準的、擁有恰當訪問權限的應用提供數據 |
|
People |
用戶能夠連接他的朋友 |
用戶可以定制個人資料,使自己與眾不同 |
提供工具讓管理好友變得輕松 |
用戶可以用相關性規則過濾好友 |
向應用提供好友數據 |
只向被批準、擁有恰當訪問權限的應用提供信息 |
Stream |
向用戶提示其好友的更新 |
|
|
用戶可以根據興趣過濾好友更新 |
向應用提供信息流 |
|
Circles |
將好友分組 |
根據用戶的語境創建新圈子 |
鼓勵創建和修改圈子 |
|
向應用提供圈子數據 |
|
Notifications |
|
|
簡明地展示通知 |
|
向應用提供通知數據 |
|
Hangouts |
|
加入群聊前,用戶可以預覽自己的形象
|
|
|
|
|
Posts |
|
表達用戶的想法 |
|
|
向應用提供帖子數據 |
帖子只向被批準的用戶公布 |
Comments |
|
用評論表達用戶的想法 |
|
|
向應用提供評論數據 |
評論只向被批準的用戶公布 |
Photos |
用戶可以分享他的照片 |
|
|
|
與其他照片服務集成 |
照片只向被批準的用戶公布 |