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
0
2.6k
幻のテスト技法「キーワード駆動テスト」を追い求めて
ソフトウェアテスト自動化カンファレンス2022 発表資料
https://testautomationresearch.connpass.com/event/262132/
ENDO Yasuyuki
December 03, 2022
Tweet
Share
More Decks by ENDO Yasuyuki
See All by ENDO Yasuyuki
Blueskyに伏せ字投稿ができるWebアプリの作り方
eyasuyuki
0
470
Bluespoilerのご紹介
eyasuyuki
0
430
キーワード駆動っぽいテストができるツールを開発した話
eyasuyuki
0
460
Kotlin Updates in LL2019
eyasuyuki
0
560
Learn Languages 2019
eyasuyuki
5
1.1k
Why Flutter excitement me?
eyasuyuki
3
1.1k
Kotlin vs Swift
eyasuyuki
0
510
フロントエンドだめ自慢
eyasuyuki
0
130
llot_frontend.pdf
eyasuyuki
0
55
Other Decks in Technology
See All in Technology
Mambaで物体検出 完全に理解した
shirarei24
2
200
帳票構造化タスクにおけるLLMファインチューニングの性能評価
yosukeyoshida
1
230
AWS表彰プログラムとキャリアについて
naoki_0531
1
150
alecthomas/kong はいいぞ
fujiwara3
6
1.3k
Kiroでインフラ要件定義~テスト を実施してみた
nagisa53
3
270
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
210
2025新卒研修・HTML/CSS #弁護士ドットコム
bengo4com
3
13k
GMOペパボのデータ基盤とデータ活用の現在地 / Current State of GMO Pepabo's Data Infrastructure and Data Utilization
zaimy
3
180
S3 Glacier のデータを Athena からクエリしようとしたらどうなるのか/try-to-query-s3-glacier-from-athena
emiki
0
140
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
9
1.5k
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
410
LIFF CLIとngrokを使ったLIFF/LINEミニアプリのお手軽実機確認
diggymo
0
220
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
182
54k
Producing Creativity
orderedlist
PRO
346
40k
Practical Orchestrator
shlominoach
190
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Designing for humans not robots
tammielis
253
25k
Fireside Chat
paigeccino
37
3.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
870
Git: the NoSQL Database
bkeepers
PRO
431
65k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Why Our Code Smells
bkeepers
PRO
337
57k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
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