Slide 1

Slide 1 text

テスト自動化導入事例 ~事例に学ぶ 手動試験に潜む実施コストとテスト自動化の可能性~ 株式会社SHIFT ソリューション本部 ソリューション事業部 アジャイル推進部 DevOps推進2グループ 大築 要

Slide 2

Slide 2 text

1 自己紹介 株式会社SHIFT ソリューション本部 ソリューション事業部 アジャイル推進部 DevOps推進2グループ 経験領域 ・要件定義 ・設計 ・開発 ・テスト計画・実行 大築 要 [email protected] 1979/10/04 45歳 2002年 SIer入社 2008年 通信ベンダー向け携帯端末開発に参画 2011年 某通信企業の施設工事管理システム開発に参画 2023年 大手放送業界のシステムに参画 官公庁向けシステムの開発要員として参画 開発からテストまでの作業を担当 某通信ベンダーが販売する携帯端末のミドルウェア開発のサブリー ダーとして設計、開発、テストを担当 現場にて初期のテスト自動化に出会う 大手通信企業の施設工事管理システム開発アジャイル開発チームに参画 現場にてアジャイルの開発手法とテスト自動化とCI/CDによるDevOps に初めて触れる 単体試験工程においてテスト自動化を取り入れた開発にて設計、開 発、テストを担当 2012年 携帯端末開発に復帰 携帯開発PJに復帰 携帯端末の形態が変わりテスト環境も従来型の手動試験へと変化 以降、一般販売業ECサイト保守PJなども担当するものの現場では従来 型の手動試験が続く 2024年 DevOpsエンジニアとして再出発

Slide 3

Slide 3 text

世の中がまだ「ガラケー」と呼ばれる折りたたみ式フィーチャーフォン全盛期の頃、携帯ミドルウェアの開発現場で、PC上の エミュレータにデータを入力し、結果を確認するという基本的なテスト自動化を導入したプロジェクトに出会い、プログラム が試験を行うという大きな衝撃を受けました。 しかし、この時点ではまだオペレーターがプログラムに置き換わっただけで、実際の環境との乖離も大きく、試験結果の収 集や再実施の仕組みは提供される実行環境にはありませんでした。 2 テスト自動化との出会い 試験結果 エミュレータ (仮想端末) 操作 時が流れ、世代管理や構成管理のためのツールが普及し、アジャイル開発の現場ではCI/CDツールと連携したテスト自 動化が一般的になりました。 そうしたプロジェクトに参画し、テスト自動化の進化を目の当たりにする中で、テスト自動化はもはや限られた人だけのも のではないと感じました。 自動試験実施 試験OK→リリース 試験NG→通知 最新モジュール 確認依頼 ソース取得

Slide 4

Slide 4 text

しかし、開発現場では日々の生産性が重視され、従来の習慣やナレッジの継続が優先されがちで す。その結果、自分もこのプロジェクトの終了をきっかけに、テスト自動化から次第に疎遠になってい きました。 そして、すっかりテスト自動化から遠ざかって10年が経とうとするころ、再び現場でテスト自動化と再 会しました。その効率性や合理性に未来と魅力を感じ、一念発起してDevOpsエンジニアとして再 出発を決意しました。 3 テスト自動化との出会い

Slide 5

Slide 5 text

4 皆さんはテスト自動化というと どんなメリットを浮かべるでしょうか?

Slide 6

Slide 6 text

ChatGPTに、テスト自動化が手動試験に比べて持つメリットを聞いてみたところ、 以下のように回答されました。 1. スピードと効率の向上 自動化試験は一度作成すれば、何度でも迅速に繰り返し実行可能です。 これにより、回帰テストやデータを大量に用いるテストの効率が大幅に向上します。 2. 正確性と一貫性 自動化試験では、テスト手順が毎回正確に再現されるため、 ヒューマンエラーがなく、 一貫性のある結果を得られます。 これにより、品質が確保されやすくなります。 3. コストとリソースの節約 長期的には、テストを繰り返すことで実行コストが下がり、 テスト担当者は他の重要な作業に集中できるため、 プロジェクト全体のリソースを効率的に活用できます。 5 一般的なテスト自動化メリットをAIに聞いてみました

Slide 7

Slide 7 text

