AIにテストコードを書いてもらい、実行したら全部通った。そこで安心したくなりますが、通ったという事実だけでは、そのテストが不具合を見つけられるかどうかは分かりません。この記事では、テストの効き目を自分の手で確かめる小さな練習を書きます。
通る表示だけでは足りない理由
テストは、実は何も確かめていなくても通ることがあります。期待値の書き方がゆるかったり、関数を呼ぶだけで結果を見ていなかったりする場合です。AIが書いたテストでも起こり得るので、通った理由まで見る癖をつけておくと役に立ちます。
対象を一つの関数に絞る
最初から全体を調べようとすると手が止まります。まず小さな関数を一つ選び、それに対するテストだけを見ます。入力と出力がはっきりした関数が向いています。
テストが守る約束を言葉にする
テストを読み、どんな入力でどんな結果を求めているかを、ノートに一文ずつ書き出します。たとえば「空の入力ではエラーになる」といった形です。書けない部分があれば、テストの意図が曖昧なのかもしれません。
わざと本体を壊して実行する
約束を一つ選び、本体のコードを意図的に変えます。条件を逆にする、戻り値を固定するなど、小さな変更で足ります。そのうえでテストを実行し、失敗するかを見ます。始める前に変更前の状態を保存しておくと、あとで迷いません。
失敗しなかったときの見方
壊したのにテストが通ったなら、その約束は守られていません。期待値がゆるい、入力例が少ない、その分岐を通っていないなどが考えられます。原因の予想を書いてからAIにテストの補強を相談すると、依頼の内容が具体的になります。
三つの列でメモに残す
どこを壊したか、テストの結果、気づいたことの三列で記録します。表計算でもテキストファイルでも構いません。何回か続けると、自分がどの種類の変更を見逃しやすいかが少しずつ見えてきます。
元に戻して全体を確認する
確認が終わったら変更を戻し、テストがすべて通る状態に戻ったかを実行して確かめます。補強したテストがあれば、もう一度壊して、今度は失敗するかを見ます。ここまでで一巡です。
次の一巡に向けて
次は別の関数を選び、同じ手順を繰り返します。AIと一緒に開発を学ぶときの考え方や教材は AI Craft Campus にまとまっているので、練習の合間に目を通してみるのもよいと思います。