8
30 クラウド型テスト自動化サービスによる Webアプリケーションの生産性と品質向上への取り組み 1. はじめに 概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとI Tシステムの潮流 が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの 「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま ざまな要因によって増加傾向にある。 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用 できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、 TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な Webアプリケーション開発品質の向上を図る予定である。 近年、ビジネス変化のスピードは年々加速し、そこで用いら れる各種ソフトウェア製品のライフサイクルも短くなってきて いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ り、生産性向上が迫られている。 一方、スマートフォンの出現や、多種のブラウザの出現に伴 い、Webアプリケーションを中心として、ユーザインタフェース のマルチデバイス化が進んでいる。 そのため、Webアプリケー ションが動作保証すべき環境も多種多様となっている。このよ うな背景から、Webアプリケーション開発の各工程の中でも テスト工程が占める割合が多くなり、テスト工程の効率化が重 特集 インテックにおけるソフトウェア生産環境の革新 加藤 康記     西川 美紀     高木 慎也 要となっている。 こうした中、インテックでは、自動テストへの移行に必要な 周辺技術の標準化を進めることで、自動化導入をスムーズに進 められる環境を構築し、生産性向上に取り組んでいる[1]。 今回、我々は社内全体のテスト工程の効率化を図るため、 Webアプリケーションを対象にした、テスト自動化環境を提供 するクラウド型サービスとしてTaaSを開発した。TaaSを用い ることにより、社内テスト環境の共有化が図れるだけでなく、 テスト自動化環境の導入による生産性の向上、Webアプリ ケーション品質の向上が期待できる。 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる ことによるメリットを中心に述べる。

クラウド型テスト自動化サービスによる2]International Software Testing Qualifications Board(ISTQB), Japan Software Testing Qualifications Board(JSTQB)(訳):

  • Upload
    vothuy

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.

30 31

34 35

32 33

クラウド型テスト自動化サービスによるWebアプリケーションの生産性と品質向上への取り組み

1. はじめに

概要 Webテクノロジーを利用したアプリケーションが普及し、クラウドコンピューティングへとITシステムの潮流

が移り変わっている近年、益々Webアプリケーション開発の機会が増えている。一方で、Webアプリケーションの

「機能テスト」は、非常に非効率的な作業であり、その負荷はスマートフォンなどの新しいデバイス対応などのさま

ざまな要因によって増加傾向にある。

 このような中Webアプリケーションの生産性と品質向上への取り組みの一環として、我々は社内で共有利用

できるWebアプリケーションのテスト自動化環境を提供するクラウド型サービスTest as a Service(以下、

TaaS)を開発した。TaaSは、各種テストクライアントの環境、テストを自動実行し管理するプラットフォーム、そして

テスト自動化に必要なテストスクリプトを自動生成するツールを提供する。

 開発したTaaSを利用し、従来から行ってきたテスト手法と比較検証を行った結果、工数削減を実証できた。

 今後は、機能追加を行い、より生産性向上のための仕組みを充実させるとともに、社内普及を進め、全社的な

Webアプリケーション開発品質の向上を図る予定である。

 近年、ビジネス変化のスピードは年々加速し、そこで用いら

れる各種ソフトウェア製品のライフサイクルも短くなってきて

いる。それに伴い、ソフトウェアの開発期間も短縮傾向にあ

り、生産性向上が迫られている。

 一方、スマートフォンの出現や、多種のブラウザの出現に伴

い、Webアプリケーションを中心として、ユーザインタフェース

のマルチデバイス化が進んでいる。そのため、Webアプリケー

ションが動作保証すべき環境も多種多様となっている。このよ

うな背景から、Webアプリケーション開発の各工程の中でも

テスト工程が占める割合が多くなり、テスト工程の効率化が重

第13号

特集

特集

インテックにおけるソフトウェア生産環境の革新 2013

第13号

特集

2013

第13号

特集

2013

36 37

第13号

特集

2013

加藤 康記     西川 美紀     高木 慎也

