Upgrade to Pro — share decks privately, control downloads, hide ads and more …

キーワード駆動っぽいテストができるツールを開発した話

ENDO Yasuyuki
November 04, 2022

 キーワード駆動っぽいテストができるツールを開発した話

自動化大好きエンジニアLT会 - vol.9 発表資料

ENDO Yasuyuki

November 04, 2022
Tweet

More Decks by ENDO Yasuyuki

Other Decks in Technology

Transcript

  1. キーワード駆動っぽいテストができるツールを開発した話
    2022-11-02 @eyasuyuki
    1

    View full-size slide

  2. 結論
    キーワード駆動テストの欠点は で解決できる
    2

    View full-size slide

  3. 今回開発したツール
    Keydriver
    https://github.com/eyasuyuki/keydriver
    ノーコードでe2e
    テストができる
    オープンソース
    商用利用可(MIT
    ライセンス)
    気に入ったら☆(Star)
    ください
    Zenn
    の記事
    https://zenn.dev/eyasuyuki/articles/a20301d34adce0
    3

    View full-size slide

  4. キーワード駆動テストとは
    システムテストの技法の一つ
    アクションキーワードとデータからなる表を使ってテストする
    キーワード表を読み込んでSelenium
    などを動かすトライバーを作れば自動化できる
    4

    View full-size slide

  5. キーワード駆動テストとは
    システムテストの技法の一つ
    アクションキーワードとデータからなる表を使ってテストする
    キーワード表を読み込んでSelenium
    などを動かすトライバーを作れば自動化できる
    ......
    などとされているが実践している人を誰も見たことがない幻のテスト技法である
    5

    View full-size slide

  6. キーワード駆動テストの例
    No
    キーワー
    ド 対象 引数 備考
    1 open url[https://www.google.com] URL
    をブラウズする
    2 input
    テキストボックス サルゲッチュ テキストボックスへの入力
    3 click
    ボタン[Google
    検索]
    ボタンをクリックする
    4 assert
    タイトル is[
    サルゲッチュ - Google

    索]
    検索結果ページのタイトル検

    6

    View full-size slide

  7. キーワード駆動テストのメリット
    操作を示すキーワードと、その対象となるデータが1
    つの表で表現できる
    画面が変更されてもドライバーをメンテナンスするだけで済む
    発表者が考えるメリット:
    システムテストの記述を標準化できる
    テストデータが各所に分散するのを防止できる
    7

    View full-size slide

  8. キーワード駆動テストのデメリット
    ドライバーを書くのが大変
    ドライバーのメンテナンスが大変
    これらの欠点により幻のテスト技法となってしまったのではなかろうか。
    ではどうするか
    ?
    8

    View full-size slide

  9. デメリットを で解決する
    9

    View full-size slide

  10. デメリットを頓知で解決する
    10

    View full-size slide

  11. デメリットを頓知で解決する
    ドライバーを書くのが面倒なら、キーワード表を拡張して画面依存の情報も含めるのはどうか?
    11

    View full-size slide

  12. 拡張したキーワード表
    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

    View full-size slide

  13. 動作概念図
    Keydriver POI Excel WebDriver
    ブラウザ
    E
    Ex
    xc
    ce
    el
    l

    ファ
    ァイ
    イル
    ル読
    読み
    み込
    込み


    読み
    み込
    込み


    ワー
    ーク
    クシ
    シー
    ート


    ワー
    ーク
    クシ
    シー
    ート


    ブラ
    ラウ
    ウザ
    ザ操
    操作


    ブラ
    ラウ
    ウザ
    ザ操
    操作


    ブラ
    ラウ
    ウズ
    ズ結
    結果


    ブラ
    ラウ
    ウズ
    ズ結
    結果


    結果
    果検
    検証


    テス
    スト
    ト結
    結果
    果出
    出力


    テス
    スト
    ト結
    結果
    果出
    出力

    Keydriver POI Excel WebDriver
    ブラウザ
    13

    View full-size slide

  14. 実際の
    Excel
    表の例
    14

    View full-size slide

  15. デモ
    https://youtu.be/Klqx18-cBgw
    15

    View full-size slide

  16. 参考文献
    (1/2)
    ソフトウエア品質を高める開発者テスト改訂版 (
    高橋寿一 2022)
    ISBN978-4-7981-7639-0
    16

    View full-size slide

  17. 参考文献
    (2/2)
    システムテスト自動化標準ガイド (Mark Fewster, Dorothy Graham 1999)
    ISBN978-4-7981-3921-0
    17

    View full-size slide