Abbeal

Learning

Kent C. Doddsの Testing JavaScript — 率直なレビュー

シニアエンジニアのAlexandre Limが、Kent C. DoddsのTesting JavaScriptをレビュー。Testing Trophyを使ってJavaScriptアプリをテストする方法を教えるコース。メンタルモデルから具体的なパターンまで、E2EからReact Testing Libraryまで、急成長クライアントでテスティング導入をリードした実話とともに。

5 min
Alexandre LimLinkedIn

AbbealのシニアエンジニアKent · アジア拠点・東京。React、フロントエンドテスティング、ソフトウェアクラフトマンシップ。

Testing JavaScriptとは?

Testing JavaScriptは、React Testing Libraryの作者であるKent C. Doddsによるオンラインコースで、Testing Trophyの手法を使ってJavaScriptアプリケーションを効率的にテストする方法を教える。テスティング自体は初心者向けだが、Webアプリ開発の経験が前提だ。8モジュールに豊富なビデオレッスンが詰まっている。

中核となる約束:ドグマなしで、どんなJavaScriptアプリケーションでもスマートかつ効率的にテストする方法を学ぶこと。

なぜ受講したか

ソフトウェアクラフトマンとして、テスティングは譲れない。自信を持ってshipできるコードと、半年後に触るのが怖いコードを分けるのはテストだ。以前のプロジェクトではEnzymeを使っていたが、ReactコミュニティはReact Testing Libraryと、よりユーザー中心の哲学に明確に移行していた。ライブラリの作者から直接テスティングを学ぶことが、レベルアップへの最も直接的な道に見えた。

約束は果たされたか?

果たされた——しかも2種類の異なる層に対して。

JavaScriptテスティングのエコシステムが初めてなら、このコースは一貫したメンタルモデルを与え、数ヶ月の試行錯誤を節約してくれる。ベテランでも、より鋭いパターンと、直感的にやっているトレードオフのより明確な根拠を持ち帰れる。ランディングページでモジュールを確認し、自分のステージに投資が見合うかを判断してほしい。

私の場合、テスティング経験はあったが、それでもより強固な基盤を持ち帰れた——個人プロジェクトでも仕事のプロジェクトでも今適用しているパターン、そして一緒に働いてきたエンジニアに教えてきたパターンだ。

コースから本番へ:実話

数年前、大きな資金調達を済ませて急成長フェーズに入っていたクライアントに参画した。スタックには堅実なE2Eカバレッジはあったが、フロントエンドのユニットテストや統合テストはほとんどなかった。コードベースが成長するにつれて、E2Eだけではボトルネックになった——遅すぎて、粗すぎて、本番で実際に壊れるエッジケースに対して盲目だった。

経営層にちゃんとしたフロントエンドテスティング層への投資を納得させるのは簡単ではない。粘って、ついにチャンスをもらった。チームは私がTesting JavaScriptを修了していることを知っていて、リードを取るように依頼してきた——ツールを選び、パターンを定め、既存のコードベースに統合し、フロントエンドチームを巻き込む役割だ。

引き受けた。段階的に本物のテスト基盤を構築し、すべてのタスクのdefinition of doneにテストを追加し、チームカルチャーをテスト駆動に近いものへとシフトさせた。コード品質は上がった。リグレッションは下がった。本番でのデバッグに費やす時間は意味のあるレベルで減った。そして——ほぼそれ以上に重要なことに——エンジニアは信頼できるものを出荷することに誇りを取り戻した。

私はその組織でフロントエンドテスティングのgo-toパーソンになった。約束を果たすことに加えて、このコースは今も恩恵を受けている機会を開いてくれた。

受講する価値はあるか?

JavaScriptで生計を立てているなら、迷わず受けるべきだ。リグレッションを本番に出すのを防いでくれた最初の一回で、コースは元が取れる。

似たような案件がありますか?

アーキテクトと話す