13.10 品質を保証するテストを実装する

ソフトウェアの品質を保証するためのテストと、これまで説明してきたテスト駆動開発のユニットテストは、同じ「テスト」ではありますし、オーバーラップしている部分はありますが、目的は別です。ユニットテストは設計の手法であり、「ユニットテストをしているので品質は十分です」とは言えません。しかし、ユニットテストで使っているテストの仕組みの上に、品質のためのテストを実装することはできます。

この品質のためのテストはソフトウェア開発の設計技法のテスト駆動開発とは視点がやや異なるテストとなります。『ソフトウェアテスト技法ドリル』1などの書籍なども参考にすると良いでしょう。

1

日科技連出版社 刊、秋山 浩一 著、ISBN978-4-8171-9360-5

13.10.1 ペアワイズ法を使ったテストパターンの考慮もれ防止

手元ではうまく動いていたが、実際にユーザーに使ってもらったら不具合が出たというケースの多くは、テストパターンが少なく、実際に使われるユースケースの考慮もれがほとんどです。これまでにディシジョンテーブルを手動で作成したことがある人もいると思います。

組み合わせの計算は全部の入力項目(因子)の組み合わせを計算すれば良いのですが、単純に組み合わせると組み合わせ数が膨大になることがあります。それを特定因子間の組み合わせのみは網羅するようにケース数を減らすロジックが「ペアワイズ法」です。少ないケース数で効率良く問題を見つけられます。この手法ではケース数を統計的に省略しているため、テストもれが起きる可能性はゼロではありませんが、人間が組み合わせを手動で作るよりはミスが少なく確実に利用できます。

Microsoft製のシンプルなCLIツールpict ...