テスト自動化で効果を出すためのアプローチ～ぶつかる壁の乗り越え方～
2016年9月2日
株式会社NTTデータMSE 札幌事業部 第三IoT開発部
渡部 純樹

Copyright © 2016 NTT DATA MSE Corporation自己紹介
■自己紹介■

渡部純樹（わたべよしき）
通称：わたべん株式会社NTTデータMSE（入社17年目）
札幌事業部 第三IoT開発部 主任
あと数年で40歳になるアラフォー
モバイル端末のテスト担当歴”10年”くらい
Copyright © 2016 NTT DATA MSE Corporation

2

会社紹介

■会社紹介■＜株式会社NTTデータMSE＞
設立：1979年（昭和54年）
資本金：3億2000万円
人員：1,113名

NTTデータMSEのIoTソリューション

本社：〒222‐0033
神奈川県横浜市港北区
新横浜三丁目1番地9 アリーナタワー
事業所：新横浜・東京・大阪・札幌・名古屋
URL：http://nttd-mse.com/
Copyright © 2016 NTT DATA MSE Corporation

3

目次

１．背景

２．ぶつかった壁
３．解決アプローチ４．今後の野望
最後に・・・

Copyright © 2016 NTT DATA MSE Corporation

4

１．背景（自動試験ツール導入前）
私は、スマートフォン向けに開発されたアプリのリリース前テストを担当しています。
最近、下記のような課題が出てくるようになってきました。
発売機種×OS×多機能化の条件が多く、テスト件数が多くなった
発売サイクル×OSの更新間隔が短く、テスト期間も短くする必要がある

最近の悩み

やることが多くなってきて、効率が悪くなってきてる。
早く帰って、のんびりしたい。何かいい方法ないかなぁ？

最近、自動試験ツールが高機能化していると聞いた。 考えた末の自動試験ツールを導入したら、効率が良くなるはず！
答え
Copyright © 2016 NTT DATA MSE Corporation

5

１．背景（自動試験ツール導入後）

自動試験ツール導入後思ってた結果と違って、そんなに効果が出てない。
自動試験ツールは銀の弾丸ではなかった。
やっぱりそう簡単に効果でないよね。

Copyright © 2016 NTT DATA MSE Corporation

6

１．背景（わたべんの主張）

自動試験あるある
一度スクリプトを作成すれば使いまわせる

ボタンを押せば全てが自動で試験してくれる

そんなに簡単にはテスト自動化できません。
私たちは言いたい！
自動試験ツールを導入しただけではテストの効率化はできない！
私がぶつかった特に大きな２つの壁とそれを乗り越えた方法を事例を交えて紹介します。
Copyright © 2016 NTT DATA MSE Corporation

7

２．ぶつかった壁

その１：当初計画50%の項目が自動試験適用不可となった
その２：スクリプトのメンテナンス時間が計画400%の稼働が発生

Copyright © 2016 NTT DATA MSE Corporation

8

２．ぶつかった壁 -その1-

当初計画50%の項目が自動試験適用不可となった

計画比50%減＜図1：自動試験件数の計画・実績＞

原因

既存のテスト項目が自動試験ツールで実行・確認可能な試験手順や確認内容になっていなかった

Copyright © 2016 NTT DATA MSE Corporation

9

２．ぶつかった壁 -その1■自動試験ツールで結果確認できない試験項目■
アプリ

ログインアプリ概要

アプリを起動しサイトにログインする

テスト内容【試験手順】
1.アプリを起動する
2.ログイン画面へ遷移させる
3.サイトへログインする【確認内容】
2.ログイン画面のレイアウトが正しいこと
3-1.ログイン後、サイトメニューが表示されること
3-2.ログインできたことをログで確認する

2.ログイン画面のレイアウトが正しいこと【自動試験適用不可】
・確認する箇所がわからない

3-2.ログインできたことをログで確認する【自動試験適用不可】
・ツールでログを確認する機能がない
Copyright © 2016 NTT DATA MSE Corporation

10

２．ぶつかった壁 -その2-

スクリプトのメンテナンス時間が当初計画400%の稼働が発生！

計画比400％増＜図2:メンテナンス時間の計画・実績＞

原因

実
施
機
種数
OS数

①機種毎のUI差分やOSバージョンを想定したスクリプト設計になっていなかった②ツールの熟練度が低かった＜図3：スクリプト作成＞
Copyright © 2016 NTT DATA MSE Corporation

11

２．ぶつかった壁 -その2-■機種毎のUI差分■
アプリ

設定アプリ

概要

BluetoothをOFF→ONにする

テスト内容【試験手順】
1.設定画面を表示させる
2.Bluetooth設定画面へ遷移し、ONにする【確認内容】
1.Bluetoothアイコンが表示されること
2.BluetoothをONに出来ること

