Webアプリケーションテストの⽣生産性向上への取り組み〜～クラウド型テスト⾃自動化環境TaaSの開発〜～

研究開発部  ⾼高⽊木慎也

Agenda• 企業概要• テスト⾃自動化について• TaaS(Testing  as  a  Service)• テストスクリプトジェネレータ
• TaaS  Web• TaaSの利利⽤用評価• まとめと今後の予定

Copyright © 2015 INTEC Inc. All rights reserved.

1

企業概要

基礎データ

特 　⻑⾧長本社所在地

富⼭山県富⼭山市（本社）東京都江東区（東京本社）

設⽴立立⽇日1964年年1⽉月11⽇日

資本⾦金金

208億30百万円（2014年年4⽉月1⽇日現在）売上⾼高1034億90百万円（2014年年3⽉月期）

経常利利益

52億46百万円（2014年年3⽉月期）

従業員数

3,687名（2014年年4⽉月1⽇日現在）代表取締役社⻑⾧長滝澤    光樹

Copyright © 2015 INTEC Inc. All rights reserved.

ITのトータルカンパニー（コンサルから運⽤用・保守までのワンストップサービス）

安⼼心のアウトソーシング（豊富なデータセンター、ネットワーク運⽤用実績）

完全マルチベンダー（独⽴立立系企業の強みを⽣生かした⾃自由度度の⾼高いサービス）

コンピュータ･ユーティリティの実現（「いつでも、どこでも、誰にでも」を⽬目指して）

2

先⽤用後利利の精神（富⼭山の薬売りから 　「サービスが先、利利益は後」）

事業拠点紹介

富⼭山本社ビル（タワー111）

インテック本社前ビル（ポートラムスクエア）

株式会社パワー･アンド･IT
武漢	

新潟ビル

札幌ビル

札幌	⾼高岡ビル

山形	

高岡	  
砺波	

上海	

金沢	

仙台	
魚津	
富山	

新潟	
長野	

福井	
京都	
山口	

神戸	
広島	

福岡	

松山	

高松	

東京	
横浜	大阪	

大分	

Copyright © 2015 INTEC Inc. All rights reserved.

⼤大阪ビル

横浜ビル
3東京ビル

新宿ビル

仙台ビル

弊社のソフトウェア⽣生産環境の課題と⽅方針• ⽣生産環境の共通課題• 全国各拠点や組織に分散する開発･保守プロジェクト 　-‐‑‒⽣生産環境の情報流流通･共有や標準化が容易易ではない• ⽣生産環境はプロジェクト毎に様々で個別性が⾼高い• プロジェクトの努⼒力力だけではツール利利⽤用は進まず、⼈人⼿手に頼る部分が多い

ソフトウェア⽣生産環境⾰革新の取り組み⽅方針• 部分最適から全体最適へ• ⽣生産環境の標準化と共通化により、技術やノウハウを結集• リソース集約によるコストの削減・最適化（例例：ezPlatform[全社共通開発プラットフォーム]）• 単純作業は極⼒力力⾃自動化し、技術者はより⾼高度度な業務へ

Copyright © 2015 INTEC Inc. All rights reserved.

4

標準化
共通化
⾃自動化

テスト⾃自動化について

Copyright © 2015 INTEC Inc. All rights reserved.

5

なぜ今テスト⾃自動化が必要なのか？
• IT技術の進化と多様化• スマートフォンやタブレット型端末など様々な機種が登場• OSやブラウザ、バージョンの組合せの増加
Ø テスト対象プラットフォームの多様化• ビジネスや技術⾰革新のスピードの加速• アプリケーションの⾼高速開発が求められる⼀一⽅方、⼀一定以上の品質確保も求められている。
• 短期間に相当量量のテストを⾏行行うための⼯工夫・取り組みが求められる。
Ø テスト頻度度の増加、期間短縮、⾼高品質確保• ⼈人為的なミスや漏漏れ、技術者モチベーションの低下• ⼿手動テストでは、操作や結果検証が属⼈人的になりがちでミスや漏漏れが起こり易易い。
• テストは単調で時間がかかる業務であり、技術者のモチベーションが低下しがち。
Ø テスト品質の低下要素増⼤大• このようにテスト⼯工数負荷は急拡⼤大しており、これまで通りの⼿手動テストでは対応が困難になる。
• テスト⽣生産性向上のためには、テスト⾃自動化が必要となる。

