このレッスンの到達目標
実装に合わせて正解を作らず、条件と計算例を確定する。
音声とインタラクティブ図解で学ぶ音声を再生すると、下のインタラクティブ図解と本文の段落ハイライトが連動して動きます。
INDEPENDENT TEST ORACLE LAB · AUDIO & INTERACTIVE
独立テストオラクル計算器(値引き順序・端数処理・境界値比較)
AIの実装式をなぞるテストではなく、合意した業務ルール(単価×数量・値引き率・切り捨て/切り上げ/四捨五入)から独立して期待値を導きます。
ルール別の期待値比較(税対象外)切り捨て:2703円 / 切り上げ:2702円 / 四捨五入:2703円
端数が出る入力(例:1,001円×3個=3,003円、10%=300.3円)を用意することで、切り捨て(2,703円)と切り上げ(2,702円)の実装ミスを確実に検出できます。
オラクル設計の原則AIが書いた実装コードをコピーしてテスト期待値を作らない
正常値だけでなく、値引き0%、対象外取引先、上限超え、保存失敗時のロールバック状態も期待結果に含めます。
実装とテストが一緒に間違う場合
AIが誤った計算式で実装し、その式をなぞるテストを作れば、テストが通っても業務要件に合いません。期待結果は、合意した業務ルールや独立した計算例から導きます。
数量×単価、値引き、税、端数処理の順番を明示します。同じ入力でも順序により結果が違う場合があるため、適用するルールを顧客と合意します。教材の計算条件は演習上の仮定です。
変わってはいけない条件を使う
明細合計とヘッダー合計が一致する、同じ連携要求の再送で受注が増えない、締め済み取引が無断で変わらない、といった整合条件も確認します。
出力値だけでなく、エラー時の保存状態、権限、履歴、外部送信の有無も期待結果に含めます。未確定のルールはテストで勝手に固定しません。
判断の練習
計算例は通常の金額だけでなく、端数が出る金額と出ない金額を組み合わせます。値引き対象外と対象内、0円などを用意し、どの条件を確かめる例かを記録してください。
期待値の計算をAIに支援させても、合意したルールと別の計算手段で照合します。テストを通すために、根拠を確認せず期待値だけ変えてはいけません。
押さえておきたいこと
- 期待値の根拠を実装から分離する
- 順序と端数処理を明示する
- 保存状態や副作用も確認する
読了記録と習熟度の確認は別です。