レビューはシナリオを作ってから読む!作れないときは・・・
シナリオはソフトウェアレビューでの欠陥検出の方針を文章で示したものです。多くのソフトウェアレビューの欠陥検出技法はシナリオを作成するための方法を提案していると考えることができます。そのため研究論文で提案されているレビューの欠陥検出の方針は、ほとんどシナリオレビューに分類できます。シナリオには大まかな読み進め方と欠陥を見つけるための判断基準を書き、可能であればどの場所から検出していくか優先順位も書きます。
たとえば「複雑な機能から順に、データベースアクセス部分とコネクションプール初期化の記述を確認し、コネクションプールのコネクション数が上限に達しないか確認する」「実行頻度が高いと思われる機能から順に"実行前条件"の記述と処理内容を突き合わせて確認し、暗黙の前提条件が漏れていないかを確認する」といった具合です。
ユースケースに沿ってレビューしていくUsage-based reading、ソフトウェアに関わる立場(テストエンジニア、プログラマ、利用者等)を定義しその立場から欠陥を検出するPerspective-based readingのような代表的な読み進め方の方針はシナリオレビューの一つであり、ユースケースや役割の定義がシナリオ作成の着眼点になっています。シナリオレビューの文献の中には、欠陥検出時に確認する場所や欠陥の判断方法の全てを書いていないものもあります。前述のようにレビューで検出したい欠陥種別をもとにシナリオを作る方法を私はお勧めしています。
シナリオは欠陥検出に先立って作成しておくことがベストです。しかし、シナリオを事前に作るには、どのようなシステムができあがり、どのようなプロセスで開発を進め、どのような欠陥を見逃すと最も困るのかを把握しておく必要があります。事前にそういったシナリオを想定できることがソフトウェア開発のノウハウと言えると思うので、全く何も挙がらないということは少ないはずです。まったくの新規で新領域という場合には、短時間でレビュー対象全体を把握するよう俯瞰し、何を目指すソフトウェアでどのような構造になっているかをイメージできるようにします。イメージできたら、その時点でシナリオを作り、それに沿って欠陥検出します。
シナリオレビューとその具体例としてセキュリティ欠陥の検出を挙げ、2012/11/7(水)に東京 目黒雅叙園で開催されるXDev2012というカンファレンスで紹介します。XDev2012は日経BPセミナー事業センターが主催するカンファレンスです。全体プログラムはこちら(http://ac.nikkeibp.co.jp/cn/xdev12/)から。セッションの事前紹介記事はこちらから。
また、日経SYSTEMS2012年10月、11月号にもシナリオの設定やシナリオレビューの方法を紹介しています。お手元にあればぜひご覧ください。