「スピードと効率の向上」と「正確性と一貫性」に関しては、「試験実施」を自動 化することでスピードが速くなり品質も向上する。 (即効性が高い) 「コストとリソースの節約」に関しては、コストに対して一般的に長期的な目で見 て回収していく計画が必要。 (即効性は低い) 6 要するに

Slide 8

Slide 8 text

7 テスト自動化のメリットってそれだけでしょうか? ChatGPTの回答は、「テスト自動化」と聞いて「テスト自動化」を知っている人が思い浮かべる内容で あり、模範解答といえるものです。 また、多くの開発現場で享受できるメリットが含まれています。 しかし、試験には各開発現場ごとにそれぞれの特徴があり、課題も異なるのではないでしょうか。 課題も異なれば、「テスト自動化」において「自動化」できる範囲は、まだまだ広げられる可能性もあると いうことだと思います。 今回は、「テスト自動化」における自動化の範囲を拡大し、導入に至った事例についてご紹介します。

Slide 9

Slide 9 text

8 テスト自動化導入事例

Slide 10

Slide 10 text

9 導入計画 フィジビリティスタディー テスト設計・スクリプト量産 CI環境構築 運用・メンテナンス スキルトランスファー フィジビリティスタディーを実施することで、ツールや自動化対象シナリオの妥当性などを検証し、 自動化の効果の最大化を目指す。 スキルトランスファーでは、スクリプトのメンテナンスや運用の観点を伝えし、お客様で運用保守できる 体制構築のご支援を実施。 自動化ツール検証 自動化対象選定 自動化効果検証 自動化可否判断・報告 テスト自動化向けテスト設計 フィジビリティスタディの 結果を踏まえて 自動化スクリプトを量産 自動テストCI環境(任意の タイミングで自動テストを実行 し、履歴を管理できる仕組 み)を構築 お客様側で自動化の運用・保 守できるようにスキルトランス ファーを実施 アプリケーションの更新に合わ せて自動テストを実行、結果 をレポート アプリケーションの改修によって 動作しなくなった自動テストの メンテナンス

Slide 11

Slide 11 text

導入計画 ◼評価方法:以下5つの観点について、4段階(◎◯△×)で評価 ◼アプトプットイメージ ➢評価例 画面要素の指定しやすさ 入力や確認をするにあたり、操作対象の要素を容易に指定できるかどうかを確認する。 入力操作のしやすさ 処理を進めていく際の打鍵操作の複雑性を確認する。通常の入力のみを用いる場合は容易、 インクリメンタルサーチやドラッグ&ドロップなど動的な処理が多くなるほど難易度が上がる。 待機処理の頻度 処理と処理との間に、自動スクリプト独自の待機処理を入れる必要があるかどうかを確認。 1画面ずつ遷移していくアプリケーションであれば待機処理はほとんどなく、画面上で要素の増減が 多い場合は頻繁に待機処理が必要になる。 確認操作のしやすさ 入力操作後の確認項目のチェックしやすさを確認する。 期待値部分とそれ以外で明確にオブジェクトが分離されている場合は比較的操作がしやすくなる。 特殊処理 その他アプリケーション特有の操作で見るべきポイントがあるかどうか。 ➢指摘例 10 ➢費用対効果試算例

Slide 12

Slide 12 text

クラウドERPサービスを利用した会計システム Web画面はもちろん、Excelアドインを使用してExcelから直接データアップロードを行ったり、 Excelマクロで作成したデータをWeb画面上からアップロードを行う 帳票出力もあり、形式はPDFやCSVなど各機能ごとに異なる 11 どんなシステムにテスト自動化を導入しようとしたの? ファイル (Zip) アップロード アップロード 操作 結果出力(PDF/CSVなど) 操作

Slide 13

Slide 13 text

利用するクラウドERPサービスは、対象の会計システムとは関係なしに定期的なアップデートがスケ ジュールされており、アップデートはリリース次第随時クラウドERPサービスを利用する全環境に反映 され、対象の会計システム環境へも反映される 12 どんなシステムにテスト自動化を導入しようとしたの? Update Update 開発環境 本番環境 開発環境への事前適用、 事前確認期間をおいてから 機械的に本番適用 アクセス アクセス Update Update 開発環境 本番環境 アクセス アクセス お客様 (システム利用者) お客様 (システム利用者) Update Update 2024/1Q 2024/2Q

Slide 14

Slide 14 text

