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

多くの開発者はテスト自体を嫌っているわけではありません。彼らが嫌うのはテストに付随する煩雑な作業です。繰り返しのテストスクリプト作成、不安定なCIのデバッグ、スプリントのたびに壊れるセレクタのメンテナンス、そして常に正しい状態にないテストデータへの対処などです。
チームが「テスト文化の問題がある」と言う場合、たいていはテストツールの問題を抱えています。文化はツールに従います。
テスト文化の取り組みが失敗する理由
テスト文化を改善するための一般的なアプローチ:
- エンジニアリングマネージャーが「もっとテストが必要だ」と宣言する
- カバレッジ目標が設定される(たいていは80%)
- 開発者はその数値を達成するために最低限のテストを書く
- テストの質が低い(振る舞いではなく実装の詳細をテストしている)
- メンテナンスの怠慢によりテストが頻繁に壊れる
- 開発者はカバレッジの義務に嫌気が差すようになる
- テスト文化は以前より悪化する
これが失敗するのは、テストを利益としてではなく義務として捉えているからです。開発者はその指示には従いますが、その価値を内面化することはありません。
実際にテスト文化を構築するもの
テスト文化が強いチームには共通の特徴があります。テストが速く、自動化されており、役に立っているということです。テストの失敗が本番環境のバグを防いだとき、開発者はその価値を直接実感します。テストが数秒で実行され、メンテナンスも不要であれば、コストは消えます。
作成の負担をなくす。開発者はテストスクリプトを書くべきではありません。AIテストエージェントが自律的に包括的なテストを生成します。労力ゼロです。
結果を即時にする。すべてのPRで5分以内のテスト実行。開発者はコンテキストが新鮮なうちにフィードバックを得られます。翌日ではなく、夜間実行の後でもなく。
失敗を実行可能なものにする。ビジュアルデバッグで何が問題だったかを正確に示します。開発者は数時間ではなく数分で診断・修正できます。テストの失敗を修正するのは、タイポを直すような感覚であるべきで、考古学的発掘調査に乗り出すようなものであってはなりません。
成功を可視化する。テストが本番環境前にバグを検出したら、それを称えましょう。「TestSpriteがPR #247で壊れた認証フローを検出しました。本番インシデントになるところでした。」この可視化がツールと結果を結びつけます。
TestSpriteは、開発者がテストについて嫌うすべてのこと(スクリプト作成、メンテナンス、不安定なCI、遅い実行)を取り除き、彼らが価値を感じるすべてのこと(バグの検出、リリースへの自信、迅速なフィードバック)を残すことでテスト文化を構築します。
文化はツールに従います。ツールを修正すれば、文化もついてきます。
TestSpriteを無料で試す →