機種により違う部分①アイコンが違う②デザインが違う……

Nexus5(SIMフリー/OS:6.0.1)
Copyright © 2016 NTT DATA MSE Corporation

Galaxy S6 Edge
(Softbank/OS:6.0.1)

Xperia™ Z4(au/OS:6.0)
12

3-1. 解決アプローチ：計画50%が自動試験適用不可

Copyright © 2016 NTT DATA MSE Corporation13

3-1. 解決アプローチ：計画50%が自動試験適用不可

当初計画50%の項目が自動試験適用不可となった

計画比50%減＜図1：自動試験件数の計画・実績＞

原因

既存のテスト項目が自動試験ツールで実行・確認可能な試験手順や確認内容になっていなかった

Copyright © 2016 NTT DATA MSE Corporation14

3-1. 解決アプローチ：計画50%が自動試験適用不可

3-1-1:自動試験向けテスト項目作成ルールの策定

秘伝：自動試験テスト項目規約作成！
一．確認観点はシンプルにすべし！

二．テスト項目内の曖昧な表現は排除すべし！
効果：テスト項目を見直し、適用件数が増えた！
Copyright © 2016 NTT DATA MSE Corporation15

3-1. 解決アプローチ：計画50%が自動試験適用不可考察
今回の解決アプローチが一定の効果があることが分かった。
1回しか実施しない試験は自動化適用しても効率化できない。
単純に“自動化可能＝効率化可能”の方程式は成り立たない

計画値をほぼ達成！

＜図4：自動試験件数の計画・実績（対策後）＞

今後は自動試験の適用件数をさらに増やす取り組みが必要
Copyright © 2016 NTT DATA MSE Corporation16

３-2. 解決アプローチ：計画400%の稼働が発生

Copyright © 2016 NTT DATA MSE Corporation17

３-2. 解決アプローチ：計画400%の稼働が発生
スクリプトのメンテナンス時間が当初計画400%の稼働が発生！

計画比400％増＜図2:メンテナンス時間の計画・実績＞

原因

実
施
機
種
数
OS数

①機種毎のUI差分やOSバージョンを想定したスクリプト設計になっていなかった②ツールの熟練度が低かった＜図3：スクリプト作成＞
Copyright © 2016 NTT DATA MSE Corporation18

３-2. 解決アプローチ：計画400%の稼働が発生
3-2-1:機種/OSバージョンを考慮したスクリプト設計ルールの策定

秘伝：スクリプト設計規約作成！
一．メーカ毎の特徴を処理分岐すべし！

開始
処理A

OSは？

機種は？

二．OSバージョンありきの設計をすべし！

処理B

三．繰返し処理はコンポーネント化すべし！

終了

処理C

処理D

効果：メンテナンス時間が少ないスクリプトになった！
Copyright © 2016 NTT DATA MSE Corporation19

３-2. 解決アプローチ：計画400%の稼働が発生
3-2-2:ツールベンダ技術者との合同合宿開催

秘伝：盗める技術はすべて盗め！
一．やっぱり基礎が重要！ ツール基本機能を修得！
二．意外と重要！？エラー処理の考え方を修得！

三．同じ釜の飯を食うことで、裏コマンドもゲットだぜ！
効果：スキルアップによるスクリプト作成生産性の向上
Copyright © 2016 NTT DATA MSE Corporation20

３-2. 解決アプローチ：計画400%の稼働が発生考察

アプローチによりメンテナンス時間を60%削減することができた。
計画時の見積精度が低かった。今後は対策後の時間で見積る。

実績比60％減

一定の効果はあった！
＜図5：スクリプトメンテナンス時間（対策後）＞

今後はメンテナンス以外の作業も改善する必要がある
Copyright © 2016 NTT DATA MSE Corporation21

４. 今後の野望

1：自動試験のプロセス再定義
・自動試験可能なテスト項目を中心したテスト計画
・自動試験プロセスをステークホルダー（顧客・メンバー）と共有
2：自動試験の高度化
・テスト管理ツールと連携し、実施したテスト結果を自動で反映・ciツール(Jenkins)と連携し、自動試験スケジュールを最適化

自動試験の世を築くのはこれからである！！
Copyright © 2016 NTT DATA MSE Corporation22最後に…

今回のことを通じて、自分の行ってきた作業をもう一度見直すことが出来ました

自動試験に限らず、新しいことにチャレンジする“テストエンジニア”を目指していきます

Copyright © 2016 NTT DATA MSE Corporation

23

おまけ

今では早く帰る事が出来て、のんびりできてます
御清聴ありがとうございました
Copyright © 2016 NTT DATA MSE Corporation

24

Copyright © 2011 NTT DATA Corporation

Copyright © 2016 NTT DATA MSE Corporation