ブログ

ryuzeeによるブログ記事。不定期更新
アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料)

「塹壕よりScrumとXP」その後とテスト自動化順序の決め方

みなさんこんにちは。@ryuzeeです。

「塹壕よりScrumとXP」はHenrik Kniberg氏が書いた無料書籍で、日本語を含めて13ヶ国語で読まれている最も有名なスクラムとXPに関する導入事例の1つです。 日本語訳はInfoQの以下のページからダウンロード可能です。 http://www.infoq.com/jp/minibooks/scrum-xp-from-the-trenches

そのHenrik氏が、Agile Israele 2011で行ったキーノートが、非常に良いものなのでご紹介します。 資料は氏のサイトからダウンロードできます。

このスライドでは、Henrik氏がもし記事を書いた2006年に戻ったら今度は違うやり方をするであろう項目について説明しています。 項目は以下の15個です。

  1. キューを制限する
  2. チーフプロダクトオーナーのロールを設ける
  3. バックログの項目はユーザーストーリー形式で記述する
  4. スプリントプランニングの前にストーリーを見積もる
  5. タスクは見積もらない
  6. フォーカスファクターはスキップする
  7. スプリントに詰め込みすぎない
  8. スプリント以外のことも可視化する
  9. もしスプリントがうまくいかないようならKanbanを使う
  10. シンプルなメトリクスを計画と改善に利用する
  11. 上位3つの妨害・障害事項を可視化する
  12. 従業員の満足度を継続的に測定する
  13. 継続的なデリバリを可能にするために"King and Servant"のパターンを利用する
  14. 品質ツールとして「完成の定義」を利用する
  15. テスト自動化のバックログを用意する

ここでは最後の1つのテスト自動化バックログについて解説しておきます(スライド60ページからです)。

まずテスト対象のフィーチャーに以下のようなものがあるとします。

  • Change skin(スキンを変更する)
  • Security alert(セキュリティの警告を出す)
  • Transaction history(トランザクションの履歴を扱う)
  • Block account(アカウントをブロックする)
  • Add new user(新規ユーザーを追加する)
  • Sort query results(クエリーの結果をソートする)
  • Deposit cash(お金を預ける)
  • Validate transfer(送金を確認する)

次にそれぞれについてリスク、手動テストコスト、自動テスト作成の際の規模を明らかにします。 以下がその表になります。

ついでその表を手動実行のコストが高い順に並べ替えます。

上図の手動実行の時間が長い物でテスト自動化のコストが小さいものから順に自動化に取り組めば良いということになります。

※この資料中では記述はありませんが、リスク度合いに係数を掛けて順位を算出する、というのも必要だと思われます。 また手動テスト実行回数が全機能で均一の前提になっていますが、実際は異なるケースもあるので、その場合は実行回数比率も表に入れると良いでしょう。 また例えば一旦低リスクは全て除外して高リスクのものから自動化するというアプローチも必要かもしれません。 このあたりの順序決めはコンテキスト依存ですが、リスクとROIを常に意識しなければいけないことだけは確かです。

どこでテストの自動化に取り組むかについてはHenrikの例では、下図の通りスプリントプランニングの時点で20%テスト自動化への投資時間を予め確保しておくやり方をしています。

マイクロソフトでは、Visual Studio 2008の開発に際しては4ヶ月間新機能の開発を停止して、既存の技術的負債を返済したりテストの自動化に取り組んだとのことです。 4ヶ月は無理かもしれませんが、技術的負債の早期返済のROIが高い、もしくは今技術的負債の返済をしないと将来大きなリスクが顕在化してしまう可能性が高い、ということであれば、スプリント全体をテスト自動化に取り組むというアプローチもあるでしょう(その場合は、テスト自動化が"ステークホルダーやプロダクトオーナーにとって"投資する価値がある、と判断してもらう必要があります)。

それでは。