・手動テストにて機能間結合を実施、総合試験間近 ・総合試験では、機能間結合で行った操作を入力データ違い・ユーザー違いなどバリエーションを変えて実施 ・開発期間中もクラウドERPサービスの定期アップデートは行われ、リリース都度回帰試験が割り込み 13 導入予定PJ状況 製造 単体試験 結合試験 受入試験 総合試験 完了 完了 進行中 Update 割り込み Update 割り込み 単体試験 結合試験 定期アップデート 定期アップデート 定期アップデート 総合試験 <会計システム開発計画> <クラウドERPサービスの定期アップデート計画> <実際のスケジュール> ※実際には完全に開発が止まるわけではないが、アップデートの対応を後に回すことはできない 単体試験 回帰試験 単体試験 (続き) 回帰試験 結合試験 結合試験 (続き)

Slide 15

Slide 15 text

・投入したデータ、画面表示データ、出力帳票結果(PDF/紙など)を目視でチェックするため、 ヒューマンエラーや工数の増加が発生する ・試験実施に必要な業務要件や実施ノウハウなどが特定の人に集中する 14 お困りごと 確認ミス 失敗 やり直し 工数増加 慣れている人 品質 :良い スピード:速い 消化数:多 慣れていない人 品質 :悪い スピード:遅い 消化数:少 試験項目 ※試験の実施が慣れている人に偏ることが多く、実施によって得られるノウハウが特定の人に集中してしまう。

Slide 16

Slide 16 text

・負荷試験やバリエーション試験では、同じ試験手順を人の手で繰り返し実行するため、非効率的 15 お困りごと アップロード 入力 パターン1データ パターン2データ 結果出力(PDF/CSVなど) : ・試験作業は、試験結果の整形や取りまとめなど、試験に付随する作業に多くの工数がかかる 付随作業 試験実施 少 多 試験データ 帳票 工数 結果収集 結果とりまとめ

Slide 17

Slide 17 text

・費用対効果が出せるのか?新たに導入するソフトなどの費用面は抑えられるのか? 16 テスト自動化に対する不安点 自動化スクリプト開発費用 試験実施コスト 購入費用 (ソフト・ライセンス) 会計システムプログラム 自動化スクリプト VersionA VersionA‘ ・テスト自動化を導入することで、もともとの開発に影響が出ないか? (ソフト・アプリ競合やテスト向けの追加実装など)

Slide 18

Slide 18 text

WebおよびExcelを操作可能なRPAのメジャーツールを比較した結果、無償かつExcel操作可能なRPA Frameworkを選択 ※ RPA Frameworkでは、Python向けのSeleniumLibraryが使用可能であるため実質Selenium も包括 17 環境選定 ツール名 有償/無償 デスクトップ操作 エビデンス取得 Excel操作対応 カスタマイズ性 知名度 RPA Framework 無償 (オープンソー ス) 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (Python, Robot Frameworkで制 御) 高い (Pythonなどで柔 軟にカスタマイズ 可) 中程度 (主に技術者向 け) UiPath 有償 (一部無償) 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (専用アク ティビティあ り) 中程度 (標準機能が多 い) 高い WinActor 有償 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (Excel操作専 用機能あり) 低い (標準機能中心) 日本国内で非常 に高い Selenium 無償 不可 (ブラウザ操作の み) 可能 (ブラウザのスク リーンショット取 得) 不可 (ブラウザ操 作が中心) 高い (多言語対応) 高い

Slide 19

Slide 19 text

効果測定に先立ち手動テストにかかる時間を提示してもらい確認した結果、以下のような配分で 工数をかけていることが判明 本来は試験にかけるべき工数を試験以外の作業に多く要している 18 自動化対象範囲選定 10% 20% 30% 40% システム操作 検証 エビデンス取得 エビデンス加工 30% 70% 実質試験 付随作業 実質的な試験と 付随作業に区分け

Slide 20

Slide 20 text

