In our webinar session, “How To log bugs the Google way”, we have covered the testing strategies used by Google to successfully test their software products. The webinar gives insights on how Google uses the ACC model to test its products and develop app features.
2. ACC
Attribute, Component, Capabilities
What is ACC?
The planning of tests should put us in a position to
know what test cases need to be written.
Components perform some function to satisfy an
attribute of the product and the result of this
interaction is providing capability to a user.
ACC helps the planner through three views of a
product
a. Attributes that describe the product's purpose
and goals
b. Components that identify the various parts
c. Capabilities that indicate what the product
actually does
3. ACC Design -
Points to
remember
1. Just the facts
2. This is not a marketing document
3. No story writing
4. Should be actionable
5. Planner’s guide
6. Directs to test cases
4. A = Attribute
Attributes are those that describes the product's
purpose and goals
Adjectives:
Adjectives describe nouns by giving some information about an object's
size, shape, age, color, origin or material.
You should be able to come up with a list of attributes if you
can answer the following
1. What the product does to support the core reasons
for the product existance
2. Why is it so interesting to customers
3. Qualities that promote the product and distinguish
from the competition
Example: Attributes for any wallets can be - Secure, Easy,
Reliable, Configurable etc.,
Tips for coming up with attributes:
Keep it simple i.e you should not spend hours getting the list
of attributes
Keep it accurate: Should come from a reliable source or
reviewed, approved and accepted by the team
Keep it moving: The list might increase as you use the ACC
table, do not wait to make it perfect
Keep it short: There should not be more than 12 attributes
5. C = Components
Components are the building blocks that together constitute
the system.
Nouns:
A noun is a part of speech that denotes a person, animal, place, thing, or
idea
You should be able to come up with a list of component if
1. You have the updated design document
2. You have access to the application
3. You can go and ask each and every developer on the
component/feature that they are working upon
Example: Signup, Login, Settings, Search, Cart, Payment etc
Tips for coming up with attributes:
1. Choose the major features and not all the features in
the application
2. Keep the list small, 10 is good and 20 is many
6. C = Capabilities
Capabilities represent the actions the system perform based on
the command, input, activities that a user is trying to achieve in
the application. These are the intersection of component and
attributes.
Verb:
a word used to describe an action, state, or occurrence, and forming the
main part of the predicate of a sentence, such as hear, become, happen.
You should be able to come up with capabilities if,
1. You are able to intersect the attributes and components
2. You understand how the product works
Example: Let’s take wallet as the product. For the component “profile”
and attribute “configurable”. The capability would be
a. “User should be able to configure their bank account with the
wallet”
b. User should be able to enable and disable their bank account
c. User should not be able to add accounts which does not
comply to the countries regulations
Tips for coming up with capabilities:
1. List only the most important capabilities
2. These are mostly user oriented and conveys a user’s
view of the system
3. Capabilities can be designed to form use cases which in
turn can have multiple scenarios for testing which are
test cases
7. Easy &
Simple
Secure Accurate Interaction &
Communicat
ion
Configurable
Signup/Signi
n/Signout
Profile and
Settings
Transactions
Add Money
Send Money
Receive
Money
Request
Money
Withdraw
Money
8. Examples of capabilities
Users should be able to signup with their social accounts
Before completing a transaction a confirmation message should be visible to
the user
On adding money from the user’s bank the wallet should be updated with the
correct details
On adding money from the user’s bank the user should receive a
confirmation message/email
Adding money from the bank should be done over https protocol
9. Step1
Explore the product
(web/mobile)
Step2
Identify and list down
the components
Step3
Identify and list down
the attributes
Step4
Based on the
Attributes and
Components list the
capabilities / use cases
Step5
Start testing with
multiple scenarios with
from every use case
10. Thank you
Connect with bharath@99tests.com
, pankaj@99tests.com for any
queries or clarifications