Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

テスト自動化導入事例 ~事例に学ぶ 手動試験に潜む実施コストとテスト自動化の可能性~ / 20...

テスト自動化導入事例 ~事例に学ぶ 手動試験に潜む実施コストとテスト自動化の可能性~ / 20241207 Kaname Ohtuski

2024/12/7 ソフトウェアテスト自動化カンファレンス2024
https://testautomationresearch.connpass.com/event/333442/
株式会社SHIFT
ソリューション本部 ソリューション事業部 アジャイル推進部 DevOps推進2グループ
大築 要

SHIFT EVOLVE

December 07, 2024
Tweet

More Decks by SHIFT EVOLVE

Other Decks in Technology

Transcript

  1. 1 自己紹介 株式会社SHIFT ソリューション本部 ソリューション事業部 アジャイル推進部 DevOps推進2グループ 経験領域 ・要件定義 ・設計

    ・開発 ・テスト計画・実行 大築 要 [email protected] 1979/10/04 45歳 2002年 SIer入社 2008年 通信ベンダー向け携帯端末開発に参画 2011年 某通信企業の施設工事管理システム開発に参画 2023年 大手放送業界のシステムに参画 官公庁向けシステムの開発要員として参画 開発からテストまでの作業を担当 某通信ベンダーが販売する携帯端末のミドルウェア開発のサブリー ダーとして設計、開発、テストを担当 現場にて初期のテスト自動化に出会う 大手通信企業の施設工事管理システム開発アジャイル開発チームに参画 現場にてアジャイルの開発手法とテスト自動化とCI/CDによるDevOps に初めて触れる 単体試験工程においてテスト自動化を取り入れた開発にて設計、開 発、テストを担当 2012年 携帯端末開発に復帰 携帯開発PJに復帰 携帯端末の形態が変わりテスト環境も従来型の手動試験へと変化 以降、一般販売業ECサイト保守PJなども担当するものの現場では従来 型の手動試験が続く 2024年 DevOpsエンジニアとして再出発
  2. 世の中がまだ「ガラケー」と呼ばれる折りたたみ式フィーチャーフォン全盛期の頃、携帯ミドルウェアの開発現場で、PC上の エミュレータにデータを入力し、結果を確認するという基本的なテスト自動化を導入したプロジェクトに出会い、プログラム が試験を行うという大きな衝撃を受けました。 しかし、この時点ではまだオペレーターがプログラムに置き換わっただけで、実際の環境との乖離も大きく、試験結果の収 集や再実施の仕組みは提供される実行環境にはありませんでした。 2 テスト自動化との出会い 試験結果 エミュレータ (仮想端末)

    操作 時が流れ、世代管理や構成管理のためのツールが普及し、アジャイル開発の現場ではCI/CDツールと連携したテスト自 動化が一般的になりました。 そうしたプロジェクトに参画し、テスト自動化の進化を目の当たりにする中で、テスト自動化はもはや限られた人だけのも のではないと感じました。 自動試験実施 試験OK→リリース 試験NG→通知 最新モジュール 確認依頼 ソース取得
  3. ChatGPTに、テスト自動化が手動試験に比べて持つメリットを聞いてみたところ、 以下のように回答されました。 1. スピードと効率の向上 自動化試験は一度作成すれば、何度でも迅速に繰り返し実行可能です。 これにより、回帰テストやデータを大量に用いるテストの効率が大幅に向上します。 2. 正確性と一貫性 自動化試験では、テスト手順が毎回正確に再現されるため、 ヒューマンエラーがなく、

    一貫性のある結果を得られます。 これにより、品質が確保されやすくなります。 3. コストとリソースの節約 長期的には、テストを繰り返すことで実行コストが下がり、 テスト担当者は他の重要な作業に集中できるため、 プロジェクト全体のリソースを効率的に活用できます。 5 一般的なテスト自動化メリットをAIに聞いてみました
  4. 9 導入計画 フィジビリティスタディー テスト設計・スクリプト量産 CI環境構築 運用・メンテナンス スキルトランスファー フィジビリティスタディーを実施することで、ツールや自動化対象シナリオの妥当性などを検証し、 自動化の効果の最大化を目指す。 スキルトランスファーでは、スクリプトのメンテナンスや運用の観点を伝えし、お客様で運用保守できる

    体制構築のご支援を実施。 自動化ツール検証 自動化対象選定 自動化効果検証 自動化可否判断・報告 テスト自動化向けテスト設計 フィジビリティスタディの 結果を踏まえて 自動化スクリプトを量産 自動テストCI環境(任意の タイミングで自動テストを実行 し、履歴を管理できる仕組 み)を構築 お客様側で自動化の運用・保 守できるようにスキルトランス ファーを実施 アプリケーションの更新に合わ せて自動テストを実行、結果 をレポート アプリケーションの改修によって 動作しなくなった自動テストの メンテナンス
  5. 導入計画 ◼評価方法:以下5つの観点について、4段階(◎◯△×)で評価 ◼アプトプットイメージ ➢評価例 画面要素の指定しやすさ 入力や確認をするにあたり、操作対象の要素を容易に指定できるかどうかを確認する。 入力操作のしやすさ 処理を進めていく際の打鍵操作の複雑性を確認する。通常の入力のみを用いる場合は容易、 インクリメンタルサーチやドラッグ&ドロップなど動的な処理が多くなるほど難易度が上がる。 待機処理の頻度

    処理と処理との間に、自動スクリプト独自の待機処理を入れる必要があるかどうかを確認。 1画面ずつ遷移していくアプリケーションであれば待機処理はほとんどなく、画面上で要素の増減が 多い場合は頻繁に待機処理が必要になる。 確認操作のしやすさ 入力操作後の確認項目のチェックしやすさを確認する。 期待値部分とそれ以外で明確にオブジェクトが分離されている場合は比較的操作がしやすくなる。 特殊処理 その他アプリケーション特有の操作で見るべきポイントがあるかどうか。 ➢指摘例 10 ➢費用対効果試算例
  6. ・手動テストにて機能間結合を実施、総合試験間近 ・総合試験では、機能間結合で行った操作を入力データ違い・ユーザー違いなどバリエーションを変えて実施 ・開発期間中もクラウドERPサービスの定期アップデートは行われ、リリース都度回帰試験が割り込み 13 導入予定PJ状況 製造 単体試験 結合試験 受入試験 総合試験

    完了 完了 進行中 Update 割り込み Update 割り込み 単体試験 結合試験 定期アップデート 定期アップデート 定期アップデート 総合試験 <会計システム開発計画> <クラウドERPサービスの定期アップデート計画> <実際のスケジュール> ※実際には完全に開発が止まるわけではないが、アップデートの対応を後に回すことはできない 単体試験 回帰試験 単体試験 (続き) 回帰試験 結合試験 結合試験 (続き)
  7. ・投入したデータ、画面表示データ、出力帳票結果(PDF/紙など)を目視でチェックするため、 ヒューマンエラーや工数の増加が発生する ・試験実施に必要な業務要件や実施ノウハウなどが特定の人に集中する 14 お困りごと 確認ミス 失敗 やり直し 工数増加 慣れている人

    品質 :良い スピード:速い 消化数:多 慣れていない人 品質 :悪い スピード:遅い 消化数:少 試験項目 ※試験の実施が慣れている人に偏ることが多く、実施によって得られるノウハウが特定の人に集中してしまう。
  8. WebおよびExcelを操作可能なRPAのメジャーツールを比較した結果、無償かつExcel操作可能なRPA Frameworkを選択 ※ RPA Frameworkでは、Python向けのSeleniumLibraryが使用可能であるため実質Selenium も包括 17 環境選定 ツール名 有償/無償

    デスクトップ操作 エビデンス取得 Excel操作対応 カスタマイズ性 知名度 RPA Framework 無償 (オープンソー ス) 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (Python, Robot Frameworkで制 御) 高い (Pythonなどで柔 軟にカスタマイズ 可) 中程度 (主に技術者向 け) UiPath 有償 (一部無償) 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (専用アク ティビティあ り) 中程度 (標準機能が多 い) 高い WinActor 有償 可能 可能 (スクリーンショッ ト・ログ機能) 可能 (Excel操作専 用機能あり) 低い (標準機能中心) 日本国内で非常 に高い Selenium 無償 不可 (ブラウザ操作の み) 可能 (ブラウザのスク リーンショット取 得) 不可 (ブラウザ操 作が中心) 高い (多言語対応) 高い
  9. 付随作業って何してるの? 19 自動化対象範囲選定 クロール表示される画面を スクリーンショットで撮影し、 資料上で結合 試験データ <結果確認> <表示データ> <表示データ全体>

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