テストをどのように行っていますか?
こんにちは、日立情報通信エンジニアリングの池田です。皆さんは日ごろテストケースの作成など、どのように行っていますか? Excelにシコシコと入力し、数字だけを変更してコピペしたりしていませんか? この方法はともすれば単純作業になりがちで、テストケースが抜けることも多くなります。
このようなテスト作業にマインドマップを使うと、ちょっとイイんです。本稿では、この「ソフトウェアテストとマインドマップのちょっとイイ関係」について、簡単にご紹介してみようと思います。
ソフトウェアテストはひたすら頭を使うんです
まず、よくある「テストは頭を使わず、誰にでもできる」は完全に誤解であり、テストは非常に頭を使うクリエイティブな技術であるということを主張して、話を先に進めていきます。
テストを実施する際の情報源となる開発成果物のひとつは、プロジェクトの各局面で作成されたドキュメントです。これらのドキュメント、たとえばシステム仕様書や基本仕様書は、複数人の設計者がよってたかって、頭を使うだけ使って、再三にわたるレビューをくぐり抜けた末に、ようやくできあがります。まさに設計者の英知の結晶とも言えるでしょう。テストでは、英知の結晶たるドキュメントの静的テストを行い、またテストケースを作る際のテストベース(テストにおける情報源)としなければなりません。
レビューなどの静的テストでは、ドキュメントに潜む仕様の抜けや間違いといったバグを見つけなければなりません。設計者がよってたかって作成した物ですから、設計者以上によーっく考えないとバグを見つけ出すことは難しいということは想像に難くないでしょう。ただ単純にドキュメントの最初のページからバグっぽいものに赤入れしていく方法では限界があります。
同様に、テストケースを作成するときもそうです。ドキュメントを基に、ソフトウェアのどこにバグが潜んでいそうなのか予想してテストケースを作成しなければなりません。これも設計者の英知の結集たるドキュメントをよーっく考えないといけません。単純にドキュメントの文言をテストケーステンプレートに転記しているようでは、バグを発見できるいいテストケースにはなりません。
つまり、テストではある意味設計者以上に「よーっく考える」ということが大事なのですが、この「よーっく考える」というプロセスはマインドマップとちょっとイイ関係なのです。
ソフトウェアテストとマインドマップはちょっとイイ関係
設計作業では、各局面でUMLやフローチャートを描いて煮詰めていきます。これらは言ってしまえば、お絵かきです。お絵かきを繰り返すことで、最終的に洗練された仕様なりプログラムができあがります。
ところが、テストについては今まであまりお絵かきはされてこなかったように思います。テストケースをExcel等のテンプレートに直接書いていませんか? これはUMLやフローチャートを書かずにいきなりコーディングをしてしまうようなものです。できあがった代物の品質は想像できるのではないでしょうか。
マインドマップは、テストの作業におけるお絵かき、つまり一種のモデリング支援ツールとして機能します。これが、ちょっとイイ関係といえる理由です。
「マインドマップから始めるソフトウェアテスト」より
マインドマップによる効果
マインドマップを「よーっく考える」というプロセスに活用すると、どのような効果が得られるでしょう。3つほど挙げてみます。
- (1)マインドマップの持つ一覧性により、関連関係がわかりやすくなる
- この一覧性、言い換えればバードビューという特性は、テストにおいて実に大きな効果を与えます。テストは常に“網羅性”を考えながら行っていきます。カバレッジという言葉を聞いたことがあるでしょう。ドキュメントに関する網羅、コードに関する網羅、機能に対する網羅、要求に対する網羅、それぞれの組み合わせにおける網羅などなど挙げればたくさんあります。この網羅を考えるとき、マインドマップの一覧性が強力にサポートしてくれます。Excelシートに直接、という方法ではこうはいきません。
- (2)マインドマップに描かれたキーワードから、新たな気付きを得ることができる
- 良いテストは、ある意味“どれだけバグの影に気がつくか”が勝負です。ドキュメントからいくつものキーワードをマインドマップに描いていると、ある時ふと「キーワード間の関係情報」に気がつくことができます。ドキュメントの最終頁に書かれていたことが、最初の方に影響を与えていたが気がつかなかったという経験があるでしょう。これを防ぐことができます。また「本来マインドマップに描かれるはずのキーワードがない」ということに気がつくこともあります。これが仕様の抜けであったりする場合が多いです。
- (3)マインドマップを描いていると、自然に情報が整理されてる
- マインドマップを描いていると、“本当に必要な情報”だけが描かれていくようになります。そして、その情報は自然と階層構造で描かれるなど、意識せずに整理が行われていきます。何回かマインドマップを整理していくことでテストすべき情報が階層化され、テストケースを検討する際にカテゴライズしやすくなります。また階層化されることで、テストケースの直交性の検討も行いやすくなります。
これら以外にも、描いたことを思い出しやすいとか、いろいろと効果を得ることができます。なにより、延々Excelシートとにらめっこしているより、絵を描くことで作業が楽しくなるという効果もあります。楽しくなってくると気分もノってくるので、テスト作業もサクサクと進めることができます。私自身、マインドマップでテストを考えていると、非常に楽しく、またのめり込むことができるので、結果としてテストケースの品質も上がっているように思います。
とりあえず試してみませんか?
以上簡単ですが、ソフトウェアテストとマインドマップのちょっとイイ関係について説明を行いました。
どうでしょうか、興味がわいてきましたか?
テストにおける「よーっく考える」プロセスは非常に大変で疲れます。このようにマインドマップを活用することで作業の品質を向上し、また作業自体を楽しくすることができるのです。
もし、なんだか良さそうだなと思った方は、ぜひ「ものは試し」と取り組んでみてください。用意すべき物は紙と鉛筆だけです。書くために専門の教育を受ける必要もありませんし、特別な知識も必要ありません。すぐに取りかかることができます。
ソフトウェアテストとマインドマップのちょっとイイ関係、この機会に体験してみてはいかがでしょうか?