WACATE2016夏に参加して、成長しそうな予感の私のテスト
テスト分析
分析の手順
やり方を以下のように、実行可能な作業単位に分けられていた点も、とてもありがたかったです。
- 分析方法を決める
- 情報を整理する
- 成果物を確認する
- 顧客の要求(テスト要求)を分析する
- 設計書(テスト対象)を分析する
- 分析結果を整理する
分析方法を決める
テストしたい「こと」? テストしたい「ところ」?
テスト分析の手順を振り返っていて、混乱してしまったのがここでした。
- "システム"(ドキュメントすべて)に対して分析をしたら、テストしたい"こと"、"ところ"って粒度が異なる"こと"、"ところ"がたくさん出るよなあ
- 粒度の違うテスト条件、どうやって整理するんだろう?
- 粒度が異なるから、それぞれの粒度か、テスト条件が一度にたくさん出てきてしまい、まとめきれないんじゃないの?
などなど
情報(分析する対象)の整理
ここで、この混乱を解く為に重要な鍵となるのが「情報(分析する対象)の整理」でした。
ここでの分析対象は、配布された資料です。
当日、テスト分析、テスト設計の為に配布された資料(顧客要求、仕様書)はたくさんありました。テスト設計まで行うので仕方のないことです。
ですが、これらを整理すると、いくつかに分類できることに気づきます。
- 新旧業務フロー画面遷移図
- 各種定義書
- テストに関する顧客要求
テストし易い単位から分析すれば、その単位(同じ粒度)でテスト対象を洗い出せるのではないか、ということに気づきました。
分析対象が何かというと、上記の整理した資料です。ですから、同じ分類や粒度が同じ分析対象を、一つずつ見ていけば良かったのです。
落ち着いて考えれば当たり前なことでしたが、情報を整理しないと、こういう混乱を招くという良い教訓になりました。
いきなりすべての資料(システム全体)に対して、分析をするのではなかったのです。分析対象が大きすぎますしね(^-^;
また、これに関連して気づいたのは、テストレベルが対象とする単位、粒度で考えてもよかったなということです。
V字モデルではテストをする順番は単体(単機能)テスト、統合(複数機能)テスト、システム(機能全体)テストですから。
しかし、私はやはりテストレベルから考えるより、分析対象を整理してから、その整理した情報ごとに分析をしていく方がしっくりくるようでした。
テスト設計技法が適用できるテストレベルはある程度示されていますが、テストレベルに対応するテストタイプは、テスト対象によるーとなってしまうと思うからです。
限定された業界や業務ならば、後者の考え方でテストタイプを限定しても良いかもしれません。
分析をすることのメリット
ただ、やはり分析をすることにはメリットがあります。
グループワークの発表や秋山さんの講義でも紹介されていましたが、どうやってテスト対象を導きだしたのか考え方を人に伝えられる、という点です。
「ちゃんとテストした?」と聞かれる人(私を含め)には、とても効果的だと思いました。
テスト分析の結果として、やるべきテストが決まる
昔「やるべきテストはテストレベルごとに決まっている」と私は思っていました。そういうものだと、思い込んでいました。
などなど
何をテストしたらいいのか分からないのは、テスト分析ができていないから
ここまでくると自分が何をすべきかは、もう分かります。
分析が上達すれば、テストするところはここだよって言えるようになるわけです。
ですから、私のテスト上達の鍵はテスト分析が上達することだと分かりました。
WACATEに参加した一番の収穫です。
振り返りしなかったら気づけなかったと思います。やっといてよかった。
分解
テスト分析の上達の為に大きなヒントになりそうな手法が、「分解」です。
秋山さんが講師として紹介してくださいました。
講義では要求が大きい場合、分解を利用して、具体的な要求を引き出していくと良いと教わりました。
USDM のような思考のフレームワークを使うと、上手に分解できるそうです。
- 時系列
- 構成
- 状態
- 共通部分
分解した結果を説明できるように一枚にまとめる
- 氏名
- 住所
成果物の確認
以上の分解によって成果物が出来上がります。
テスト分析の成果物は、テスト設計のインプットとなります。
あとはテスト分析の成果物に対して、テスト技法を適用してテストを設計(テストケースを作成)していくだけです。
ここまでで、テスト分析がテストの質を左右することが容易に分かりますね。
これをテスト計画やテスト者への指示に反映することで、チームとしてより良いテストが出来そうだと思いました。
チームの方への感謝
グループワークの最後に細川さんから、「テスト分析、テスト設計出来た?」という質問がありました。
私たちのチームは、テスト設計は「う~ん」でしたが、分析は「出来たと思う」人がほとんどでした。