キーワード駆動テストの意義

ISO/IEC/IEEE 29119-5でキーワード駆動テストが規定されています。こんな個別技術がISO化されるというのは珍しいですね。それだけ重要な技術ということでしょうか。

キーワード駆動テストは、テスト実装の技法です。テストケースをキーワードの組合せで表現する、という仕組みです。一般的にテストケースを表現する際には自然言語で表現するところを、形式化されたパーツ(キーワード)を使うことがキーポイントです。

規格上では、キーワードをDomain layerからTest IF layerまでの複数に階層化して、詳細手順の隠蔽や保守性の向上ができる点がメリットだ、と記載してあります。

テスト実装の技法としては、システムテスト自動化標準ガイドなどに従うと、手順の構造化や共有化、データ駆動が挙げられています。手順を構造化するとLoopなどによって無駄な手順の記載を避けられる、共有化すると同じ手順を再利用できるため手順の記載量を減らせる、データ駆動を使うと手順の流れをそのままにして、複数のテストスクリプトを生むことができる、と解釈できます。これは、徐々に楽になる度合いが大きくなる、と理解できます。

しかし、その次のステップとして書かれるキーワード駆動はどうでしょうか。キーワード駆動にすることで手順が形式化される、よって、そのまま自動化に持っていきやすくなる、という点はわかるのですが、データ駆動と比べた時に明らかに楽になるでしょうか。その答えは「必ずしもそうではない」だと思っていますが、使い方によっては楽になるケースもある、というぐらいかなと考えています。

キーワード駆動にすることで、構造化も共有化も容易になりますし、キーワード駆動の枠組みの中でデータ駆動を使うこともできます。また、テスト設計の成果物からテストスクリプトへの自動変換も可能になります。このように、テスト実装に限ったプロセスではなく、テスト設計まで対象にしているという点で、データ駆動よりさらに進んだ考え方、ということなのでしょうか。

ともあれ、一概にキーワード駆動だからよい、とは言えないと思いますが、効率の良いテスト設計~テスト実装を考えるための、基盤にはなるのだろうな、というのが今の感触です。

この記事が気に入ったらサポートをしてみませんか?