条件分岐の不具合は、境界付近で起きやすくなります。「18歳以上」を試すなら、代表値一つでは足りません。
三点を選ぶ
| ケース | 入力 | 期待 |
|---|---|---|
| 直前 | 17 | 拒否 |
| ちょうど | 18 | 許可 |
| 直後 | 19 | 許可 |
import assert from "node:assert/strict";
assert.equal(canRegister(17), false);
assert.equal(canRegister(18), true);
assert.equal(canRegister(19), true);
複数の境界
文字数が1〜50なら、0、1、2、49、50、51を候補にします。全部の数を試す必要はありません。
特別な値
null、空文字、空配列、0、負数、非常に大きい値も仕様に応じて確認します。無効値をどう扱うかが仕様にないなら、先に決めます。
日付の境界
月末、年末、うるう年、タイムゾーンをまたぐ時刻は、単純な数値境界より注意が必要です。