Technote

by sizuhiko

冬のJavaScript祭りに参加して、E2Eテストについて登壇しました

11/30に開催されたJavaScript祭りに参加しました

早速ですが、私のスライドは以下のとおりです。

なぜこのテーマを選んだか?

最近E2Eテストの課題について、いろいろなところで話題になっていたのと、 CakeFestでJoseがテストに関連する講演をしていたのですが、 実はE2Eテストの理解って意外とされていないのでは?と思い、このテーマを選びました。

内容自体は、各種引用から成り立っていて、現時点では最適な解決策はPuppeteerを使うことなのでは?という話の流れです。

講演の概要

まずはTesting Pyramidの話ですが、これはGoogleが提唱した割合の話としてよく出没する3段の簡易な画像です。 Joseの発表でも、この簡易版の画像を引用していました。

Just Say No to More End-to-End TestsというGoogleのTesting Blogの記事なのですが、 これはテストの比率を説明する資料としてはわかりやすいものです。しかし具体性に欠けています。 そこで出典の記事を確認する必要があります。

記事の中で

Here is a simplified version of the testing pyramid from the opening keynote of the 2014 Google Test Automation Conference:

と書かれているように、Google Test Automationカンファレンスのオープニングキーノートを確認してみましょう。

そうすると、Testing Pyramidの話をしています。 よく見ると、これ自体が引用であることがわかります。さらに出典を辿ってみます。

WatirMelon - A Software Testing Blog by Alister Scottというブログがあります。 先ほどのキーノートのスライドの説明で、このブログの著者Alisterが観客の中にいることが示唆されています。

最初のTesting Pyramidの例では、ざっくりとしていた各層は、実はもう少しブレイクダウンされています。

これらは全て2014年の内容ですが、今でもこの理解がされていないのでは?という気がします。 E2Eはマニュアル(手動)テストも含んでいるのです。 自動化にばかりフォーカスされている気がしますね。

で、Testing Pyramidについて、新しい記事がないかな?というときに、ありましたよ。 我らが martinFowler.com のThe Practical Test Pyramidです。 こちらは2018年の技術背景を元に書かれています。 とても良い内容なので、これを読むことでテストに対する理解がぐっと深まります。

で、現時点で使うツールはPuppeteerで良いのでは?という、私の提案で終わります。 Puppeteerがなぜ良いかというのはスライドに書いてある内容で理解していただけると思います。

また、もしUIテスト(単体や結合)で使いたい場合の機能についても、簡単にふれています。

さいごに

同日にJSConf JPが開催されていて、JavaScriptのイベント同士で被るのかー、と思っていたら結構参加者も多く、 他にもとても楽しいセッションが多く、盛り上がりました。

次回もぜひ参加したいと思います。