catch-img

第35回「ソフトウェア試験の自動化 ISO/IEC/IEEE 29119-5 ~キーワード駆動試験の概要~」

ソフトウェアのテスト業界で自動化が研究され、若干ですが実践されるようになりました。当社でも、早くから研究チームを立ち上げ実証テストを行ってきました。これまで解説してきた「ISO/IEC/IEEE 29119」の規格は以下で構成されています。

Part1:用語と概念
Part2:テストプロセス
Part3:テストドキュメント
Part4:テスト技法
Part5:キーワード駆動試験

今回は「Part5:キーワード駆動試験」について解説したいと思います。


テスト自動化の効率 

このPart5は、テスト自動化の効率を上げる規定となります。
規格では「キーワード駆動試験の基本的な考え方は、キーワードとして参照される”積木”の集合を提供することである。それは、プログラミングの詳細な知識や試験ツールの専門知識無しで、手動又は自動試験項目を生成するのに使用することができる。最終的な目的は、ほとんど全部とは言えないにしても、必要な試験項目が完全にこれらのキーワードで構成することができるような、基本的で曖昧でない十分包括的キーワード集合を提供することである。」と記述されています。

自動化するには、プログラム(スクリプト)を書くという作業が必要となります。やはり専門家の領域と考えますが、テスト自動化にともなうスクリプトを書くには20程度のコマンドを理解すれば可能となります。つまり、専門のプログラマーでなくても可能ということです。

例えば、アプリケーションを使用する場合、まずログイン画面を表示します。この段階を「領域層」といいます。
ログイン情報としては、使用者名とパスワードを入力します。この段階を「中間層」といいます。
間違いなければ実際の操作が行えます。この段階を「試験インターフェイス層」といいます。

この領域単位を合成キーワードとして整理することで、同じ処理を何度も繰り返しテストプログラミングしなくて済みます。色々な単位をまとめてキーワード化することで効率が上がります。




自動化においての注意点

テストの自動化ツールは、これまでに多くの商品が発売されてきました。現場でヒアリングすると大半が「失敗した」と回答します。原因は、工数をかけた割には期待する効果が得られなかったとのことです。効果を出すには、ツールの操作が複雑で使いこなすために多くの工数が必要であったり、ツールの金額と手作業のコストとを比較すると割高になってしまったり、結局、利用しなくなってしまうという顛末のようです。 


自動化するメリットが出るシステムは、繰り返しテストが行われる場合です。
例えば、パッケージ製品のように、バージョンアップのたびにテストが必要なシステムのことです。また、Webシステムのように常に更新をするシステムにも有効です。例えばアジャイル環境で開発している場合は、自動化が有効と考えます。開発しては修正を繰り返すアジャイル手法において、これまでは開発技術者とテスト技術者が並行して作業を行うことが有効とされてきました。これは恒久的に2倍の工数が必要になります。この開発工程において、自動化を取り入れる事で繰返しのテストが正確で、コスト削減となります。

藤井 洋一
藤井 洋一
■略歴  1985年 金融機関退職後、現在の会社を創業  2005年 一般社団法人IT検証産業協会の設立に関わり、ソフトウェア品質向上の活動を推進。2016年から会長を務め、2023年6月より監事として活動中  2013年 一般社団法人コンピュータソフトウェア協会(現:ソフトウェア協会)においてソフトウェア製品の品質認証制度(PSQ認証制度)を委員長として制度設計、運用開始  2016年 一般社団法人IT団体連盟の発足に参加、理事及び政策委員として活動。2023年諮問委員会 副委員長として活動中  2018年 「情報銀行」認定制度の制度設計サポート  2019年 工業標準法に基づく試験事業者登録制度(JNLA)等に係る試験事業者技術委員会電磁的記録分野技術分科会委員  ■その他の活動  独立行政法人情報処理推進機構にて「品質説明力強化のガイドライン」作成委員として執筆  ソフトウェア製品の国際規格「ISO/IEC 25051」のJIS化委員