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
December 03, 2022
Technology
2.7k
0
Share
幻のテスト技法「キーワード駆動テスト」を追い求めて
ソフトウェアテスト自動化カンファレンス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
580
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
69
Other Decks in Technology
See All in Technology
Forget technical debt
ufried
0
180
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
210
カオナビに Suspenseを導入するまで / The Road to Suspense at kaonavi
kaonavi
1
440
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
170
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
210
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
260
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
4
970
小さいVue.jsを30分で作る
hal_spidernight
0
150
もっとコンテンツをよく構造化して理解したいので、LLM 時代こそ Taxonomy の設計品質に目を向けたい〜!
morinota
0
230
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
4
440
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
390
100マイクロサービスのTerraform/Kubernetes管理地獄から抜け出すためのAI活用術
markie1009
0
110
Featured
See All Featured
Visualization
eitanlees
150
17k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
360
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Information Architects: The Missing Link in Design Systems
soysaucechin
0
920
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
How to make the Groovebox
asonas
2
2.2k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
First, design no harm
axbom
PRO
2
1.2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
560
Why Our Code Smells
bkeepers
PRO
340
58k
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
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