
第35回「ソフトウェア試験の自動化 ISO/IEC/IEEE 29119-5 ~キーワード駆動試験の概要~」
ソフトウェアのテスト業界で自動化が研究され、若干ですが実践されるようになりました。当社でも、早くから研究チームを立ち上げ実証テストを行ってきました。これまで解説してきた「ISO/IEC/IEEE 29119」の規格は以下で構成されています。
Part1:用語と概念
Part2:テストプロセス
Part3:テストドキュメント
Part4:テスト技法
Part5:キーワード駆動試験
今回は「Part5:キーワード駆動試験」について解説したいと思います。
テスト自動化の効率
このPart5は、テスト自動化の効率を上げる規定となります。
規格では「キーワード駆動試験の基本的な考え方は、キーワードとして参照される”積木”の集合を提供することである。それは、プログラミングの詳細な知識や試験ツールの専門知識無しで、手動又は自動試験項目を生成するのに使用することができる。最終的な目的は、ほとんど全部とは言えないにしても、必要な試験項目が完全にこれらのキーワードで構成することができるような、基本的で曖昧でない十分包括的キーワード集合を提供することである。」と記述されています。
自動化するには、プログラム(スクリプト)を書くという作業が必要となります。やはり専門家の領域と考えますが、テスト自動化にともなうスクリプトを書くには20程度のコマンドを理解すれば可能となります。つまり、専門のプログラマーでなくても可能ということです。
例えば、アプリケーションを使用する場合、まずログイン画面を表示します。この段階を「領域層」といいます。
ログイン情報としては、使用者名とパスワードを入力します。この段階を「中間層」といいます。
間違いなければ実際の操作が行えます。この段階を「試験インターフェイス層」といいます。
この領域単位を合成キーワードとして整理することで、同じ処理を何度も繰り返しテストプログラミングしなくて済みます。色々な単位をまとめてキーワード化することで効率が上がります。
自動化においての注意点
テストの自動化ツールは、これまでに多くの商品が発売されてきました。現場でヒアリングすると大半が「失敗した」と回答します。原因は、工数をかけた割には期待する効果が得られなかったとのことです。効果を出すには、ツールの操作が複雑で使いこなすために多くの工数が必要であったり、ツールの金額と手作業のコストとを比較すると割高になってしまったり、結局、利用しなくなってしまうという顛末のようです。
自動化するメリットが出るシステムは、繰り返しテストが行われる場合です。
例えば、パッケージ製品のように、バージョンアップのたびにテストが必要なシステムのことです。また、Webシステムのように常に更新をするシステムにも有効です。例えばアジャイル環境で開発している場合は、自動化が有効と考えます。開発しては修正を繰り返すアジャイル手法において、これまでは開発技術者とテスト技術者が並行して作業を行うことが有効とされてきました。これは恒久的に2倍の工数が必要になります。この開発工程において、自動化を取り入れる事で繰返しのテストが正確で、コスト削減となります。