SlideShare a Scribd company logo
Submit Search
Upload
テスト自動化.pdf
Report
Share
S
ssuserf8ea02
Follow
•
0 likes
•
196 views
1
of
26
テスト自動化.pdf
•
0 likes
•
196 views
Report
Share
Download Now
Download to read offline
Technology
https://zenn.dev/ikeda1151/articles/3c75e6ec8d61bf
Read more
S
ssuserf8ea02
Follow
Recommended
hbstudy#06 by
hbstudy#06
tsakaguchi
1.6K views
•
46 slides
MT,STautomation by
MT,STautomation
ssuserf8ea02
246 views
•
26 slides
インフラ構築とテストについて(ITインフラ業務自動化現状確認会) by
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
Yosuke Hiraishi
75.6K views
•
28 slides
PWA aruaru by
PWA aruaru
n_harada
1K views
•
34 slides
ワンクリックデプロイ101 #ocdeploy by
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
12.9K views
•
123 slides
【GTMF 2017】Shotgunで実現するクラウド時代のスマートな制作進捗の管理 by
【GTMF 2017】Shotgunで実現するクラウド時代のスマートな制作進捗の管理
Yoshiyuki Watanabe
86 views
•
69 slides
More Related Content
Similar to テスト自動化.pdf
Infrastructure as Codeの取り組みと改善 by
Infrastructure as Codeの取り組みと改善
Takashi Honda
2.8K views
•
192 slides
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善 by
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
Developers Summit
2K views
•
192 slides
自動テスト知識体系TABOKのご紹介 by
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
8.9K views
•
20 slides
テスト駆動開発の導入ーペアプログラミングの学習効果ー by
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
4.4K views
•
42 slides
[SC13] ログ管理で向上させるセキュリティ by
[SC13] ログ管理で向上させるセキュリティ
de:code 2017
608 views
•
47 slides
Iot algyan jhirono 20190111 by
Iot algyan jhirono 20190111
Hirono Jumpei
861 views
•
49 slides
Similar to テスト自動化.pdf
(20)
Infrastructure as Codeの取り組みと改善 by Takashi Honda
Infrastructure as Codeの取り組みと改善
Takashi Honda
•
2.8K views
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善 by Developers Summit
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
Developers Summit
•
2K views
自動テスト知識体系TABOKのご紹介 by Shinsuke Matsuki
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
•
8.9K views
テスト駆動開発の導入ーペアプログラミングの学習効果ー by Shuji Watanabe
テスト駆動開発の導入ーペアプログラミングの学習効果ー
Shuji Watanabe
•
4.4K views
[SC13] ログ管理で向上させるセキュリティ by de:code 2017
[SC13] ログ管理で向上させるセキュリティ
de:code 2017
•
608 views
Iot algyan jhirono 20190111 by Hirono Jumpei
Iot algyan jhirono 20190111
Hirono Jumpei
•
861 views
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST by Kotaro Ogino
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
Kotaro Ogino
•
12K views
オンライン手順書の作成を支援するシステムの開発 by Takashi Kishida
オンライン手順書の作成を支援するシステムの開発
Takashi Kishida
•
874 views
サーバーレスの今とこれから by 真吾 吉田
サーバーレスの今とこれから
真吾 吉田
•
35.3K views
アジャイルソフトウェア開発の道具箱 by Koichi ITO
アジャイルソフトウェア開発の道具箱
Koichi ITO
•
5.8K views
企業におけるSpring@日本springユーザー会20090624 by Yusuke Suzuki
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
•
1.9K views
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver. by Mutsumi Kamiike
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
Mutsumi Kamiike
•
351 views
Djangoフレームワークの紹介 OSC2015北海道 by Shinya Okano
Djangoフレームワークの紹介 OSC2015北海道
Shinya Okano
•
2.3K views
Cloudflareを活用したWebパフォーマンスチューニング by Yoichiro Takehora
Cloudflareを活用したWebパフォーマンスチューニング
Yoichiro Takehora
•
251 views
INF-010_そのログ、ただ集めているだけではありませんか? ~IT 運用の世界にも Big Data の活用を!~ by decode2016
INF-010_そのログ、ただ集めているだけではありませんか? ~IT 運用の世界にも Big Data の活用を!~
decode2016
•
41 views
アドテク×Scala×パフォーマンスチューニング by Yosuke Mizutani
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
•
14.4K views
Azure Machine Learning アップデートセミナー 20191127 by Keita Onabuta
Azure Machine Learning アップデートセミナー 20191127
Keita Onabuta
•
1.1K views
【15-B-L】Spinnakerで実現するデプロイの自動化 by Developers Summit
【15-B-L】Spinnakerで実現するデプロイの自動化
Developers Summit
•
2.4K views
MLOps入門 by Hiro Mura
MLOps入門
Hiro Mura
•
2.1K views
QA improvement by Sadaaki Emura
QA improvement
Sadaaki Emura
•
239 views
Recently uploaded
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdf
nanamatsuo
16 views
•
9 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
287 views
•
13 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
51 views
•
29 slides
IPsec VPNとSSL-VPNの違い by
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
328 views
•
8 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
97 views
•
64 slides
さくらのひやおろし2023 by
さくらのひやおろし2023
法林浩之
94 views
•
58 slides
Recently uploaded
(11)
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdf
nanamatsuo
•
16 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
287 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
51 views
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
328 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
97 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
94 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
18 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
104 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
80 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
301 views
テスト自動化.pdf
1.
サブスク管理システムの 統合テストを自動化した話
2.
自己紹介 名前:池田 経歴:IT業界歴7年、主に通信インフラ開発、 Webアプリ開発 領域:バックエンド、インフラ (Python,Django,Bashとか) 趣味:コスプレ、カメラ、
3Dプリンタ造形 キャンプ、サウナ、ロードバイク、釣り 資格:基本情報、AWS SAA、JSTQB FL、小型船舶免許1級
3.
目次 ● 前提 ● 自動化の流れ ○
Step1 テスト実行を自動化 ○ Step2 確認対象データ出力を自動化 ○ Step3 データ突合を自動化 ○ Step4 ツールをキーワード駆動にしてチームに展開 ○ Step5 リグレッションテスト導入 ● 自動化して良かったこと ● 所感
4.
前提1 サブスクリプション管 理システム プロバイダー ユーザ ユーザ ユーザ
5.
前提2 メンバー ベースシステム 開発チーム リーダー 池 田 サブスクリプション管 理システム アジャイル開発(スクラム、1スプリント2週間) 課題 ・リーダー以外がジュニアエンジニア、リーダーの負担大 ・テスト項目数が莫大で、アジャイル開発にも関わらずリリース頻度が低く、リ ファクタリングも困難 ・開発メンバーが仕様を把握して切れず、考慮漏れによるバグが多発 特徴 ・モノリス構造 ・ユースケースの入力パターンが多く、かつ条件が 複雑
6.
アプリ Controller 請求 前提3 テストの方法とシステムの動作 RDB GUI 注文 開通日:1/1 期間:12ヶ月 支払:月々払い 請求:前払い 課金開始日:日割 数量:10 etc… ポ チ ポ チ ポ チ ポ チ 利用期間:1/1~1/31 請求日:1/1 契約 期間:1/1~12/31 自動更新:する 途中変更:可能 etc… 利用期間:2/1~2/28 請求日:2/1 : 利用期間:12/1~12/31 請求日:12/1 注文 契約 請求
7.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
8.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
9.
アプリ Step1 操作自動化(bf) RDB GUI ポ チ ポ チ 注文パターン1 契約 請求 注文パターン2 注文パターン100 ポ チ ポ チ 注文パターン3 : 開通日:3パターン × 期間:2パターン × 支払:2パターン × 請求:3パターン × etc… 実行めんど いな……
10.
アプリ Step1 操作自動化(af) RDB 契約 請求 API CLI (スクリプト) APIエンドポイントを叩く ・Pythonのrequests ・PostMan Webブラウザの操作自動化 ・Selenium(バックグラウンド実行
) ・Selenium IDE(画面ポチポチでコード生成 ) ・Autify(画面ポチポチで作成したシナリオを Autifyが提供するAPIから実行) 注文パ ターン 100 ※確認はGUI
11.
アプリ Step1 操作自動化(af) RDB 契約 請求 API CLI (スクリプト) APIエンドポイントを叩く ・Pythonのrequests ・PostMan Webブラウザの操作自動化 ・Selenium(バックグラウンド実行
) ・Selenium IDE(画面ポチポチでコード生成 ) ・Autify(画面ポチポチで作成したシナリオを Autifyが提供するAPIから実行) 注文パ ターン 100 ※確認はGUI
12.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
13.
アプリ Step2 確認対象データ出力を自動化(bf) RDB 契約 請求 API GUI 請求パ ターン 100 画面キャプチャ 画面キャプチャ 画面キャプチャ 画面キャプチャ 画面キャプチャ パターン100 キャプチャめ んどいな ……
14.
アプリ Step2 確認対象データ出力を自動化(af) RDB 契約 請求 API CLI (スクリプト) 請求パ ターン 100 ●APIエンドポイントを叩く ・Pythonのrequests(GET系) ●SQLコマンドで取ってくる ●ブラウザに表示される値を取得 ・Selenium(バックグラウンド実行
) mysql db_name -ss -e “SELECT * FROM invoice” id 利用開始日 利用終了日 請求日 1 1/1 1/31 2/1 2 2/1 2/28 3/1 3 :
15.
アプリ Step2 確認対象データ出力を自動化(af) RDB 契約 請求 API CLI (スクリプト) 請求パ ターン 100 ●APIエンドポイントを叩く ・Pythonのrequests(GET系) ●SQLコマンドで取ってくる ●ブラウザに表示される値を取得 ・Selenium(バックグラウンド実行
) mysql db_name -ss -e “SELECT * FROM invoice” id 利用開始日 利用終了日 請求日 1 1/1 1/31 2/1 2 2/1 2/28 3/1 3 :
16.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
17.
アプリ Step3 確認する値を突合(bf) RDB CLI (スクリプト) 請求パ ターン 100 mysql db_name
-ss -e “SELECT * FROM table_name” id 利用開始日 利用終了日 請求日 1 1/1 1/31 2/1 2 2/1 2/28 3/1 3 : 確認してOK/NGを入力 コピペ 確認してOK/NGを入力 確認してOK/NGを入力 確認してOK/NGを入力 確認めんどいな......
18.
var1.0 ver1.1 Ver1.0 Step3 確認する値を突合(af) CLI (スクリプト) Ver1.1 請求パ ターン 100 請求パ ターン 100 id
利用開始日 利用終了日 請求日 1 1/1 1/31 2/1 2 2/1 2/28 3/1 3 : diff ver1.0_0001_start_day.txt ver1.1_0001_start_day.txt 開始日 1/1 2/1 3/1 開始日 1/1 2/1 3/1 var1.0 ver1.1 終了日 1/31 2/28 3/31 diff ver1.0_0001_end_day.txt ver1.1_0001_end_day.txt id 利用開始日 利用終了日 請求日 1 1/1 1/31 2/1 2 2/1 2/28 3/1 3 : result 0001_start_day OK 0001_end_day NG 0001_invoice_day OK : 終了日 1/31 2/28 3/28 データを整形してtxt出力、diffコマンド 用にデータを整形してtxt出力、diff結 果を一覧表示
19.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
20.
Ver1.0 Step4 ツールをキーワード駆動にしてチームに展開(bf) CLI (スクリプト ) Ver1.1 請求パ ターン 100 請求パ ターン 100 result_v1.0_vs_v1.1 0001_start_day
OK 0001_end_day OK 0001_invoice_day OK : 開発メンバー 開発メンバー 開発メンバー ver1.0->1.1 分割系確認してほし い ver1.1->ver1.1.1 日割り系確認してほ しい。 (仕様は口頭) ver1.0->1.2 月跨ぎ確認してほし い 仕様書 仕様書 仕様書 池 田 仕様書 Ver1.1 CLI (スクリプト ) Ver1.1. 1 請求パ ターン 100 請求パ ターン 100 result_v1.1_vs_v1.1.1 0001_start_day OK 0001_end_day OK 0001_invoice_day OK : Ver1.0 CLI (スクリプト ) Ver1.2 請求パ ターン 100 請求パ ターン 100 result_v1.1_vs_v1.2 0001_start_day OK 0001_end_day OK 0001_invoice_day OK : 各々でシナリオ作ってテスト 回してくれないかな......
21.
Step4 ツールをキーワード駆動にしてチームに展開 GAS 実行 Scenario.json シナリオ生成ツール作ったから 各々で作っといて! [{test_no:0001, order_day:2023-01-01, span:12, : },{test_no:0002, order_day:2023-01-01, span:12, : } ]
22.
Ver1.0 Step4 ツールをキーワード駆動にしてチームに展開(af) CLI (スクリプト ) Ver1.1 請求パ ターン 100 請求パ ターン 100 result_v1.0_vs_v1.1 0001_start_day
OK 0001_end_day OK 0001_invoice_day OK : 開発メンバー 開発メンバー 開発メンバー 池 田 Ver1.1 CLI (スクリプト ) Ver1.1. 1 請求パ ターン 100 請求パ ターン 100 result_v1.1_vs_v1.1.1 0001_start_day OK 0001_end_day OK 0001_invoice_day OK : Ver1.1 CLI (スクリプト ) Ver1.2 請求パ ターン 100 請求パ ターン 100 result_v1.1_vs_v1.2 0001_start_day OK 0001_end_day OK 0001_invoice_day OK : 問い合わせ ツールメンテナンスは任せろ~ シナリオ シナリオ シナリオ
23.
自動化の流れ Step1 テスト実行を自動化 Step2 確認対象データ出力を自動化 Step3
データ突合を自動化 Step4 ツールをキーワード駆動にしてチームに展開 Step5 リグレッションテスト導入
24.
Step5 リグレッションテスト導入 注文 シナリオ 自動更新 シナリオ 変更注文 シナリオ 契約切替 シナリオ 自動更新 シナリオ Ver1.0 CLI (スクリプト) Ver1.1 自動更新 シナリオ 本番環境1 本番環境1 本番環境1 本番環境1 実際に使われているパターンを 元にリグレッション用のシナリオ を作成
25.
自動化して良かったこと ● テスト工数削減(step1,2,3) ● バグの早期検出(step4) 開発メンバーが製造段階で影響範囲のテストを実施するので、統合テストでのバグが減った ●
レビューの負担軽減(step5) システムの仕様上、ユースケースの入力パターンが多く、条件が複雑だった為、開発メンバーが仕様を把握して切れず、考慮漏れに よるバグが多発していた。※設計レビューはアドホック形式 →レビュー段階で「ユースケース一覧のこの範囲をテストする」というテスト項目(テスト実行シナリオ)レビューも一緒に行うことで、開 発担当とレビュアーの影響範囲の認識齟齬や場当たり的な指摘が減った。
26.
所感 1. 誰が使うかを意識して自動化する 最初はbashとかpythonスクリプトに直接シナリオ書いてたけれど、やはり理想は「製造した人がその機能を担保する」なので、いずれ は自分以外が使うことを想定して作るのがよいと思う。 2. 半端なツールは展開しないほうが良い とはいえ他の人に展開する前提でいきなりツール作り始めるのはハードルが高い。 今回作ったテストツールを他メンバーに展開する際には少なくとも以下の情報を正確に伝える必要があった。 ・使用できる条件(環境やバージョン等) ・対応範囲(実行可能なシナリオ) ・実行手順 ・出力(何が実行、確認、担保できるか。OK/NG、差分、スナップショット等)