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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ENDO Yasuyuki
December 03, 2022
Technology
2.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
幻のテスト技法「キーワード駆動テスト」を追い求めて
ソフトウェアテスト自動化カンファレンス2022 発表資料
https://testautomationresearch.connpass.com/event/262132/
ENDO Yasuyuki
December 03, 2022
More Decks by ENDO Yasuyuki
See All by ENDO Yasuyuki
Blueskyに伏せ字投稿ができるWebアプリの作り方
eyasuyuki
0
590
Bluespoilerのご紹介
eyasuyuki
0
480
キーワード駆動っぽいテストができるツールを開発した話
eyasuyuki
0
520
Kotlin Updates in LL2019
eyasuyuki
0
610
Learn Languages 2019
eyasuyuki
5
1.1k
Why Flutter excitement me?
eyasuyuki
3
1.2k
Kotlin vs Swift
eyasuyuki
0
530
フロントエンドだめ自慢
eyasuyuki
0
140
llot_frontend.pdf
eyasuyuki
0
70
Other Decks in Technology
See All in Technology
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
120
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
15
4k
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
240
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
420
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.3k
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
130
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
120
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2.3k
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
280
Kiro Ambassador を目指す話
k_adachi_01
0
110
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
140
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
WENDY [Excerpt]
tessaabrams
11
38k
It's Worth the Effort
3n
188
29k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Thoughts on Productivity
jonyablonski
76
5.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Building Applications with DynamoDB
mza
96
7.1k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Transcript
幻のテスト技法「キーワード駆動テスト」を追い求めて 2022-12-03 @eyasuyuki 1
結論 キーワード駆動テストは、 2
結論 キーワード駆動テストは、意外に簡単だった 3
そもそもキーワード駆動テストとは 操作を表すアクションキーワードと、その対象となるデータで構成された表を使って行うテスト 人間可読のキー ワード表と実際の画面を結びつけるドライバーを書けば自動化できる 4
キーワード駆動テストの位置付け ソフトウエア品質を高める開発者テスト改訂版 ( 高橋寿一 2022) p.138 より 5
キーワード駆動テストが登場する本その 1 システムテスト自動化標準ガイド (Mark Fewster, Dorothy Graham 1999) ISBN978-4-7981-3921-0 概念的なエピソードは書かれているが、具体的な実装については書かれていない
6
キーワード駆動テストが登場する本その 2 ソフトウエア品質を高める開発者テスト改訂版 ( 高橋寿一 2022) ISBN978-4-7981-7639-0 この本でキーワード駆動テストを知った。ただし概要だけしか書かれていない 7
キーワード駆動テストを知った頃のツイート https://twitter.com/eyasuyuki/status/1562708740243337216 8
幻のテスト技法 ? 業界経験30 年以上になるが、キーワード駆動テストをやっている人を一度も見たことがない 9
既存のキーワード駆動テストツールその 1 Open2Test https://github.com/open2test/Open2Test_Selenium 目的に合わなかった理由 キーワード表の形式が気に入らない( 納品物にならない) ソースコードがないので自由に改造できない 余計な機能がある( データの読み込みなど)
10
Open2Test のテストケース 11
既存のキーワード駆動テストツールその 2 Robot framework https://robotframework.org 目的に合わなかった理由 キーワード表の形式が気に入らない( 納品物にならない) 12
Robot framework のテストケース (1/2) 13
Robot framework のテストケース (2/2) 14
ふとひらめいたアイデア 15
拡張されたキーワード表 印刷範囲外の列に画面依存の情報を書いている 16
今回開発したツール Keydriver https://github.com/eyasuyuki/keydriver ノーコードでe2e テストができる オープンソース 商用利用可(MIT ライセンス) 気に入ったら☆(Star) ください
Zenn の記事 https://zenn.dev/eyasuyuki/articles/a20301d34adce0 17
動作概念図 Keydriver Keydriver POI POI Excel Excel WebDriver WebDriver ブラウザ
ブラウザ Excel ファイル読み込み 読み込み ワークシート ワークシート ブラウザ操作 ブラウザ操作 ブラウズ結果 ブラウズ結果 結果検証 テスト結果出⼒ テスト結果出⼒ 18
デモ https://youtu.be/Klqx18-cBgw 19
利用可能なキーワード No キーワード 説明 1 open URL を開く 2 click
要素をクリックする 3 select select 要素を選択する 4 input input 要素に入力する 5 clear input 要素をクリアする 6 accept ダイアログでOK する 7 dismiss ダイアログをキャンセルする 8 capture スクリーンショットを撮る 9 upload file 要素にファイル名を入力する 10 assert 値を検査する 11 execute SQL を実行する 12 _DIRECTIVE デフォルトキーワード ※ 1 〜11 のどれにも一致しないキーワードが使われた場合、デフォルトキーワードとして解釈される 20
要素セレクタの表記法 tag[value#attribute] タグ 説明 id id 要素 name name 要素
xpath xpath 例 id[save_button] id[save_button#enabled] name[name_input#displayed] xpath[/html/head/title] ※ デフォルトの attribute は innerText 21
データ型 tag[value] 上記の形式で下記のデータを表現できる。 タグ 値 説明 text 文字列 デフォルトのデータ型である url
URL HTTP-URL やJDBC 接続URL を表現する sql SQL 文 sheet ワークシー ト名 デフォルトキーワード _DIRECTIVE とともに使用する。指定したワークシートをサブル ーチンのように実行することができる 22
述語 tag[value] 述語はキーワード assert とともに使用する。タグに下記を使うことでそれぞれの述語を表現できる。 タグ 説明 is 等価 isNot
非等価 isNull null isNotNull 非null greaterThan より大きい greaterThanEqual 以上 lessThan より小さい lessThanEqual 以下 fail 失敗 23
Keydriver のメリット (1/4) ノーコードで自動テストが行えるので、ビジネスゴールが達成されるかどうかのテストに注力できる Copyright (c) Vector4Stock - Freepik.com 24
Keydriver のメリット (2/4) ドメインエキスパートがキーワード表を作成し、テストエンジニアが実際の画面要素のセレクタを記述する といった分業が可能になる Copyright (c) Studiogstock - Freepik.com
25
Keydriver のメリット (3/4) 画面が変更されてもドライバーをメンテナンスする必要はなく、キーワード表をメンテナンスすれば済む 他のキーワード駆動ツール Driver Reader キーワード表 ドメインエキスパート テストエンジニア
ブラウザ 作成 メンテナンス 読み込み 操作 Keydriver Driver Reader キーワード表 ドメインエキスパート テストエンジニア ブラウザ 作成 メンテナンス 読み込み 操作 26
Keydriver のメリット (4/4) 他のワークシートをサブルーチンのように実行できるため、キーワードの階層化が可能になる 27
Keydriver をぜひ試してみてください ! https://github.com/eyasuyuki/keydriver 28
ソフトウェアテスト Advent Calendar 2022 https://qiita.com/advent-calendar/2022/softwaretesting こちらで取り上げていただきました。 29