要となっている。

 こうした中、インテックでは、自動テストへの移行に必要な

周辺技術の標準化を進めることで、自動化導入をスムーズに進

められる環境を構築し、生産性向上に取り組んでいる[1]。

 今回、我々は社内全体のテスト工程の効率化を図るため、

Webアプリケーションを対象にした、テスト自動化環境を提供

するクラウド型サービスとしてTaaSを開発した。TaaSを用い

ることにより、社内テスト環境の共有化が図れるだけでなく、

テスト自動化環境の導入による生産性の向上、Webアプリ

ケーション品質の向上が期待できる。

 本稿では、TaaSの概要を紹介するとともに、TaaSを用いる

ことによるメリットを中心に述べる。

2. Webアプリケーションテストの現状課題

 ソフトウェアの品質を高めるためにテスト工程は非常に重要

な工程である。Webアプリケーションのテストを品質の観点か

ら分類すると、「機能テスト」「非機能テスト」「構造テスト」「再テ

ストおよび回帰テスト」が存在する [2]。特に各機能がユーザの

操作によって正しく仕様通りに動作するかどうかをブラック

ボックスで検証する「機能テスト」は、非常に非効率的な作業で

あり、その負荷は増加傾向にあって Web アプリケーション開

発のテスト工程の工数を圧迫している。

2.1 Webアプリケーション「機能テスト」の課題 以下に、Webアプリケーションの「機能テスト」における課題

を整理する。

(1)手作業で属人的な判断

 通常「機能テスト」はあらかじめ作成されている「テスト仕

様書」に沿ってテスト担当者が手作業でWebブラウザから

各機能を操作し結果を目視にて検証する。作業は非常に単

調で時間がかかり、また結果の検証が属人的な判断になり

がちで人為的なミスや漏れが発生する可能性も高い。

(2)クロスブラウザ対応によるテスト工数増加

 Web ブラウザによってユーザインタフェースの動作が異

なる場合があることから、「機能テスト」は対象とするブラウ

ザ全てで行うのが理想である。従来、ブラウザのシェアは

Microsoft Internet Explorer が圧倒的シェアを占めてい

たが、近年 Firefoxや Google Chromeといった新鋭ブラ

ウザがシェアを伸ばしている。さらに、スマートフォンやス

マートタブレットといった新しいデバイスも登場している。

こうした新しい対象クライアントが増えることが、「機能テ

スト」の工数増加の要因の一つとなっている。

(3)「再テスト・回帰テスト」によるテスト工数増加

 アプリケーションに機能追加や改修がなされた場合、そ

れらの変更によって以前から実装されていた機能に予想

外の影響を与えていないか確認する「再テスト・回帰テス

ト」を行う必要がある。つまり、機能追加や改修のたびに全

ての「機能テスト」を繰り返す必要がある。

(4)高機能化によるテストの増加

 Web アプリケーションは、Ajax(Asynchronous

JavaScript + XML)や HTML5の登場などWebテクノ

ロジーの進化によって、高機能なユーザインタフェースを

3. TaaS

4. 検証/評価 今回開発したTaaSを利用することによってどの程度の生産

性向上に効果が期待できるのかを検証した。

4.1 検証方法 検証方法として、以下の三つの方法でWebアプリケーション

の機能テストを行い、一連のテスト作業にかかる工数の比較を

行った (表2) 。

 ① 全て手作業でテスト実施

 ② 専用ツール(Selenium)のみでテスト自動化を導入

 ③ TaaSを用いてテスト自動化を導入

 なお、検証対象としたテストクライアントのブラウザ環境

は、Microsoft Internet Explorer、 Google Chrome、Firefox

の3種類とし、OSのWindows XP、Windows Vista、Windows7

5. おわりに 本稿では、Webアプリケーションテストの課題と、生産性と

品質向上を目的に開発したTaaSの概要と利用によるメリット

を中心に述べた。

 プロジェクト企画時の狙い通り、4章のような検証結果が得

られた。TaaSを用いることにより、社内テスト環境の共有化が

