テストから見えてくるグーグルのソフトウェア開発という書籍の中で、Googleが実際に使用している(していた?)ACCというテストに関するメソッドを紹介していました。
以下のページに概要が載っています。
https://code.google.com/archive/p/test-analytics/wikis/AccExplained.wiki
ACCとは何か
- Attributes-Components-Capabilitiesの略です。
- テストのためのシステム分析手法です。
- システムのテストすべき重要な箇所を洗い出すことができます。
- 簡単です。規模によりますが20分から1時間くらいで完了します。
- 簡単故に、維持も低コストです。必要に応じて何回でも行い、内容をアップデートし続けられます。
- ACCの結果をもとに、システムのリスク分析、テスト計画の設計、カバレッジ計測を行うことができるようになるでしょう。
ACCの手順
対象システムのAttributes、Components、Capabilitiesをそれぞれ書いていきます。
1. Attributesを定義する
- Attributesは、製品の性質や特徴、他製品との違いです。
- 例えば以下のようなものです。
- セキュア
- 高速
- 導入しやすい
- ユーザーフレンドリー
- ソーシャル
- 製品の売り文句としてHPのトップに書いている場合も多いのでは。
2. Componentsを定義する
- Componentsは、システムを構成する部品です。
- 例えば以下のようなものです。
- データベース
- API
- ログイン
- メール送信
- 検索機能
- ショッピングカート
3. Capabilitiesを書く
- Capabilitiesは、システムが実際にできる動作、あるいはユーザーが要求できる動作です。
- AttributesとComponentsを組み合わせてCapabilitiesを記述します。
- 例えば以下のようになります。
- 検索機能は高速である:常に1秒以内に検索結果を返す
- ショッピングカートはユーザーフレンドリーである:どんな端末からでも操作できる、あるいは商品選択後○ステップで購入が完了する
- テスト可能な内容にすることが重要です。
ACCを使った分析等
- Attributes x Componentsのマトリクスでヒートマップを作りリスク分布を分析する。
- テストの優先順位付けを行う。
- テストケースと対応付けてカバレッジ計測。
最後に
以上、ACCの紹介でした。「品質は開発プロジェクトの最初から作り込んでいくもの」「品質を上げる努力をしなければ品質を上げる力は身につかない」を胸に刻み、日々積み重ねていきましょう。