テストが嫌いなチームでテスト文化を築く方法

Yunhao Jiao
テストが嫌いなチームでテスト文化を築く方法 カバー

ほとんどの開発者はテスト自体を嫌っているわけではありません。彼らが嫌うのは、テストに伴う単調な作業です。繰り返しのテストスクリプトの記述、不安定なCIのデバッグ、スプリントごとに壊れるセレクターのメンテナンス、そして常に正しい状態にないテストデータとの格闘がその原因です。

チームが「テスト文化の問題」と言うとき、実際にはテストツールの問題を抱えていることがほとんどです。文化はツールに従います。

テスト文化の取り組みが失敗する理由

テスト文化を改善するための標準的なアプローチ:

  1. エンジニアリングマネージャーが「テストを増やす必要がある」と宣言する
  2. カバレッジ目標が設定される(多くの場合80%)
  3. 開発者はその数値を達成するために最低限のテストを書く
  4. テストの品質が低い(振る舞いではなく実装の詳細をテストしている)
  5. メンテナンスの怠慢によりテストが頻繁に壊れる
  6. 開発者はカバレッジの義務に不満を抱くようになる
  7. 以前よりもテスト文化が悪化する

これが失敗するのは、テストをメリットではなく義務として扱っているからです。開発者はその指示に従いますが、その価値を内面化しません。

テスト文化を実際に構築するもの

強いテスト文化を持つチームには共通の特徴があります。テストが速く、自動的で、有用であることです。テストの失敗が本番環境のバグを防いだとき、開発者はその価値を直接実感します。テストが数秒で実行され、メンテナンスを必要としないとき、そのコストは消えます。

作成の負担を取り除く。開発者はテストスクリプトを書くべきではありません。AIテストエージェントが包括的なテストを自律的に生成します。必要な手間はゼロです。

結果を即時にする。すべてのPRで5分以内にテストを実行。開発者はコンテキストが新鮮なうちにフィードバックを受け取ります。翌日でも、夜間の実行後でもありません。

失敗を実行可能にする。ビジュアルデバッグにより、何が問題だったのかが正確にわかります。開発者は数時間ではなく、数分で診断して修正できます。テストの失敗を修正することは、タイポを修正するような感覚であるべきで、考古学的な発掘作業に乗り出すようなものであってはなりません。

成功を見えるようにする。テストが本番前にバグを検出したとき、それを称えましょう。「TestSpriteがPR #247で認証フローの不具合を検出しました。本番インシデントになっていたところでした。」この可視性がツールと成果を結びつけます。

TestSpriteは、開発者がテストについて嫌うすべてのもの(スクリプトの記述、メンテナンス、不安定なCI、遅い実行)を取り除き、彼らが価値を置くすべてのもの(バグの検出、リリースへの自信、迅速なフィードバック)を残すことで、テスト文化を築きます。

文化はツールに従います。ツールを修正すれば、文化は後からついてきます。

TestSpriteを無料で試す →