APRESIA Technical Blog

APRESIA テスト自動化システムのご紹介

はじめに

JANOG41、JANOG45と2回に渡って当社のテスト自動化の取組みについて紹介しました。

 
本記事では当社ネットワーク製品APRESIAに使用しているテスト自動化システムの概要とその効果について説明します。JANOG41でも紹介しましたが、当社のテスト自動化システムのフレームワークとしてbehaveというツールを活用しながら、必要なプログラムの開発をしております。 
一方で、プログラム経験が少ないテストエンジニアにとって自らプログラムにアレンジを加えながらテストスクリプトを作成するのはハードルの高い作業であり、手軽に自動化に着手できない要因でもありました。
本要因を取り除くために、プログラムをアレンジすることなくテストスクリプトを作成できるExcel2Feature(E2F)というツールを開発しました。

APRESIAテスト自動化システムツール Excel2Feature(E2F)

従来のテスト手順書のように、Excelで作成した手順書を自動的にテストスクリプト(Featureファイル)に変換を行うことが出来ます。

図1:APRESIAテスト自動化システムツール Excel2Feature(E2F)

 

E2Fがテスト自動化を簡単にしている特徴を以下にご紹介します。テストを実行する上でよく使われる必要な基本的な操作を入力支援ルールとして、表1のように予め揃えていることがポイントです。実行したいテスト手順に従って、これらのルールを選択して組み合わせることで従来のExcelによるテスト手順書を作成しつつ、テストスクリプトを同時に生成することができます。

表1:E2F 入力支援ルール 概説

 

本テスト自動化システムにおける効果

(1)テスト実行プロセスにおける工数削減効果

E2Fを使った自動テストの工数削減効果について図2、図3に説明いたします。テストを行うにあたり、表2のようなテスト実行プロセスが必要とされます。自動テストの場合は表2以外に、図2のⅢで示されるテストスクリプトの妥当性チェックを行うためのピンク色の”テストスクリプト 妥当性チェック”が更に必要となります。

表2:テスト実行プロセス

図2:手動テスト vs. E2Fによる自動テスト テスト実行プロセス工数比較

  1. テスト設計にかける工数は、手動、自動ともに初回に設計した内容がそのまま流用できるため2回目以降は下がる。
  2. テスト手順書作成にかける2回目以降の工数は、手動、自動ともにパラメータなどの変更はあるものの初回分の流用が効くため下がる。                                       ※自動の場合は、テスト手順書を作成するだけでE2Fによってテストスクリプトも同時に自動生成が可能。また、テスト手順書にテスト結果の期待値(showコマンドの表示結果など)を記載しておけば、テスト結果が期待値と一致していることを確認する処理もテストスクリプトとして自動生成が可能。
  3. テストスクリプトの妥当性をチェックする工数は自動のみに発生する。尚、初回テストのみ妥当性チェックの工数はかかるが、2回目以降は初回分でチェックが完了しておりテストスクリプトはそのまま流用できるため下がる。
  4. 手動の場合、装置側の動作をチェックしながら進める必要があり、工数は膨らむ。一方、自動の場合は予め設定した期待値を使って自動的に結果を検証でき、結果を得るまでの工数は手動と比較して大幅に下がる。
  5. 手動の場合のテスト結果の確認は、得られたログ結果を目視で見ながら妥当性をチェックする必要があり、工数がかかる上、ヒューマンエラーによるバグの見逃しのリスクも存在する。自動の場合はIIにて期待値と結果を比較するテストスクリプトを生成しているため、Ⅳで実施した結果がpassできていればチェックの必要がなく、failとしてエラーになっているテスト結果の解析のみで済み、ヒューマンエラーのリスクも無くなる。

上記の比較結果を手動分、自動分のそれぞれのトータルの工数として比較すると図3のようになります。更にテストを繰り返す場合は、その繰り返し回数分のn倍の効果、他機能に流用できれば機能数分のn倍の効果が見込めます。(例えば、異なる冗長系切り替え機能プロトコルに対して、同じ手順の冗長系切り替えテストを行うなど、テスト項目の流用が可能なケースがあります。)

図3:手動テスト vs. E2Fによる自動テスト テスト実行プロセス トータル工数比較

 

(2)製品の品質維持の効果

テスト自動化における効果としては上記の(1)における工数の削減効果以外にも、品質観点での効果も見込めます。例えば、製品のソフトウェアのバージョンアップの際にはデグレードの懸念があります。そこで、デグレードが無いことを確認するためのリグレッションテストを自動化することで、常に同じレベルのテストを実施し、不具合の見逃しなどのヒューマンエラーを排除することで、製品の品質を維持することができます。

当社で心がけているテスト戦略

全てのテスト項目を自動化に転換を図っていくと却って非効率になる場合もあります。当社内で自動化対象のテスト項目を選定する際には、図4のような複数回行うことによる費用対効果の観点でテスト戦略を立てるように心がけております。

図4:当社で心がけているテスト戦略

 

今後の取組み予定

現行のテスト自動化システムは、テスト結果の合否をpass、failとしてテキストベースで結果を表示しています。しかし、テキストベースで結果を表示するだけでは、失敗したテストを見逃す恐れがあります。そこで、図5のように「テスト実行画面」「テスト実行結果確認画面」「詳細ログ情報」等のGUIを用意し、エラーが発生したテストを強調表示するなど、結果の確認方法に対する工夫も進めております。

図5:テスト自動化システムのGUI化対応

お問い合わせについて

本記事についてお問い合わせがございます場合には当社HP内の最下部の各種「お問い合わせ」から頂けると幸いです。