INSIGHT
テスト全通過を、販売してよい証拠にするな——試していない条件は残っている
社内で用意したテストが全部通ったことを、顧客に約束する利用条件まで満たした証拠としてよいか。
販売開始の会議で、報告書の先頭に「テストはすべて通過」と書かれている。予定した画面は動き、用意した入力にも正しい結果が返った。あとは発売日を決めるだけに見える。
そこで確認したいのは、テストの本数ではない。顧客が使う権限、入力、操作の順番、連携先が止まる場面まで試験に入っていたかである。通過した結果は大切な証拠だが、証明できる範囲は試した条件までだ。
顧客へ約束する重要条件が未試験なら、「全テスト通過」を根拠に販売を決めてはいけない。
合格一覧の前に、試験の外側を開く
テスト記録には、合格した項目が並ぶ。その隣に「今回の試験に入っていない条件」を置くと、結果の意味が変わる。
たとえば管理者アカウントだけで試したなら、一般利用者や別部署の権限は未試験かもしれない。十件のサンプルだけなら、空欄、上限付近、重複、古い形式のデータは残っているかもしれない。一つの操作を順番どおりに行っただけなら、取消し、二重送信、複数人の操作は別である。連携先が常に応答したなら、遅延、通信切断、再送時の状態は分からない。
未試験は、欠陥があるという意味ではない。同時に、問題がないという意味でもない。「対象外」「未実施」「結果待ち」を合格へ混ぜず、その条件が販売時の約束に含まれるかを確かめる。
顧客への約束から、試す条件を逆算する
すべての組合せを試すことはできない。だから、試験を増やす出発点をコードではなく、顧客へ約束する業務に置く。
「承認者だけが確定できる」と案内するなら、一般利用者、代理者、担当変更後の利用者でも試す。「同じ申請は二重登録されない」と約束するなら、二度押し、通信切断後の再送、別画面からの重複を試す。「障害後も記録を確認できる」と言うなら、止まった時点、復元後の権限、失われる処理、再開方法を確かめる。
試験条件は、少なくとも次の四方向から選べる。
- 人:役割、権限、引継ぎ、代理操作
- 値:欠落、形式違い、境界、重複
- 流れ:取消し、差戻し、順不同、同時操作
- 周辺状態:連携停止、遅延、復元、設定変更
どれを優先するかは、誤った結果が誰の仕事、お金、情報、期限へ届くかで決める。試験数の多さを競うのではなく、約束を破ったときの影響が大きい条件を先にする。
未試験条件は「思いつく失敗の一覧」ではない。顧客への約束と、破ったときの影響から選ぶ。
「機能が通った」と「別の品質も通った」を混ぜない
SusVibesの研究 は、過去に脆弱性が修正された実装を基に186の機能追加課題を作り、機能とセキュリティのテストを分けて評価している。対象は100件のPythonリポジトリから構成した課題であり、通常の全開発や全モデルの事故率を示すものではない。ここで参照するのは2026年8月21日付のarXiv第3版で、顧客向け製品の販売可否を直接判断する研究でもない。
ここから借りられるのは、合格という言葉の中身を分ける視点である。登録できたことは、登録権限が正しいことを示さない。回答が期待例と一致したことは、参照してよい情報だけを使ったことを示さない。処理が完了したことは、途中の記録や取消しまで正しいことを示さない。
NISTのSecure Software Development Framework も、設計、レビュー、実行コードの検証、部品の来歴、公開後の脆弱性対応を扱う。AI生成コードへ全項目を一律に適用する義務や、製品品質の保証を示す資料ではない。試験時に見える機能だけで、公開後までの確認を終えないための一般的な補助線として参照できる。
未試験を、提供条件か追加試験のどちらかへ渡す
未試験の条件が見つかったら、すべてを発売前に試す必要があるとは限らない。顧客へ約束する範囲から外せるなら、提供条件へ明記する。対象利用者を限る、確定前に人が確認する、外部送信を行わない、特定のデータ形式だけを受け付ける、といった限定である。
約束から外せず、失敗時の影響も大きいなら、追加試験へ戻す。記録には、条件、期待結果、実際の結果、証拠、未解決時の扱いを残す。不合格だけでなく、環境を用意できず試せなかった場合も「未確認」とする。
公開後の監視は、未試験を埋める代わりにはならない。監視で気づける異常と、正常に見える誤処理は違う。たとえば応答停止は検知できても、担当外の案件が正常な画面で承認されたことは、業務記録との照合がなければ見つからないかもしれない。何を技術担当が見て、何を業務担当が照合するかを分ける。
販売の決裁を再開する四つの証拠
販売の決裁は、次の四つがそろった範囲で再開する。「試用版」「保証なし」と表記しても、顧客が実際に使う重要条件の未確認がなくなるわけではない。
- 顧客へ約束する利用者、操作、結果、例外が書かれている。
- 重要な約束ごとに、対応する試験条件と結果を示せる。
- 未試験・不合格の条件が、利用制限または追加対応へ割り当てられている。
- 公開後に技術上の異常と業務上の誤処理を確認し、提供条件を変える担当が決まっている。
一つでも欠けるなら、該当する約束を掲げた販売開始は保留する。社内試用、対象顧客を限った提供、人の確認を残した利用など、証拠がある範囲へ縮める。開発と試験は続けてよいが、未試験を合格と表示してはならない。
販売を再開する日は、テスト数が増えた日ではない。約束、試験、未確認の扱い、公開後の担当が一つの記録で結ばれた日である。
未試験の条件を開き、追加で試すか、提供範囲から外す
「全テスト通過」は、実施した試験への明確な答えである。その価値を守るには、答えていない問いまで合格に含めないことだ。
販売会議では、合格一覧と同じ重さで未試験条件を開く。顧客への約束から重要条件を選び、追加で試すか、提供範囲から外す。そこまで記録できれば、テスト結果は安心の標語ではなく、どこまで販売してよいかを支える証拠になる。