図れるだけでなく、自動テスト導入による生産性の向上が期待

できることがわかった。

 今後は、スマートフォン対応などの機能追加を行い、より生産

性向上のための仕組みを充実させるとともに、社内普及を進め、

全社的なWebアプリケーション開発品質の向上を図る予定で

ある。

参考文献

[1] 飯塚彩乃:再利用可能なテスト環境の構築を目指して,INTEC

TECHNICAL JOURNAL,Vol.13,pp.24-29,インテック,(2013)

[2] International Software Testing Qualifications Board(ISTQB),

Japan Software Testing Qualifications Board(JSTQB)(訳):

テスト技術者資格制度 Foundation Levelシラバス日本語版

Ver2011.J02,p.30,JSTQB,(2012)

http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.

J02.pdf

[3] 石井洋行、笹井誠、田中大介:共通開発基盤ezPlatformによる

ソフトウェア生産環境の革新,INTEC TECHNICAL JOURNAL,

Vol.13,pp.12-17,インテック,(2013)

提供できるようになり、また高度な処理をクライアント側

で実行できるようになった。これにより、Web アプリケー

ションは年々高機能化しており、それに伴い「機能テスト」

のテスト数も増加している。

2.2 テスト自動化導入の動き このような「機能テスト」の課題を解決するため、近年Web

アプリケーションの「機能テスト」でもテスト自動化を導入する

動きがある。テスト自動化とは、テスト内容を専用のテストスク

リプト言語で記述し、専用ツールが人手に代わりブラウザを操

作することで「機能テスト」を機械的に、繰り返し行えるように

したものである。

 テスト自動化は以前から「単体テスト」や「ストレステスト」な

どで多く導入されてきたが、Webアプリケーションの「機能テ

スト」でも専用ツールが登場してきたことから導入事例が多く

なってきている。

(1)テスト自動化ツール

 「機能テスト」のテスト自動化ツールには主に以下のもの

がある。

(2)テスト自動化導入のメリット

 「機能テスト」にこうしたテスト自動化を導入する一番の

メリットは、繰り返し行う「機能テスト」の「再テスト・回帰

テスト」の工数を削減することである。また、テストスクリプ

トが機械的に検証を行うので、属人的な判断や人為的ミス

が削減される効果がある。

(3)テスト自動化導入のデメリット

 一方、テスト自動化導入には以下のデメリットがある。

   ● テスト環境やテスト要員の準備

テスト自動化を導入する場合、専用ツールの導入や、テスト

対象のクライアントをプロジェクトで準備する必要があ

り、経費が発生する場合もある。また専用ツールやテスト

スクリプト言語の知識が必要になることから、別途テス

トスクリプト開発要員の確保や教育が必要となる。

   ● テストスクリプト開発工数負荷

テストスクリプト開発の負荷は高く、手動テストを行うの

と比較してテスト設計からテスト実行までの工数が1.6~

2.5倍程度増加する(当社調べ)。再テスト・回帰テスト

を重ねるたびにテスト自動化の工数削減効果は発揮され

るが、テスト自動化導入時の工数負荷は避けられない。

   ● テストスクリプトのわかりにくさ

テストの内容はテストスクリプト言語で記述されるた

め、テストスクリプトや専用ツールの知識がなければ理

解できない。よって、開発者間でテスト内容を共有しにく

く、テスト仕様に沿ったテストスクリプトが開発されて

いるのか判断しにくい。

   ● テスト仕様書とテストスクリプトの二重管理

通常、テスト自動化を行う場合でも、テストの網羅性やテ

ストスクリプトの仕様を管理するために、事前にテスト

仕様書を作成する工程が必要である。

このようなテスト仕様書とテストスクリプトの二重管理に

より、機能追加・改修が発生した場合には、テスト仕様書と

テストスクリプトの両方の修正が発生することとなる。

 インテックではテスト工程の効率化を目的に、テスト自動化

に取り組んでいる[1]。その取り組みの一つとして、我々はWeb

