テストを嫌うチームでテスト文化を構築する方法

Yunhao Jiao
テストを嫌うチームでテスト文化を構築する方法 カバー

多くの開発者はテスト自体を嫌っているわけではありません。彼らが嫌うのはテストに付随する煩雑な作業です。繰り返しのテストスクリプト作成、不安定なCIのデバッグ、スプリントのたびに壊れるセレクタのメンテナンス、そして常に正しい状態にないテストデータへの対処などです。

チームが「テスト文化の問題がある」と言う場合、たいていはテストツールの問題を抱えています。文化はツールに従います。

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

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

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

これが失敗するのは、テストを利益としてではなく義務として捉えているからです。開発者はその指示には従いますが、その価値を内面化することはありません。

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

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

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

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

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

成功を可視化する。テストが本番環境前にバグを検出したら、それを称えましょう。「TestSpriteがPR #247で壊れた認証フローを検出しました。本番インシデントになるところでした。」この可視化がツールと結果を結びつけます。

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

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

TestSpriteを無料で試す →