Slide 1

Slide 1 text

Gaugeによるe2eテスト 林 尚之

Slide 2

Slide 2 text

自己紹介 ● 林 尚之 twitter:@t_hyssh ○ 所属:株式会社ユーザベース ■ プログラマー & SPEEDA開発責任者 ○ XP(エクストリーム・プログラミング)、TDD、DDD

Slide 3

Slide 3 text

SPEEDAでは 「UAT(E2E)がほぼ唯一のドキュメントでありテストと して実行可能である」 という考えで開発を行っています

Slide 4

Slide 4 text

SPEEDA開発の流れ 対象ストーリーのピックアップ ストーリーに対するE2Eテスト (仕様、UAT)を記述 ユニットテストの記述 (XUnit系中心) 実装 ユニットテストをパス UATをパス 対象ストーリーをDone 全ての流れでエンジニアが関わる。 UAT作成 時にテストエンジニア、ドメインエキスパートとプ ログラマーがペアプロ

Slide 5

Slide 5 text

SPEEDA開発の流れ 対象ストーリーのピックアップ ストーリーに対するE2Eテスト (仕様、UAT)を記述 ユニットテストの記述 (XUnit系中心) 実装 ユニットテストをパス UATをパス 対象ストーリーをDone テストエンジニア、ドメインエキスパート、プ ログラマー全てが関わる所なので下記が重 要 ● ドキュメントとしての表現力 ● プログラミングとしての表現力 ● メンテナンス性、拡張性

Slide 6

Slide 6 text

今年前半までの取り組み(Scala + Specs2) ● ヒアドキュメントと、各行に対して処理 を埋め込む事が可能 ● ただし非プログラマーが見るには抵抗 がある。 ● テスト結果をHTMLとして出力可能だ がデフォルトだと表現が貧弱

Slide 7

Slide 7 text

悪くないし、Scala好きだけどドメインエキスパート、 テストエンジニアの事を考えるともっとドキュメントとし ての表現力が高いe2e環境が欲しい・・・

Slide 8

Slide 8 text

そんな時に、社内LTにてQAエンジニアがGaugeを 紹介。。。

Slide 9

Slide 9 text

LT後に興奮するSPEEDAエンジニア達。 Gaugeは正に求めていた物でした。

Slide 10

Slide 10 text

Gauge ● https://getgauge.io/ ● ThoughtWorksが開発(OSS GPL3.0) ● Markdown形式で記述可能 ● Markdownのドキュメント(spec)にはプログラムのソースが一切介在しな い ● リッチなレポートを出力可能 ● 様々な言語でテストを記述することが可能(Java、C#、Ruby) ○ SPEEDA開発ではKotlinで記述 ● IDE機能が強力

Slide 11

Slide 11 text

Gauge ・対応するStep(次スライドにて 説明)が存在しない場合はコン パイルエラーにしてくれる。 ・コード補完も効く!

Slide 12

Slide 12 text

Gauge (Kotlin側) *アノテーションが Markdown(spec)側と対応 する。 実際はここにselenium等の処理を記述し てアサーションする (今回は省略・・・)

Slide 13

Slide 13 text

Gauge(出力レポート) 簡易な検索ボックス もある。

Slide 14

Slide 14 text

今の所いい感じで使えてます。 e2eのフレームワークを探しているのであれば一度 試して見る価値はあるかと。

Slide 15

Slide 15 text

ご清聴ありがとうございました。