Copyright © 2015 INTEC Inc. All rights reserved.

6

そもそも、テストの⾃自動化とは■従来のテスト⽅方法（⼿手動テスト）
⼈人⼿手でアプリケーションを操作してテストを⾏行行う。
⼿手動操作

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

テスト担当者■⾃自動化したテスト⽅方法開発したテストスクリプトにより、テスト⾃自動化ツールが⾃自動でアプリケーションを操作してテストを⾏行行う。
開発

テスト担当者

⾃自動操作
テストスクリプト

Copyright © 2015 INTEC Inc. All rights reserved.

テスト⾃自動化ツール

7

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

テスト⾃自動化におけるメリットと課題• テスト⾃自動化によるメリットü 繰返しの多いテスト作業を⾃自動化し、⼯工数を削減できるü 並列列実⾏行行・夜間実⾏行行により、テスト期間を短縮できるü 属⼈人性を排除することができるので、テスト品質の向上を図れる
ü 技術者はより⾼高度度で知的な仕事に集中できる• テスト⾃自動化における課題ü テスト環境やテスト要員をプロジェクト内で準備する必要があるü テストスクリプトの開発⼯工数の負荷が⾼高いü テストスクリプトの理理解及び内容の共有が困難• TaaS(Testing  as  a  Service)では、これらの課題を解決するための機能を提供している
Copyright © 2015 INTEC Inc. All rights reserved.

8

TaaS(Testing  as  a  Service)

Copyright © 2015 INTEC Inc. All rights reserved.

9

TaaS【Testing  as  a  Service】
・テスト⾃自動化環境を提供する社内向けサービス「テストスクリプトジェネレータ」  「TaaS  Web」の2つのサービスで構成

テスト実施（⾃自動）テスト対象Web
アプリケーション
テスト担当者①テストスクリプト作成

テストスクリプト⾃自動⽣生成ツールを提供(テストスクリプトジェネレータ)②テストスクリプト登録

テスト担当者

Copyright © 2015 INTEC Inc. All rights reserved.

スクリプト取得（⾃自動）
ソース管理理サーバ③TaaSへのテスト環境登録、テスト実⾏行行・テスト結果閲覧

10

クロスブラウザテストや回帰テスト等の⾃自動化環境を提供(TaaS  Web)

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

Copyright © 2015 INTEC Inc. All rights reserved.

11

テスト⾃自動化のための課題（テストスクリプトの開発）
テストの⾃自動化を⾏行行うためには、複雑なテストスクリプトを作成する必要がある【テストスクリプトの例例】

プログラムによる開発が必要。

