suzuderu

AIが書いたテストが本当に効くか、わざとコードを壊して確かめる

AIにテストコードを書いてもらい、実行したら全部通った。そこで安心したくなりますが、通ったという事実だけでは、そのテストが不具合を見つけられるかどうかは分かりません。この記事では、テストの効き目を自分の手で確かめる小さな練習を書きます。

通る表示だけでは足りない理由

テストは、実は何も確かめていなくても通ることがあります。期待値の書き方がゆるかったり、関数を呼ぶだけで結果を見ていなかったりする場合です。AIが書いたテストでも起こり得るので、通った理由まで見る癖をつけておくと役に立ちます。

対象を一つの関数に絞る

最初から全体を調べようとすると手が止まります。まず小さな関数を一つ選び、それに対するテストだけを見ます。入力と出力がはっきりした関数が向いています。

テストが守る約束を言葉にする

テストを読み、どんな入力でどんな結果を求めているかを、ノートに一文ずつ書き出します。たとえば「空の入力ではエラーになる」といった形です。書けない部分があれば、テストの意図が曖昧なのかもしれません。

わざと本体を壊して実行する

約束を一つ選び、本体のコードを意図的に変えます。条件を逆にする、戻り値を固定するなど、小さな変更で足ります。そのうえでテストを実行し、失敗するかを見ます。始める前に変更前の状態を保存しておくと、あとで迷いません。

失敗しなかったときの見方

壊したのにテストが通ったなら、その約束は守られていません。期待値がゆるい、入力例が少ない、その分岐を通っていないなどが考えられます。原因の予想を書いてからAIにテストの補強を相談すると、依頼の内容が具体的になります。

三つの列でメモに残す

どこを壊したか、テストの結果、気づいたことの三列で記録します。表計算でもテキストファイルでも構いません。何回か続けると、自分がどの種類の変更を見逃しやすいかが少しずつ見えてきます。

元に戻して全体を確認する

確認が終わったら変更を戻し、テストがすべて通る状態に戻ったかを実行して確かめます。補強したテストがあれば、もう一度壊して、今度は失敗するかを見ます。ここまでで一巡です。

次の一巡に向けて

次は別の関数を選び、同じ手順を繰り返します。AIと一緒に開発を学ぶときの考え方や教材は AI Craft Campus にまとまっているので、練習の合間に目を通してみるのもよいと思います。