Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

PyInstallerを使ったテスト自動化環境導入支援とツール活用 / 20251206 Ka...

PyInstallerを使ったテスト自動化環境導入支援とツール活用 / 20251206 Kaname Ohtsuki

2025/12/6 ソフトウェアテスト自動化カンファレンス2025
https://testautomationresearch.connpass.com/event/361747/

株式会社SHIFT
アジャイル推進部LeanOpsグループ
大築要

Avatar for SHIFT EVOLVE

SHIFT EVOLVE PRO

December 06, 2025
Tweet

More Decks by SHIFT EVOLVE

Other Decks in Technology

Transcript

  1. 1 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  2. 2 自己紹介 株式会社SHIFT ソリューション本部 ソリューション事業部 アジャイル推進部 LeanOpsグループ 経験領域 ・要件定義 ・設計

    ・開発 ・テスト計画・テスト実行 ・テスト自動化アーキテクト 大築 要 1979年生まれ46歳 2002年 SIer入社 2011年 某通信企業の施設工事管理システム開発に参画 2023年 大手放送業界のシステムに参画 官公庁向けシステムの開発に参画。 開発からテストまでの作業を担当。 大手通信企業の施設工事管理システム開発アジャイル開発チームに参画。 現場にてアジャイルの開発手法とテスト自動化とCI/CDによるDevOpsに初めて触 れる。 単体試験工程においてテスト自動化を取り入れた開発にて設計、開発、テス トを担当。 2024年 DevOpsエンジニアとして再出発 DevOpsエンジニアとして最初の業務としてテスト自動化支援業務に従事。 初めてのテスト自動化アーキテクトとして、フィジビリティスタディから携わりテスト 自動化スクリプトの活用に奔走。
  3. 実は昨年も本イベントに登壇し、 長く取り組んできた SE から、テスト自動化アーキテクトとして 新たな一歩を踏み出した際の “最初の案件事例” をご紹介しました。 本年度は、昨年ご紹介した案件の “その後” をテーマに、

    技術移転やスクリプトの転用・活用といった観点でお話しさせていただきます。 また、テスト自動化については、AI を活用したスクリプトメンテナンス負荷の軽減など、 まだまだ挑戦したいテーマがたくさんあります。 今後、どこかの機会でまた発表できればうれしく思います。 3 私事ですが.....
  4. 4 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  5. ◼テスト自動化を現場に導入していく立場の方 ◼技術移転を検討されている方 ◼自動化をツールとして別の形で活用したいと考えている方 5 今回お話しさせていただく内容に関してのご注意とお詫び ◼Python ◼PyInstaller ◼Jenkins ◼ffmpeg ◼Robot

    Framework ◼PowerAutomate 登壇時間の都合上、下記の技術要素ひとつひとつについては詳細な説明は省略させていただきます。 あらかじめご了承ください。 ※いずれもメジャーな技術であり、必要に応じてネット上で十分な情報が得られる内容です。 本日のお話では、以下の方を対象として現場で直面しがちな課題や考え方、思考プロセスをお伝えします。
  6. 6 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  7. 9 テスト自動化を現場に導入したところ、いきなりつまずきました…… <発生した主な課題> ① 環境構築でのつまずき ◼手順書や説明資料だけでは正確に伝わらない ◼各実行端末で発生する、想定外のソフトウェア依存問題(アプリのバージョン 違いなど) ② 環境更新によるスクリプトの早期老朽化

    ◼導入と並行して進むシステム更新により、スクリプトがすぐに動かなくなる ③ テストデータ変化への対応困難 ◼テストデータの変更により実行エラーが発生 ◼実行者が「データの問題」か「スクリプトの不具合」かを判断できない
  8. 10 解決アプローチ(振り返り) テスト自動化導入をあらためて検討するにあたり、 当初「テスト自動化に何を期待していたのか」を振り返りました。 実際に問題が発生した導入支援業務においても、導入前の検討段階では、 テスト自動化のメリットとして次の点を挙げていました。 <テスト自動化導入のメリット> • 属人化の排除 •

    問題の再現性向上 • 開発環境への影響の少なさ • 問題発生から解決までの迅速化 振り返ってみると、導入過程で発生している問題は いずれもテスト自動化導入のメリットを根本的に覆えしてしまうような致命的な状況と認識し 解決に向けて問題1つ1つを分析・整理することにしました。
  9. 15 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  10. 16 簡潔なテストスクリプト実行の実現 以下の2つの実行方法で検討を行いました。 • JenkinsによるCI実行 ➢スクリプト自体は変更不要で拡張性あり ➢ただし、環境やJenkins本体の保守が必要 • PyInstallerによるパッケージ化実行 ➢初期導入やライブラリ追加時に再パッケージ化が必要

    ➢既存スクリプトに若干の変更が必要な場合もある ➢利用者観点では新しい実行方法の周知と環境入れ替えだけで対応可能 結果、PyInstallerによるパッケージ化実行でアプローチすることとしました。 移行詳細は、「PyInstallerを使ったテスト自動化環境パッケージ化」にて 説明します。
  11. 18 実行するだけで残る完璧な再現ログの記録 • 実行から完了までを動画で記録する方式を採用。 • 動画記録があれば、多くの問題は解析可能。 • さまざまなプラグインを検討したが、メジャーで導入 しやすい ffmpeg

    をスクリプトから呼び出して動画 を記録する仕組みを採用。 • この仕組みにより、スクリプト内のエビデンスが不 足していてもログが残り、利用者への追加情報依 頼を大幅に削減可能。 • デスクトップ全体を記録する方式を採用したため、 導入初期に発生しやすい自動実行中の手動操 作による問題も検知可能。
  12. 19 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  13. 22 PyInstallerを使ったテスト自動化環境のパッケージ化の特徴 ※あくまで上記パッケージ化範囲は例であり、パッケージ化対象(入力データと環境など)は自由に選択可能 パッケージ化 レベル パッケージ範囲 特徴 1 ・実行パラメータ ・入力データ

    ・実行スクリプト ・環境(ライブラリ) 最も内包したパッケージ化。 最も実行が簡潔でありEXEを実行するだけで特定の テストが毎回同一条件で実行される。 2 ・入力データ ・実行スクリプト ・環境(ライブラリ) 実行時に、接続先のURLなど環境系の一部設定だけを実 行時に変更できるパッケージ化。 テストパターン・データパターンが少ない際に効果的。 3 ・実行スクリプト ・環境(ライブラリ) 実行する環境とテストだけのパッケージ化。 バリエーション試験等の際に効果的。 4 ・環境(ライブラリ) 環境展開が省略可能なパッケージ。 Pythonの実行環境がある前提での実行とほぼ変わらない が、テストパターンの変更(スクリプトの改修)なども 容易で最も柔軟に対応可能。 PyInstallerを用いてRobotFrameworkのスクリプト環境をパッケージ化するにあたり、 パッケージ化の範囲によりいくつかの段階的な対応が可能。
  14. 23 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  15. 27 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  16. 32 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  17. 36 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可 能性 • ツール用パッケージとしての活用の可能 性 • 技術工夫
  18. ChatGPTに、一般的にテスト自動化導入支援の現場で発生している問題を聞いてみました。 37 他の案件事例でも有効か? 問題①:スクリプト量産による保守負荷の拡大 出典)BrowserStack「15 Challenges in Automation Testing and

    their Solutions」 問題②:技術移転・スキルギャップによる品質低下 出典) TestRail「Test Automation Challenges: Insights and Solutions」 問題③:ツール・フレームワーク・環境の選定ミス 出典) BrowserStack「15 Challenges in Automation Testing and their Solutions」 問題④:スクリプトの断片的・非体系的な作成(技術移転後に乱立) 出典) MDPI「Research and Development of Test Automation Maturity Model Building and Assessment Methods for E2E Testing」 問題⑤:技術移転後の維持・拡張(運用・保守)課題 出典) TestGrid 「Test Automation Challenges You Can’t Ignore in 2025」
  19. 38 他の案件事例でも有効か? 問題①:スクリプト量産による保守負荷の拡大 出典)BrowserStack「15 Challenges in Automation Testing and their

    Solutions」 問題②:技術移転・スキルギャップによる品質低下 出典) TestRail「Test Automation Challenges: Insights and Solutions」 問題③:ツール・フレームワーク・環境の選定ミス 出典) BrowserStack「15 Challenges in Automation Testing and their Solutions」 問題④:スクリプトの断片的・非体系的な作成(技術移転後に乱立) 出典) MDPI「Research and Development of Test Automation Maturity Model Building and Assessment Methods for E2E Testing」 問題⑤:技術移転後の維持・拡張(運用・保守)課題 出典) TestGrid 「Test Automation Challenges You Can’t Ignore in 2025」 PyInstallerを使ったテスト自動化環境のパッケージ化により 環境構築が容易で、導入しやすい スクリプトの実行・編集環境を簡単に作成できメンテしやすい
  20. 39 他の案件事例でも有効か? 問題①:スクリプト量産による保守負荷の拡大 出典)BrowserStack「15 Challenges in Automation Testing and their

    Solutions」 問題②:技術移転・スキルギャップによる品質低下 出典) TestRail「Test Automation Challenges: Insights and Solutions」 問題③:ツール・フレームワーク・環境の選定ミス 出典) BrowserStack「15 Challenges in Automation Testing and their Solutions」 問題④:スクリプトの断片的・非体系的な作成(技術移転後に乱立) 出典) MDPI「Research and Development of Test Automation Maturity Model Building and Assessment Methods for E2E Testing」 問題⑤:技術移転後の維持・拡張(運用・保守)課題 出典) TestGrid 「Test Automation Challenges You Can’t Ignore in 2025」 動画記録機能のサポートも合わせてパッケージ化することで 導入初期に発生する不正な操作を検知可能 問題解析のためのログの記録を意識しなくても漏れなく記録
  21. 40 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可 能性 • 技術工夫
  22. 42 アジェンダ 1 はじめに • 自己紹介 • ご注意とお詫び 2 テスト自動化導入時課題

    • 問題の発生と解決アプローチ • 実現方式の検討 3 テスト自動化EXE化パッケージ紹介 • EXE化パッケージの特徴 • EXE化パッケージの採用方式について 4 テスト自動化EXE化パッケージ活用 • ツールとしての活用例 • パッケージデモ • テスト用パッケージとしての活用の可能 性 • ツール用パッケージとしての活用の可能 性 • 技術工夫