public class Test_TaaSDemo {@Testpublic void case1() throws Throwable {Desktop desktop = new Desktop();
BrowserWindow window =desktop.<BrowserWindow>find("/BrowserApplication//BrowserWindow");
window.navigate("http://xxx.yyy.zzz.co.jp/SampleApp/");

TaaSでは「テストスクリプトジェネレータ」
により、テストスクリプトを⾃自動作成//(2/4) 「ユーザID」をクリアし「user1」を入力する(HTML/テキスト入力フォーム)
DomTextField textField =window.<DomTextField>find("//*[@name='userId']");
if (textField.getProperty("disabled") != null &&textField.getProperty("disabled").equals(Boolean.TRUE)) {throw new Exception("テキストフィールドは無効化状態(disabled)なので編集できません。");}
textField.setFocus();
String text = textField.getText();
textField.setText("");
textField.typeKeys("user1");……

Copyright © 2015 INTEC Inc. All rights reserved.

12テストスクリプトジェネレータについて・Excelシートにテストシナリオ(テスト⼿手順のアクションとパラメータ)を記⼊入することで、テストスクリプトを⾃自動⽣生成するツール①⼊入⼒力力（Excel）②⾃自動⽣生成③テスト実⾏行行

テスト担当者④再編集（Excel）

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

テストスクリプト
ローカルPC

アクション追加

⼊入⼒力力補助ダイアログ

Copyright © 2015 INTEC Inc. All rights reserved.

13※スクリプトを理解しなくても、入力補助を用いることで入力することが可能	

画⾯面サンプル：テストシナリオ⼀一覧シート
複数のテストシナリオを⼀一覧表で管理理することが可能
テストの分類等をシートに記述することで、テスト後のメンテナンスが容易易にテストの種類・分類を記述することが可能

Copyright © 2015 INTEC Inc. All rights reserved.

14

テストスクリプトジェネレータの特⻑⾧長Ø テストスクリプト⾔言語の理理解不不要ü ツールのユーザインタフェースにExcel  を使⽤用ü テスト仕様書を作成する感覚でテストスクリプトを⾃自動⽣生成Ø テスト内容の開発者間での共有化

ü テストシナリオは⾃自然⾔言語で記述されるので、テスト担当者間での認識識の共有が容易易ü テストシナリオを⼀一覧表で管理理できるので、テストの網羅羅性を確認しやすく漏漏れを防ぐことが可能Ø テストシナリオのメンテナンス性の⾼高さ

ü テスト対象のアプリケーションが変更更された場合、変更更部分に相当するシートのみを修正することで対応可能
ü 作成されたシートは可読性が⾼高いので、テスト担当者が変わっても変更更部分の確認が容易易

Copyright © 2015 INTEC Inc. All rights reserved.

15⼀一般的な⾃自動化ツールとテストスクリプトジェネレータの⽐比較■⼀一般的なテスト⾃自動化ツール（キャプチャ＆リプレイ型）①作成（アプリケーションを操作）
⼊入⼒力力情報

テスト対象アプリ
ケーション③テスト実⾏行行②修正（直接コードを修正）④再編集

テストスクリプト

テスト担当者

ローカルPC■テストスクリプトジェネレータ（キーワード駆動型）①作成（テスト⼿手順を記述）
⼊入⼒力力情報③テスト
スクリプト⽣生成②修正（テスト⼿手順を修正）
⑤再編集

設計情報

テスト担当者

テストシート④テスト実⾏行行

テストスクリプト

ローカルPC

メリット

デメリット

キャプチャ&リプレイ型

・アプリケーションを操作するだけで対応するテ
ストスクリプトが⽣生成できる・アプリケーション開発後でないとテストスクリプト作成にとりかかれない・⽣生成されたテストスクリプトは殆どの場合修正する必要がある
・テストスクリプトのメンテナンスが⼤大変
・実⾏行行環境毎にテストスクリプトをメンテナンスする必要がある

キーワード駆動型(テストスクリプトジェネレータ)

・アプリケーション開発前からテストスクリプト ・テストシートの⼊入⼒力力に⼿手間がかかる作成に取り掛かれる・簡単な知識識でテストスクリプト作成できる・作成者以外もテスト内容を理理解することが出来、レビュー、メンテナンスが容易易・ルール化や再利利⽤用がしやすい

Copyright © 2015 INTEC Inc. All rights reserved.

16

TaaS  Web

Copyright © 2015 INTEC Inc. All rights reserved.

17

TaaS  Webについて・クラウド上にあるOS×ブラウザの組み合わせを利利⽤用して、⾃自動化テストを⾏行行えるテスト実⾏行行環境
・全プロジェクトでテストクライアント環境を共有化して利利⽤用（プロジェクト側でマシンを⽤用意する必要がない）
テストできるアプリケーションは、Webアプリケーションのみ

テストスクリプトジェネレータ
で開発したテストスクリプト
テスト対象Web
アプリケーション

テスト実施（⾃自動）スクリプト取得（⾃自動）テスト担当者

eclipseテスト
スクリプト

Subversion

ブラウザ

Copyright © 2015 INTEC Inc. All rights reserved.

実⾏行行指⽰示

18

TaaS  WebTaaS  Webの提供機能Ø テスト実⾏行行指⽰示
ü テストを直ちに実⾏行行させる
ü 指定した時間にテストを開始できるØ テスト実⾏行行環境の指定
ü テスト実⾏行行環境選択画⾯面からチェックボックスで指定する
Ø テスト結果⼀一覧・詳細結果の確認
ü テスト結果の⼀一覧を閲覧できる
ü テスト結果の履履歴管理理が可能
ü 各テストの環境毎の詳細な結果が閲覧できるü スナップショットやダウンロードファイルの取得が可能

テスト結果⼀一覧表

テスト実⾏行行環境選択画⾯面
Copyright © 2015 INTEC Inc. All rights reserved.

19

TaaS  Webで提供しているテスト環境
現在のTaaS環境では、以下のOS・ブラウザの組み合わせ環境を提供※ユーザからの要望に応じて順次追加可能※Firefox,Chromeはバージョンアップ頻度度が⾼高いため、定期的にバージョンアップを実施※Macはテスト⾃自動化ツールが対応していないため未提供■Windows  VistaØ Internet  Explorer  7,8,9
Ø FirefoxØ Google  Chrome■Windows  7
Ø Internet  Explorer  8,9,10,11
Ø FirefoxØ Google  Chrome■Windows  8,  8.1
Ø Internet  Explorer  10,11
Ø FirefoxØ Google  Chrome

Copyright © 2015 INTEC Inc. All rights reserved.

20

画⾯面サンプル：テスト実⾏行行環境設定
テストを実⾏行行する環境をブラウザ画⾯面から指定できます。

テスト実⾏行行環境をチェックボックス
で指定

Copyright © 2015 INTEC Inc. All rights reserved.

21

画⾯面サンプル：テスト結果詳細画⾯面
テスト実施結果をブラウザ画⾯面から確認できます。

テスト結果を確認

Copyright © 2015 INTEC Inc. All rights reserved.

22

画⾯面サンプル：スナップショット⼀一覧画⾯面
テスト実⾏行行時の画⾯面をブラウザから確認できます。
⼀一括でダウンロードしてローカルPCで確認することも可能

ツリーから表⽰示したいテストシナリオを指定

Copyright © 2015 INTEC Inc. All rights reserved.

23

スナップショットのプレビュー表⽰示

関連ツール：スナップショットビューア
テスト中に取得したスナップショットを環境毎に⽐比較しやすくするためのツール。
→  画⾯面の崩れは、⽬目で判断することが必要。
Windows  Vista×IE8で実施したテストのスナップショット

Windows7×IE9で実施したテストのスナップショット

左右に並べると違いが分かりやすい。
→画⾯面の崩れが発⾒見見しやすい。

Copyright © 2015 INTEC Inc. All rights reserved.

24⼀一般的なテスト⾃自動化環境とTaaS  Webの⽐比較■⼀一般的なテスト⾃自動化環境（ローカル実⾏行行型環境）①テスト開始命令令(環境毎に⾏行行う必要有)②テスト実⾏行行③テスト結果確認
テストクライアント環境(ローカル)

テスト担当者

テスト対象Web
アプリケーション■TaaS  Web（クラウド型テスト⾃自動化環境）①テスト実⾏行行環境登録③テスト環境選定・
実⾏行行命令令(⼀一括)②テスト開始命令令(⼀一括)テスト担当者⑤テスト結果確認④テスト実⾏行行(複数同時実⾏行行可)テスト対象Web
アプリケーション

TaaS  Web

各テストクライアント環境

メリット

デメリット

⼀一般的なテスト⾃自動化
環境

・テスト実⾏行行時にブラウザ上の動きを確認できる。 ・テストクライアント環境を各プロジェクトで⽤用意する必要がある。
・運⽤用側でテストクライアント環境の状態を確認できないため、サポートが⾏行行いにくい。

TaaS  Web・テストクライアント環境をプロジェクト側で⽤用意する必要がないため、テスト⾃自動化の導⼊入が容易易である。
・運⽤用側で各テストクライアント環境の状態を確認できるので、サポートを迅速に⾏行行いやすい。
・複数環境でのテストを⼀一括で実⾏行行できる。

Copyright © 2015 INTEC Inc. All rights reserved.

25

・テスト実⾏行行時にブラウザ上の動きを確認できない。
※スナップショットを撮影して、ブラウザを通して閲覧することは可能。

TaaSの利利⽤用評価

Copyright © 2015 INTEC Inc. All rights reserved.

26

TaaSの利利⽤用評価l 2013年年3⽉月からTaaSの提供を社内向けに開始
l 提供開始から2014年年12⽉月までの間に40件以上のプロジェクトがTaaSを利利⽤用（ほとんどのプロジェクトがテスト⾃自動化未経験）l 利利⽤用評価として、TaaSを利利⽤用した13プロジェクトにおいて、テスト⾃自動化の効果を調査した

Copyright © 2015 INTEC Inc. All rights reserved.

27

「テスト⾃自動化の効果」に関する評価１ 　テスト⾃自動化により、どの程度度の改善効果があるのか• どの位のテストの規模に適⽤用すると効果がでるのか• テストの規模が⼩小さい場合、テスト⽣生産性向上効果が現れない場合がある。
（例例：左図の点線で囲まれたプロジェクト  ）• テストの規模が⼤大きくなるに従い、⾃自動／⼿手動⼯工数⽐比率率率は下がる（⾃自動化効果が⾼高まる）ことが実証できた。
規模(⼿手動テスト⼯工数)と⾃自動／⼿手動⼯工数⽐比率率率
1000%

⼿手動テスト⼯工数と⾃自動／⼿手動⼯工数⽐比率率率900%（⾃自動／⼿手動⼯工数⽐比率率率100%未満を抽出） 　800%

⾃自動
／
⼿手動
⼯工数
⽐比率率率100%

700%

⾃自動／
⼿手動
⼯工数
⽐比率率率

600%
500%
400%
300%
200%

80%
70%
60%
50%
40%
30%
20%
10%
0%

100%
0%

90%

0ｈ

100ｈ 200ｈ 300ｈ 400ｈ 500ｈ 600ｈ 700ｈ

⼿手動テスト⼯工数
0ｈ

100ｈ

200ｈ

300ｈ

400ｈ

⼿手動テスト⼯工数
Copyright © 2015 INTEC Inc. All rights reserved.

500ｈ

600ｈ

700ｈ

⾃自動⼯工数  <  ⼿手動⼯工数
28

「テスト⾃自動化の効果」に関する評価２ 　テスト⾃自動化により、どの程度度の改善効果があるのか• 何回程度度テストを繰り返すと効果がでるのか• テストの繰返し回数が少ない場合、テスト⽣生産性向上効果が現れない場合がある。
（例例：左図の点線で囲まれたプロジェクト）• テスト繰返し回数が増えるに従い、⾃自動／⼿手動⼯工数⽐比率率率は下がる（⾃自動化効果が⾼高まる）ことが実証できた。（クロスブラウザテストの場合、概ね10回の繰返しで3/4、17回程度度で1/2、24回程度度で1/4）
テスト繰返し回数と⾃自動／⼿手動⼯工数⽐比率率率

テスト繰返し回数と⾃自動／⼿手動⼯工数⽐比率率率

350%

⾃自動／
⼿手動
⼯工数
⽐比率率率

（⾃自動／⼿手動⼯工数⽐比率率率100%未満を抽出）

 　

300%
100%
90%

250%

⾃自動／
⼿手動
⼯工数
⽐比率率率

200%
150%
100%
50%
0%

⾃自動⼯工数  <  ⼿手動⼯工数
051015202530

テスト繰返し回数（回）
Copyright © 2015 INTEC Inc. All rights reserved.

2980%
70%
60%
50%
40%
30%
20%
10%0%

0510152025

テスト繰返し回数（回）30まとめと今後の予定

Copyright © 2015 INTEC Inc. All rights reserved.

30

まとめ
Ø TaaS(Testing  as  a  Service)ü テスト⾃自動化環境を提供する社内向けサービス
ü 「テストスクリプトジェネレータ」と「TaaS  Web」で構成

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

ü Excelシートにテストシナリオを記⼊入することで、テストスクリプトを⾃自動⽣生成するツールü キーワード駆動形式のため、テストスクリプトの知識識が不不要であり、メンテナンスがしやすいØ TaaS  Web

ü クラウド上にある様々なOS×ブラウザの組み合わせをユーザに提供して、⾃自動化テストを⾏行行えるテスト実⾏行行環境
ü 全プロジェクトでテストクライアント環境を共有化して利利⽤用するため、プロジェクト側の準備負荷を軽減でき、運⽤用サポートも⾏行行いやすいØ TaaSの利利⽤用評価ü テストの規模もしくは繰り返し回数が⼤大きくなるに従い、⾃自動化効果が⾼高まることが実証できた

Copyright © 2015 INTEC Inc. All rights reserved.

31

今後の予定Ø サービス品質の向上

ü 提供機能の充実(利利⽤用者の利利便便性向上)ü 提供アクションの充実(ユーザからの様々なテスト要求への対応)

Ø テスト環境の拡張ü モバイル環境(Android、iOS)等の、テスト環境の拡張ü ネイティブアプリケーション等の、テスト対象アプリケーションの範囲拡⼤大Ø TaaSの⾼高機能化ü 設計情報を基にした、テストシナリオの作成を補助する仕組みの開発
ü テストシナリオの⾃自動作成等、テスト⼯工程全体の⾃自動化の仕組みを検討Ø サービスの利利⽤用促進、全社展開

ü テスト⾃自動化導⼊入ガイド等、社内利利⽤用促進を円滑滑に⾏行行うための準備ü TaaSの更更なる利利⽤用促進、全社展開

Copyright © 2015 INTEC Inc. All rights reserved.

32

THANK YOU	

テスト⾃自動化普及を⽬目指す
組織的な取り組み

Copyright © 2015 INTEC Inc. All rights reserved.

34

全社戦略略に基づく普及･推進･⽀支援体制• 全社戦略略のもと⼀一定の強制⼒力力をもった推進と⽀支援-‐‑‒ トップダウンと横展開の仕組み（本部推進担当、計画的展開など）-‐‑‒ 当初はプロジェクト導⼊入⽀支援を拡充（技術⽀支援､標準化､ノウハウ共有など）-‐‑‒ オフショア活⽤用でスキルとパワーを確保（テスト⾃自動化請負､技術⽀支援など）
STEP1

重点
本部

STEP2

STEP3
PJT

PJT
PJT

プロジェクト

本部推進担当候補

⽀支援組織と⼀一体となり推進＆⾃自動化⽀支援

プロジェクト専⾨門
技術者

OJTによるスキルトランスファ

プロジェクト

本部が主体
となり推進

プロジェクト プロジェクト

⾃自動化
⽀支援

専⾨門
技術者

本部QCD向上推進担当(SEPG)

全社推進/⽀支援組織  (技術部+先端技術研究所)

PJT

PJT

本部が主体
となり推進
⾼高度度な⾃自動化の定着
本部QCD向上推進担当(SEPG)

⾃自動化
⽀支援

テスト専⾨門組織※本部横断の専⾨門技術者

⾃自動化⼿手法検討TF

オフショアテスト専⾨門チーム  (インテック武漢)

Copyright © 2015 INTEC Inc. All rights reserved.

35

テスト⾃自動化の流流れと標準化• 社内標準にテスト⾃自動化プロセスを組み込み、⾃自動化を推進
標準化①テスト⾃自動化導⼊入ガイドの作成

導⼊入検討
計
画

テスト設計
設計

 　⾃自動化の適性を判断し不不必要な⾃自動化をなくす

標準化③テスト設計研修の実施 　テスト設計の考え⽅方をトレーニングし、仕様書 　の書き⽅方、粒粒度度を統⼀一する

標準化④TaaSハンズオン研修の実施

スクリプト作成

実⾏行行

標準化②⾃自動化適性診断の実施

診断
計画策定

 　テスト⾃自動化の基礎知識識を習得させる

テスト実⾏行行 　TaaSの基礎知識識、効果的な使い⽅方を習得する

標準化⑤テストスクリプトジェネレータの活⽤用 　テストスクリプトを標準化し、スクリプトの学習/ 　作成効率率率や可読性、保守性を向上させる

ノウハウ・事例例

メンテナンス評価標準化⑥全社共通DBにデータ蓄積･共有

データ分析・評価

Copyright © 2015 INTEC Inc. All rights reserved.

 　ノウハウ、事例例、課題などを「TaaS  Wiki」に 　集約、利利⽤用者間で共有し改善を図る
36