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