キーワード駆動テストの本質

キーワード駆動テストというテスト実装技法があります。効能がわかりづらいので、ちょっと書いてみます。

キーワード駆動テストは、ISO/IEC/IEEE 29119 part5で規定されている技法です。その本質は、キーワード(形式的な言葉)でテスト手順を定義する、です。つまり、決まった言葉でテスト手順(=テストスクリプト)を書けば、それでキーワード駆動テストになります。

以上。


となると効能がわかりませんよね。僕が思う効能を書いてみます。

保守性、移植性の向上

キーワードは階層化できる、という説明がなされています。ドメインスペシャリストが理解できるレベルである上位キーワードと実際にテストシステムに食わせる下位キーワード、必要があればその間の中間キーワードを定義できます。この階層化を行うことで、すべてのステークホルダーがテストスクリプトを理解できるということもありますが、一番の効能は保守性、移植性の向上だと思っています。

保守性に関しては、下位キーワードレベルでテスト対象の仕様があった場合でも、キーワードの対応付けライブラリを変えることで、上位キーワードをいじる必要がない、ということになります。

移植性に関しては、例えばテスト対象が変わった場合でも、上位キーワードで書かれたスクリプトはそのまま使える可能性がある、ということです。類似フィーチャーを持っているテスト対象間で同じスクリプトを共有できることになります。

テスト設計からの自動生成

テスト設計段階でテストケースをキーワードで記述できた場合、テストスクリプトの作成からテスト実行まですべて自動でつながる可能性があります。テストケースもモデルベースドテストで自動生成する場合、テストモデルを作成するとテスト実行まで流れることになりますね。かっこいい。


おおきいのはこれぐらいですかね。逆にここら辺のメリットを目指さないのであればキーワード駆動テストしなくていいとおもいます。

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