NTT DATA

DATA INSIGHT

NTTデータの「知見」と「先見」を社会へ届けるメディア

絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
background-image-careers
2014年1月23日技術ブログ

進化するGUIテスト自動化

大規模化・複雑化するソフトウェア開発において、テストをいかに効率よく実施するかという観点から"テストの自動化"が注目されています。今回は、その中でも繰り返し実施する作業が多いテスト対象システムのGUIを操作・検証するテスト(以下、GUIテスト)の自動化について、現状と今後の動向をご紹介します。

キャプチャ・リプレイによる自動化

現在、GUIテスト自動化の手段として、直感的なキャプチャ・リプレイによる自動化が主流となっています。キャプチャ・リプレイによる自動化では、まずキャプチャ機能を用いて、テスト手順に従ったGUI操作を記録することで、自動的にスクリプトを作成します。その後、回帰テストや再テストを実施する際に、リプレイ機能を用いて作成したスクリプトを実行することで、前回のテストを自動的に再現できます(図1)。このようにキャプチャ・リプレイによる自動化では、一度記録した操作を何度も実行できるため、以下の効果が期待できます。

  • 回帰テストや再テストなど、繰り返し実施するテストの工数削減
  • 操作確認誤り防止による品質向上
【図】

図1:キャプチャ・リプレイを用いた自動化イメージ

キャプチャ・リプレイによる自動化の課題

キャプチャ・リプレイによる自動化は、上記の通り繰り返し同じテストを実施する場合に大変有効ですが、さまざまな課題もあり、利用率が低いのが現状です参考1。今回は代表的な技術的課題について以下に述べます。

  • テスト対象システムの完成を待たなければならない

    GUI操作を記録する必要があるため、テスト対象システム完成後のテスト工程内で自動化準備を実施しなければならず、準備期間が限られてしまいます。また、記録時にテスト対象システムに不具合が発生すると、自動化準備ができなくなる場合もあります。

  • スクリプトの作成・修正にスキルが必要である

    キャプチャ機能により作成されるスクリプトは、ツールごとに形式が異なるため、ツール独自の記述方法を習得する必要があります。

  • スクリプトの作成・修正にコストがかかる

    ユーザーが一度GUI操作を行い、スクリプトを作成する必要があるため、自動化準備に手動でのテスト1回分以上のコストが必要となります。

上記課題の解消に向けた取り組みを、以下に紹介します。

キーワード駆動テストの適用と課題

キーワード駆動テストとは、スプレッドシートなどの外部ファイルに、テストの自動実行に必要なすべての情報を格納する方法です。GUIテスト自動化にキーワード駆動テストを適用すると、(以下、この実施方法を「キーワード駆動型GUIテスト」とする)キャプチャ・リプレイによる自動化では、スクリプトとして記述しているGUI操作を、外部ファイルに特定のキーワードと用いて記述します。テストを実施する際には、記述したキーワードをツールが解釈して、GUI操作を再現します。例えば図2のように、操作内容に「"UserText"に"ユーザー名"を"入力"する」と記述されている場合、ツールが操作内容、データを解釈して、検索操作を再現します参考2

【図】

図2:キーワード駆動型GUIテストによる自動化イメージ

キーワード駆動型GUIテストでは、テスト対象システムが未完成でも、設計情報に基づいてGUI操作を外部ファイルに記述できます。そのため、テスターなどリソースが確保できれば、テスト対象システムの製造工程と並行して、自動化準備ができます。したがって、テスト対象システム完成直後からテストを自動実施でき、工期短縮が実現可能となります。また、直感的に分かりやすいキーワードでGUI操作を記述できるため、ツールや言語の知識がない人でも、キーワードでスクリプトに記述された操作を理解できるようになるなど可読性も向上します。

しかし、キーワード駆動型GUIテストだけでは、自動化準備のために、外部ファイルにGUI操作を記述しなければならず、「スクリプトの作成・修正にコストがかかる」という課題は解決できていません。

スクリプト作成コストの削減に向けた取り組み

上記の課題を解決する1つとして、設計書やテストケースなどからキーワード駆動型GUIテストのスクリプトを自動生成する方法が検討され始めています。

NTTデータにおいても、設計書からテストケースを自動で生成するツールとキーワード駆動型GUIテストを連携させることにより、設計書からテストケースとGUIテスト自動化のスクリプトを同時に出力できるツールの提供を始めています。

お問い合わせ