アプリケーション向けのテスト自動化環境を社内に提供するク

ラウド型サービスであるTaaSを開発した。

 TaaSは以下に示す二つの要素によって構成される。

それぞれの構成要素について詳しく説明する。

図1 TaaSの構成

3.1 TaaSプラットフォーム(1)TaaSプラットフォームとは

 TaaSプラットフォームとは、Webアプリケーション向け

のテスト自動化環境とテストクライアントの提供、およびテ

ストの実行スケジュールや結果を管理する画面を Web 形

式のユーザインタフェースで提供するプラットフォームであ

る。テスト自動実行は2章で紹介したオープンソースのテス

ト自動化専用ツールSeleniumを用いている。

(2)TaaSプラットフォームの構成

 TaaSプラットフォームは、図2で示すように、TaaSサー

バと複数のテストクライアントで構成される。

 TaaS プラットフォームは、インテックが社内向けに運用

している仮想マシン環境である共通開発基盤 ezPlatform

[3] 上に構築しており、容易にテストクライアントを増設す

ることができる。そのため、ブラウザの新バージョンが登場

した場合に必要となる新しい環境を容易に追加していくこ

とが可能である。

   ● TaaSサーバ

Web形式のユーザインタフェースで機能を提供してお

り、テスト実行のスケジュール管理や、テストクライアン

トの選択、テスト結果の管理を行う。また、テスト自動

実行を行うSelenium サーバとJenkins を配置して、テ

ストの起動や指定された環境に適合するテストクライ

アントにテストを振り分ける。

   ● テストクライアント

TaaSサーバから振り分けられたテストを実行するテス

トクライアントの仮想マシンである。複数台用意してお

り、それぞれに異なる環境(OS,ブラウザ等)を準備して

いる。

図2 TaaSプラットフォーム構成

(3)TaaSプラットフォームの機能と特長

 TaaSプラットフォームでは、Webアプリケーションのテ

スト自動実行にSeleniumを採用しており、複数プロジェク

トで共有して利用できる。さらに、開発者が利用する上で、よ

り利便性を高めるために、以下の機能を提供している。

   ●さまざまな環境のテストクライアントの共有化

社内で共有化されたさまざまな OS、ブラウザのテスト

クライアントを提供する。そのため、各プロジェクト内で

テスト環境を構築する必要が無くなり、結果的に社内全

体でのトータルコストの削減に繋がる。

   ●容易なテスト実行手段の提供

テストをリアルタイムで実行する方法と、スケジュール設

定し実行する方法の二つの実行手段を提供している。ス

ケジュール設定した場合、回帰テストを定期的に行うこ

とが可能となる。

   ●テスト結果の履歴表示

これまでに行ったテストの結果履歴を一覧で確認でき

る。また、それぞれのテスト結果の詳細も確認できる。

( 図3)

図3 テスト結果一覧表示画面

   ●画面スナップショットの取得

テスト実行時の Web アプリケーション画面をスナップ

ショット画像として取得できる。取得したスナップショッ

トは TaaS プラットフォームよりまとめてダウンロード

してエビデンスとして利用可能である。( 図4)

図4 スナップショット表示画面

図5 テストスクリプトジェネレータ全体図

図6 シナリオ一覧シート

図7 シナリオシート

表2 検証で利用するテスト方法の詳細

4.2 結果それぞれの方法で費やした時間を検証した(表3)。

4.3 評価 テストの一連の作業にかかった工数を比較したグラフが図8

である。

 テスト仕様書作成における工数を比較すると、③の方法では

テスト仕様書では通常記述されない具体的なアプリケーショ

ン情報の入力が必要なため、①、②の方法よりも多くの工数が

かかっている。

 テストスクリプト開発における工数を比較すると、②の方法では

一つ一つ動作確認をしながらテストスクリプトを作成しなければ

ならない分、多くの工数を必要とした。③の方法ではテストスクリ

プトを自動生成するため、テストスクリプトの動作確認も含め30

