テストマスターへの道 第2回 「ビューティフルなテスト」
過去記事の再投稿です。
テストマスターへの道 第2回 「ビューティフルなテスト」
テストマスターになりたいとののが勉強した記録です。
2016年7月5日
今回のテーマ:ビューティフルなテスト
図書館でタイトルに惹かれ『ビューティフルテスティング ーソフトウェアテストの美しい実践』という本を読みました。
- 本の概要
- 2章「ビューティフルテスティングは、ステークホルダーを満足させる」
- まとめ
- 出典
本の概要
この本は、テストのプロフェッショナルたちが編み出したテストの極意、「美しいテスト」について語るものです。
豊富な経験やユニークな見解をもつ人物に焦点を当てた「テスター」、試行錯誤の末に到達した「プロセス」、すばやく効率的に行うための「ツール」という3部構成で、書き手自らが確率したテストの極意を実例を上げてわかりやすく解説します。
と裏表紙に書いてありました。
眺めるとわかるのですが、2部と3部は特にエンジニア向けという感じで、私は正直ほぼ意味がわかりませんでした。(諦めた)
その中でも意味が理解できて、なるほど〜と思った、
第1部2章「ビューティフルテスティングは、ステークホルダーを満足させる」
についてまとめます。
2章「ビューティフルテスティングは、ステークホルダーを満足させる」
この章では、「ビューティフル」を「満足」だとして、それはどのようなテストであればよいか、的なことが書いてありました。
「誰が」満足するかを明らかにする。誰=テストステークホルダー
ビューティフルなテストをするためにまずは、誰に対するテストなのかを明らかにしましょう。
筆者は満足させる人々を、テストステークホルダーと呼んでいます。
テストステークホルダーとは、テスティングと、その最終的な成果物の質に対して、利害、関心、影響力などを持つすべての人々のこと。
例えば、テスター本人、開発メンバー、プロジェクトマネージャー、ユーザ、スポンサー、など。
「何が」満足させるのかを知る
それぞれのステークホルダーは、テスティングをする目的と、期待するものを持っています。
誰が満足するかがわかったら、その人のテストの目的と期待を明確化しましょう。
これが不明確だと、ビューティフルなテストになるかは運任せになり、ごくわずかなステークホルダーしか満足させることができません。
ステークホルダーと合意形成ができていれば、「有効で、効率がよく、エレガントなテストとは何か」がわかり、美しいテストが実施できるのです。
有効に:各ステークホルダーの目的と期待を満足させること。
効率よく:投資したリソースから最大限の価値を生み出す方法を通じて、目的と期待を達成すること。
エレガントに:有効さと効率を、手際よく実行すること。
外面的な美しさ
誰が何に満足するかを明確にしたら、具体的にどのくらいやれば満足なのか、を考えます。
- 存在しているバグのうち、実際に検出したバグの割合は? - バグ全体における重要なバグの割合は? - バグ1件あたりの検出・修正に要するコストは本番環境で障害が1件発生する場合と比べてどの程度か?
例えば上記のような質問に答えるために、指標をつくります。
(((計算式が書かれていましたが、よくわかりませんでした)))
また、コストを測定する方法として、CoQ(Cost of Quality:品質コスト)があります。
これにより、テストや品質に関する以下の3つの主要コストを明らかにできます。
- 検出コスト - バグの検出がゼロだとしても発生するテスト費用。
- 内的障害コスト - バグ検出のみに起因して発生する、テストおよび開発コスト。バグ報告の作成、バグ修正、修正の確認テストなど
- 外的障害コスト - 提供した製品にバグが存在することに起因するコスト。テクニカルサポート、保守、維持のための費用
こうした指標によって、ステークホルダーの満足を達成する方法と、達成度を測定する方法をしめすことができます。
内面的な美しさ
ビューティフルテスティングについてもうひとつ検討するべき要素が、内面的な美しさです。
例えば、テスト工数のかなりの割合を手動での回帰テストに費やすと決めたとします。
○自動化した回帰テストの割合は? ○回帰関連の品質リストのうち、網羅できた割合は? ○自動化によって、手動よりどの程度早く回帰テストを実行できるのか?
(((これを指標にする計算はやっぱり意味わかりませんでした)))
ここでは、テスティングの目的と期待を内部の観点から設定することで、仕事をよりよく、速く安く賢く行うためにテスティングを測る方法を示します。
まとめ
ステークホルダーが満足するビューティフルなテストをするにはどうすればよいか!
- ステークホルダーを知ります。
- ステークホルダーにとっての、テスティングの目的と期待を知ります。
- ステークホルダーの目的と期待を達成するための、メトリクスと目標を設定します。(外面的な美しさ)
- テスティングの目的と期待を達成するための、メトリクスと目標を設定します。(内面的な美しさ)
いままで考えたことはありませんでしたが、
この検証は成功だった!と言えるとすれば、たしかにこんなふうに誰にとってどのくらい達成した、と言えれば確実に成功なのかなと思いました。
出典(読んだ本)
『ビューティフルテスティング ーソフトウェアテストの美しい実践』
Tim Riley,Adam Goucher
大西健児(監訳),児島修(訳者)
オライリー・ジャパン,オーム社
2010年10月25日