写真●静岡大学の森崎修司氏(情報学部 情報社会学科 講師)
写真●静岡大学の森崎修司氏(情報学部 情報社会学科 講師)

 静岡大学の森崎修司氏(情報学部 情報社会学科 講師)は、11月7日に都内で開催された開発者向けイベント「X-over Development Conference 2012(XDev2012)」において「シナリオレビューの薦め」と題した講演を行った(写真)。このシナリオレビューとは、「シナリオ」を作成した上でそれを基に対象ドキュメントをチェックする、というレビュー手法だという。

 では、シナリオとは何か。森崎氏によるとそれは、対象ドキュメントから検出すべき問題を分類した「問題種別」に対して、ドキュメントの「確認箇所」、どのようにチェックするかという「確認方法」、チェック対象の「優先順位」を示したものである。

 森崎氏は「日次集計の実施時期が集中していて性能低下が起こる」「一部の拠点のデータしか集計できず、集計結果が誤っている」「集計データの送信途中でネットワーク障害が起こり、集計できない」といった問題に関する問題種別「業務との不整合」のシナリオとして、下記の例を挙げた。

拠点からデータベースまでの通信の構成要素を挙げ、それぞれの構成要素の問題により、集計データが完全に集まらないパターンを基に、対策されているかどうか確認する。パターンは「障害パターン一覧」の深刻度が高い順から確認する

 上記の例のうち「拠点からデータベースまでの通信の構成要素を挙げ」は確認箇所、「集計データが完全に集まらないパターンを基に」は確認方法、「パターンは「障害パターン一覧」の深刻度が高い順から確認する」は優先順位をそれぞれ表している。

ドキュメントチェックの前にシナリオを作る

 森崎氏は、ドキュメントをチェックする前に、上記のようなシナリオを作ることが重要だと訴えた。その根拠として、シナリオを使った場合と使わなかった場合で、ドキュメントの問題をどれだけ検出できるかという実験のデータを示した。この実験の結果では、シナリオなしの被験者が正しく検出できた問題は平均0.706件だったのに対し、シナリオありの被験者はその3倍以上の2.44件だったという。

 シナリオを作ることのメリットは、問題を漏らさず検出できることにとどまらない。「シナリオを作ることで、どのようにして問題を確認したかという履歴が残り、問題がなかった場合でもその確認結果を生かせるようになる」と森崎氏は指摘した。

 それはどういうことか。一般的なレビューのやり方では、綿密にチェックしてもいい加減にチェックしても、問題が見つからなかった場合、その結果は同じように扱われる(何のアクションにもつながらない)。しかし本来、綿密にチェックして問題が見つからなかったのであれば、該当箇所は十分な品質になっている可能性が高く、その部分に関するテストを簡略化する余地が生まれるはずだ。シナリオを使ったレビューなら、綿密にチェックにしたことが分かるので、テスト簡略化などのアクションにつなげられるという。

 さらに森崎氏は、シナリオレビューの手順を示した上で、「一度ぜひ試してほしい」と現場での導入を強く呼びかけた。