分以下の少ない工数でテストスクリプトを作成することができた。

 テスト実行&結果確認における工数を比較すると、①の方法

では手動でテスト実行と結果確認を行う分、多くの工数を必要

とした。②、③の方法は自動でテストを実行するため、①の方

法と比べ、工数は大きく削減できた。

 テスト全体の工数を比較すると、テスト対象が1環境の場合に

は、①と③の方法の工数が同等の結果となった。また、テスト対

象の環境を増やしていくほど、②、③のテスト自動化の効果が

現れ、テスト対象が16環境の場合には①の方法の工数が圧倒

的に多くなった。よって、クロスブラウザを対象にしたテストを

行う場合、テスト自動化の方法は大変有効であり、特に③の方

法では少ないテスト対象環境でも効果があることが確認でき

た。同様に、テスト対象環境の数だけでなく、再テスト・回帰テス

トによるテスト実施回数の増加にも効果が現れると思われる。

図8 テスト工数比較グラフ

TAKAGI Shinya

高木 慎也

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

NISHIKAWA Miki

西川 美紀

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事

KATO Yasunori

加藤 康記

● 先端技術研究所 研究開発部 主事● ソフトウェア生産性向上に関する研究に従事● 情報処理学会、日本知能情報ファジィ学会、 各会員

表1 主な「機能テスト」自動化ツール

3.2 テストスクリプトジェネレータ(1)テストスクリプトジェネレータとは

 テストスクリプトジェネレータとは、Microsoft Excel

(以降、Excel)のシートに必要なデータを入力することで

テスト仕様書とテストスクリプトを自動生成するツールで

ある(図5)。

(2)テストスクリプトジェネレータの特長

 テストスクリプトジェネレータは以下の特長をもち、テス

トの生産性と品質を向上できる。

   ●テストスクリプト言語の理解不要

ツールのユーザインタフェースにExcelを使用しており、テ

スト仕様書を作成する手順でデータをシートに入力する

ことで、テストスクリプトを自動生成できる(図6、図7)。

   ●テスト仕様書とテストスクリプトを同時に生成・管理

作成した Excel シートから、テストスクリプトだけでな

くテスト仕様書も自動生成するため、テスト仕様に変更

があってもシートを編集することでテスト仕様書とテス

トスクリプト両方に反映することができる。

   ●テスト内容を開発者間で共有でき、一覧性が高い

テスト内容は Excel シートで管理され、自然言語のみで

記述されることから、開発者間での認識の共有がしやす

い。また一覧表でテストを管理できるので、テストの網

羅性を確認しやすく漏れを防ぐ効果が期待できる。

ツール名

QuickTest Professional(1)

Functional Testing(2)

Rational Functional Tester(3)

TestComplete(4)

Silk Test(5)

anyWarp Capture/Replay(6)

Selenium(7)

提供ベンダ

日本ヒューレット・パッカード社

日本オラクル社

日本アイ・ビー・エム社

SmartBear Software 社

マイクロフォーカス社

日立ソリューションズ社

openQA(オープンソース)

環境準備 テスト仕様書 テストスクリプト テスト実行 テスト結果

特になし

Seleniumのインストール、テストクライアントの準備

設定

Excelを使って手作業で作成

Excelを使って手作業で作成

テストスクリプトジェネレータ用のExcelシートに記入し、自動生成

利用しない

Selenium IDE (9)

を利用して作成したものをベースに手作業で修正

テストスクリプトジェネレータで自動作成

手動実行

Seleniumで自動実行

TaaSプラットフォームで自動実行

Web画面を目視で確認

テストフレームワーク(JUnit( 10 ))の出力情報から確認

TaaS Webの結果画面から確認

①手作業でテスト

②Seleniumのみで テスト自動化を導入

③TaaSを用いて テスト自動化を導入

環境準備

テストシート作成

環境準備

テスト実行&結果確認(自動1環境)

テスト実行&結果確認(自動残り15環境)

テスト実行&結果確認(自動1環境)

