Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
手動テストの運用を GASで自動化した話 / gas-manage-test-operation
Search
Yuhei FUJITA
December 06, 2022
Programming
1
480
手動テストの運用を GASで自動化した話 / gas-manage-test-operation
Yuhei FUJITA
December 06, 2022
Tweet
Share
More Decks by Yuhei FUJITA
See All by Yuhei FUJITA
闇鍋VS Codeをプロファイル機能できれいにする / yami-nabe-vscode
yuhei_fujita
5
1k
GitHubとVitePressによる 開発ドキュメント運用 / escape-document-death
yuhei_fujita
3
330
進化したWeb技術でPWAをネイティブアプリに近づける / frontend-conf-2023
yuhei_fujita
6
4.4k
ChatGPTの機能を フル活用してChatGPTを 理想の彼女Botにする / nyanju-1st
yuhei_fujita
4
4.1k
GitHub ActionsとDeployGateで始めるAndroidアプリのCICD
yuhei_fujita
2
840
開発ドキュメントの管理・閲覧に VitePress を使ってみて感じた良かった点と注意点 / document-with-vitepress
yuhei_fujita
0
1.1k
PWAで共有機能を実装する / pwa-web-share-api
yuhei_fujita
1
600
Other Decks in Programming
See All in Programming
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
140
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
13
2.2k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
930
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
1k
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
550
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
QA環境で誰でも自由自在に現在時刻を操って検証できるようにした話
kalibora
1
140
HTML/CSS超絶浅い説明
yuki0329
0
190
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
Fireside Chat
paigeccino
34
3.1k
How to train your dragon (web standard)
notwaldorf
89
5.8k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building an army of robots
kneath
302
45k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Scaling GitHub
holman
459
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Transcript
手動テストの運用を GASで自動化した話 Yuhei FUJITA
自己紹介 • 名前:Yuhei FUJITA(藤田 悠平) • 所属:アララ株式会社 • Twitter:@Yuhei_FUJITA •
GitHub:@YuheiFUJITA • GASとの出会い:最初に触ったプログラミング • 活動:コミュニティやカンファレンスの運営
VS Code Conference Japan 2022 - 2023 開催 • 開催日:2023/01/21
• 場所:Microsoft Base 代官山 • 参加方法:オンライン or 現地 🎉CfP募集中🎉 (締切は今日) https://vscode.connpass.com/event/263206/
今回の舞台はテスト仕様書 何でもできる便利なやつ
スプレッドシートを使った 手動テストの運用
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件) 1分 5分 半日〜1日 1時間〜半日
やってらんねぇ
何でもできる便利なやつ GASで自動化して手抜きしよう
システム化における要素 【管理シート】 実施情報の保存場所 【テンプレート】 複製元のテンプレート 【テスト項目シート】 テンプレートから複製 【テスト項目シート】 テスト実施結果入力用 【集計シート】
テスト結果の集計用 【保存フォルダ】 一連のファイルの保存先 【GAS】 管理シートに紐付け 【Backlog】 チケット管理ツール
None
自動化で利用したもの • Google Apps Script(GAS) ◦ コンテナバインドスクリプト • clasp ◦
ローカルで開発するため • Docker ◦ clasp実行環境用、無くてもいい • VS Code ◦ 開発環境統一のため • TypeScript ◦ 保守性を維持するため • Backlog API ◦ Backlogの情報取得とチケット発行で利用
claspはGASをローカルで開発するためのCLI https://github.com/google/clasp
GASで自動化していく
Backlog情報の取得 管理シート 1. 実行 ユーザー プロジェクト 2. 取得 3. 取得した情報を保存
※1API KEYはPropertiesServiceのUserPropertiesに保存 ※2入力はSpreadsheetApp.getUi().prompt()から
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
テスト項目入力用シートの作成 管理シート テンプレート テスト項目 3. 複製する 保存用 フォルダ 1. 実行
2. 作成 4. 保存する
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
テスト結果入力用シートの作成 管理シート テスト項目 複製 * 人数分 3. 人数分を複製する 保存用 フォルダ
1. 実行 4. 保存する チケット 5. テスト実施用チケットを発行する
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
テスト結果入力用シートの作成 管理シート テスト結果 集計結果 3. 人数分の テスト結果を集計する 保存用 フォルダ 1.
実行 4. 保存する
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件)
修正用チケットの発行 管理シート 集計結果 (要修正項目) 1. 実行 チケット 2. 修正が必要なテスト結果を取得 3.
修正内容を記載したチケットを発行
実際どれだけ時間短縮できたか?
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件) 1分 5分 半日〜1日 1時間〜半日
テンプレートを複製して テスト項目入力用の スプレッドシート(※1)を作成 開発メンバーに テストの実施内容を入力してもらう 手動テストの実施メンバーを 3〜4人選出する 実施メンバーの人数分の チケットを発行し スプレッドシート(※1)を複製する
実施メンバーがテスト結果を スプレッドシートに入力する 入力結果を1項目ずつ 手動で集計していく (数項目〜数百項目 * 人数分) NGとなったテスト項目を洗い出す 修正が必要なテスト項目に対して 手動で修正チケットを発行していく (数件〜数十件) 30秒 秒 秒 秒
秒。
得られたもの • 時間 ◦ とにかく早い • 手動による見落としの排除 ◦ 手動だとどうしても見落としが生まれる •
簡略化 ◦ とにかく手順がワンクリックで完結する
GASしか勝たん