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
キーワード駆動っぽいテストができるツールを開発した話
Search
ENDO Yasuyuki
November 04, 2022
Technology
0
440
キーワード駆動っぽいテストができるツールを開発した話
自動化大好きエンジニアLT会 - vol.9 発表資料
ENDO Yasuyuki
November 04, 2022
Tweet
Share
More Decks by ENDO Yasuyuki
See All by ENDO Yasuyuki
Blueskyに伏せ字投稿ができるWebアプリの作り方
eyasuyuki
0
430
Bluespoilerのご紹介
eyasuyuki
0
390
幻のテスト技法「キーワード駆動テスト」を追い求めて
eyasuyuki
0
2.5k
Kotlin Updates in LL2019
eyasuyuki
0
540
Learn Languages 2019
eyasuyuki
5
1k
Why Flutter excitement me?
eyasuyuki
3
1k
Kotlin vs Swift
eyasuyuki
0
490
フロントエンドだめ自慢
eyasuyuki
0
110
llot_frontend.pdf
eyasuyuki
0
54
Other Decks in Technology
See All in Technology
彩の国で始めよう。おっさんエンジニアから共有したい、当たり前のことを当たり前にする技術
otsuki
0
140
CBになったのでEKSのこともっと知ってもらいたい!
daitak
1
160
Road to Go Gem #rubykaigi
sue445
0
230
Amazon S3 Tables + Amazon Athena / Apache Iceberg
okaru
0
260
AWSのマルチアカウント管理 ベストプラクティス最新版 2025 / Multi-Account management on AWS best practice 2025
ohmura
4
260
Recap of Next - Google Cloud で実践する クラウドネイティブ最前線 / The Frontlines of Cloud-Native with Insights from Google Cloud
aoto
PRO
1
100
.mdc駆動ナレッジマネジメント/.mdc-driven knowledge management
yodakeisuke
24
12k
Spice up your notifications/try!Swift25
noppefoxwolf
2
350
AIコーディングの最前線 〜活用のコツと課題〜
pharma_x_tech
1
280
OpenSearchでレガシーな検索処理の大幅改善をやってやろう
dznbk
2
170
AWSの新機能検証をやる時こそ、Amazon Qでプロンプトエンジニアリングを駆使しよう
duelist2020jp
1
120
【2025年度新卒技術研修】100分で学ぶ サイバーエージェントのデータベース 活用事例とMySQLパフォーマンス調査
cyberagentdevelopers
PRO
5
7.2k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
A better future with KSS
kneath
239
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
GitHub's CSS Performance
jonrohan
1030
460k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
KATA
mclloyd
29
14k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Transcript
キーワード駆動っぽいテストができるツールを開発した話 2022-11-02 @eyasuyuki 1
結論 キーワード駆動テストの欠点は で解決できる 2
今回開発したツール Keydriver https://github.com/eyasuyuki/keydriver ノーコードでe2e テストができる オープンソース 商用利用可(MIT ライセンス) 気に入ったら☆(Star) ください
Zenn の記事 https://zenn.dev/eyasuyuki/articles/a20301d34adce0 3
キーワード駆動テストとは システムテストの技法の一つ アクションキーワードとデータからなる表を使ってテストする キーワード表を読み込んでSelenium などを動かすトライバーを作れば自動化できる 4
キーワード駆動テストとは システムテストの技法の一つ アクションキーワードとデータからなる表を使ってテストする キーワード表を読み込んでSelenium などを動かすトライバーを作れば自動化できる ...... などとされているが実践している人を誰も見たことがない幻のテスト技法である 5
キーワード駆動テストの例 No キーワー ド 対象 引数 備考 1 open url[https://www.google.com]
URL をブラウズする 2 input テキストボックス サルゲッチュ テキストボックスへの入力 3 click ボタン[Google 検索] ボタンをクリックする 4 assert タイトル is[ サルゲッチュ - Google 検 索] 検索結果ページのタイトル検 証 6
キーワード駆動テストのメリット 操作を示すキーワードと、その対象となるデータが1 つの表で表現できる 画面が変更されてもドライバーをメンテナンスするだけで済む 発表者が考えるメリット: システムテストの記述を標準化できる テストデータが各所に分散するのを防止できる 7
キーワード駆動テストのデメリット ドライバーを書くのが大変 ドライバーのメンテナンスが大変 これらの欠点により幻のテスト技法となってしまったのではなかろうか。 ではどうするか ? 8
デメリットを で解決する 9
デメリットを頓知で解決する 10
デメリットを頓知で解決する ドライバーを書くのが面倒なら、キーワード表を拡張して画面依存の情報も含めるのはどうか? 11
拡張したキーワード表 No キーワ ード 対象 引数 備考 拡張 1 拡
張 2 1 open url[https://www.google.com] URL をブラウ ズする 2 input テキストボックス サルゲッチュ テキストボッ クスへの入力 name[q] 3 click ボタン[Google 検索] ボタンをクリ ックする name[btnK] 4 assert タイトル is[ サルゲッチ ュ - Google 検 索] 検索結果ペー ジのタイトル 検証 xpath[/html/head/title] 12
動作概念図 Keydriver POI Excel WebDriver ブラウザ E Ex xc ce
el l フ ファ ァイ イル ル読 読み み込 込み み 読 読み み込 込み み ワ ワー ーク クシ シー ート ト ワ ワー ーク クシ シー ート ト ブ ブラ ラウ ウザ ザ操 操作 作 ブ ブラ ラウ ウザ ザ操 操作 作 ブ ブラ ラウ ウズ ズ結 結果 果 ブ ブラ ラウ ウズ ズ結 結果 果 結 結果 果検 検証 証 テ テス スト ト結 結果 果出 出力 力 テ テス スト ト結 結果 果出 出力 力 Keydriver POI Excel WebDriver ブラウザ 13
実際の Excel 表の例 14
デモ https://youtu.be/Klqx18-cBgw 15
参考文献 (1/2) ソフトウエア品質を高める開発者テスト改訂版 ( 高橋寿一 2022) ISBN978-4-7981-7639-0 16
参考文献 (2/2) システムテスト自動化標準ガイド (Mark Fewster, Dorothy Graham 1999) ISBN978-4-7981-3921-0 17