テストスクリプト開発

TaaSプラットフォーム(on共通開発基盤ezPlatform) ユーザ側必要環境

テストクライアント

IE

firefox

WebDriver

テストクライアント

IE

firefox

WebDriver

テストクライアント

Android WebDriver

Jenkins(+ant)

TaaS Web

テスト対象Webアプリケーション

ブラウザ

テスト実行(Webアクセス)

TaaS サーバ

テスト指示

テスト実行管理

TaaSフロントエンド

テストスクリプト取得

TaaS管理者 TaaS利用申請

登録

①システム構築

②テストスクリプト開発

③テストスクリプト管理

④テスト環境登録、テスト結果閲覧

Subversion

プロジェクト環境

開発者

プロジェクト管理者独自開発部分

eclipse

テストクライアント

IE

firefox

WebDriver

Selenium2Server(Grid)

TaaS Web

TaaSプラットフォーム テストスクリプトジェネレータ

クロスブラウザ環境 テスト自動化環境

Firefox IE

Windows AndroidSelenium

テストスクリプト自動生成

テストスクリプト テスト仕様

TaaSフロントエンド ブラウザ

テスト実行

実行結果 実行指示

実行自動生成

実行指示

結果閲覧

作成

開発者

テストスクリプトジェネレータ

(1)http://h50146.www5.hp.com/products/software/hpsoftware/solutions/lineup/qtp/new.html(2)http://www.oracle.com/technetwork/jp/ats-tech/products/oracle-functional-testing-518227-ja.html(3)http://www-06.ibm.com/software/jp/rational/products/test/rft/(4)http://smartbear.com/products/qa-tools/automated-testing-tools

テスト連番

(5)http://www.microfocus.co.jp/products/silk/silktest/(6)http://www.hitachi-solutions.co.jp/anywarp_capturereplay/sp/(7)http://seleniumhq.org/

成功率の推移100

75

50

25

0#1  #2  #3  #4  #5  #6  #7  #8

成功率(%)

テスト環境により振り分け

と組み合わせた16環境とした。テスト自動化ツールはSelenium

を用いた。

 また、テスト対象としたのは以下のようなWebアプリケー

ションである。

● ログインが必要であり、会員向けにさまざまな条件での情報

 検索の機能を提供している。

● クロスブラウザに対応している。

● 開発言語としては、クライアントサイドにJavaScriptとHTML、

 CSS(Cascading Style Sheets)を使用している。

(9) Seleniumが提供する部品の一つ。ブラウザ上で操作した内容を記録してテストスクリプトを作成するFirefoxのプラグイン。(10)Java言語によるテスト自動化を行うためのフレームワーク。Seleniumでは、テストスクリプトを実行させるフレームワークとして使用している。

表3 検証結果

環境準備工数

テスト仕様書作成工数

テストスクリプト開発工数

テスト実行&結果確認工数 テスト合計工数

1環境 16環境 1環境 16環境

0m

1h20m

6m

2h27m

2h27m

3h31m

- 

6h49m

24m

2h15m

16m

19m

36h11m

3h18m

1h10m

38h38m

13h54m

5h11m

4h42m

10h52m

4h20m

※1h=1時間、1m=1分間

テスト仕様書作成

テスト実行&結果確認

(手動1環境)

テスト実行&結果確認

(手動残り15環境)

テスト仕様書作成

テストスクリプト開発

テスト実行&結果確認

(自動残り15環境)

単位:時間(h) 1 2 3 4 5 6 7 8 9 10 11 12 13 38

Script

Excelシートにデータを入力するだけで

テストスクリプトが自動生成!!

改修に伴うテストスクリプトの修正を簡略化!!

TaaSで実行可能!!

開発者

①入力

⑤再編集

Excelシート

テストスクリプトジェネレータ

②自動生成 テストスクリプト

テスト仕様書

③テスト実行

④確認

管理者/お客様

TaaS/Selenium

テストスクリプトとテスト仕様書の二重管理を解決!!

Script

generator

Spec.