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
510
Bluespoilerのご紹介
eyasuyuki
0
440
キーワード駆動っぽいテストができるツールを開発した話
eyasuyuki
0
470
Kotlin Updates in LL2019
eyasuyuki
0
570
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
56
Other Decks in Technology
See All in Technology
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
170
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
350
PLaMoの事後学習を支える技術 / PFN LLMセミナー
pfn
PRO
9
3.8k
コンテキストエンジニアリングとは? 考え方と応用方法
findy_eventslides
4
900
多野優介
tanoyusuke
1
430
BtoBプロダクト開発の深層
16bitidol
0
280
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
740
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
7
2.3k
実装で解き明かす並行処理の歴史
zozotech
PRO
1
320
GA technologiesでのAI-Readyの取り組み@DataOps Night
yuto16
0
270
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
0
120
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
270
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Six Lessons from altMBA
skipperchong
28
4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The World Runs on Bad Software
bkeepers
PRO
71
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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