付随作業って何してるの? 19 自動化対象範囲選定 クロール表示される画面を スクリーンショットで撮影し、 資料上で結合 試験データ <結果確認> <表示データ> <表示データ全体> データ1 データ2 データ3 データ4 : <入力> 試験エビデンス データ1 データ2 データ3 データ4 : 入力と出力が1対1ではない場合 に以下を行いエビデンスを作成 ・検証対象に印・色を付ける ・吹き出しで文字を書き込む etc 出力結果そのまま 加工 Xlsx 試験データ スクリーンショット 帳票 貼り付け エビデンス Xxx1.png Xxx2.png 形式が異なる各種エビデンス をエクセルファイルに貼り付け、 実施した試験に紐づけ xxxx.png(合成して1画像のエビデンスに) テスト自動化スクリプトで全体画像を取得して合成しちゃいましょう そ の 作 業 、 自 動 化 さ せ て み て は ? 〇 試験データ × 試験データ - データ1 〇 データ2 - データ3 × データ4 : 入力と出力の両方を試験エビデンスと して記録し、色付けや照合結果を分 かりやすく表示することで、重要な結 果を強調する。 テスト自動化スクリプトで検証ついでに結果ファイル作りましょう 試験データ 帳票 スクリプトの出力する結果フォルダに集約する。 (テスト自動化に向けて試験ルールも見直し) テスト自動化スクリプトで集約しましょう ③エビデンスの集約 ①スクリーンショットの取得 ②結果に対して検証情報の書き込み

Slide 21

Slide 21 text

自動化対象範囲選定に基づいた観点からテスト自動化スクリプトを試作し導入効果を試算 試算結果 ・機械的な実行による効率的な実施により、システム操作と検証にかかる時間も、手動テストにくらべ平均的に 50%以上削減 ・付随作業は試験実施の一部に組み込まれ、実質時間0 ・オープンソースツールを利用することで初期コスト(ライセンス費用など)を削減 ・手動試験で使用したExcelファイル(入力データ)などを流用しでテスト自動化実施のための準備工数を削減 20 効果測定 1回目 2回目 3回目 4回目 5回目 自動 手動 1回の試験実施ごとにかかるコストが手動テストの10%未満 →試験を重ねるほど、コスト削減効果が高まる テスト自動化の初期コスト(開発コスト)≒手動試験試験実施4回分 →テスト自動化導入コストを早期に回収することが可能

Slide 22

Slide 22 text

以上の効果により一般的に10~15回程度の実施で費用対効果の逆転が発生するところ、フィジビリティスタ ディーにおいては5~6回程度の実施で費用対効果の逆転が可能であるとの試算結果が出て、インパクトを残 しました。 結果、費用対効果だけでなく品質の向上・試験実施時間を別のリソースに展開してリソース活用など様々な側 面もアピールでき1か月間のフィジビリティスタディーを経てテスト自動化を推進することが決定し導入となりました。 ※テストスクリプトの作成工数、1回あたりの実施コスト、突発的なスクリプト改修コストなどをフィジビリティスタディー期間中の 試作実績から算出した数値です。 ※フィジビリティスタディー時点での試算値のため、実際の導入時点での要望対応等の考慮は含んではいません 21 フィジビリティスタディーの結果 実行回数 コスト 1回目 2回目 3回目 4回目 5回目 6回目 7回目 8回目 テスト自動化工数効果 手動テスト 自動テスト 自動テスト( メンテナンス加味)

Slide 23

Slide 23 text

今回の導入事例では、RPA Frameworkを活用し、早期に動作するモックアップを提供することで、 アジャイルライクな進め方を実現しました。 このアプローチにより、ゴールの共有が容易になるだけでなく、要望を早い段階でピックアップすることが 可能となりました。 22 その他(アジャイル開発) ※ の単位で動作可能なものを見てもらい実現方法や要望を取り入れた 試験データ 帳票 照合 <テスト自動化全体像> データ入力 ログイン スクリーンショット

Slide 24

Slide 24 text

今回の事例ではテスト自動化スクリプトのデモを実施する中で、環境の汎用性の高さを伝えることがで き、他の分野(別の工程)への展開についてご提案をいただくきっかけに繋がりました。 23 その他(汎用性の高さを活かし、他の分野への展開の可能性を発掘) 専用のプログラムを用いて直接プログラムを実行し、検証や結果の判定を行います。 ※実際の使用環境と大きく異なるため、上流工程の試験では信頼性が低下する傾向があります。 ロボット(プログラム)が人に代わって操作や検証を行います。 ※人の操作に近いため実際の使用環境と同等で、上流工程での試験の信頼性が高く、応用の幅も広がります。 身代わり ~一般的なテスト自動化~ ~RPAを利用したテスト自動化~

Slide 25

Slide 25 text

24 以上が今回ご紹介させていただく テスト自動化導入事例となります。 皆様のテスト自動化導入の際に参考になると幸いです。