Metamorphic Testing - 正解を書けない処理を入力の変え方で検査する

Metamorphic Testing(メタモルフィックテスト)は、出力の正解が分からない処理をテストする手法です。1 つの入力に対する正解を書く代わりに、「入力をこう変えたら、出力はこう変わるはず」という関係を書き、2 つの出力がその関係を満たすかを検証します。 ...

2026年11月11日 · 更新: 2026年11月12日 · 16 分 · nchika

Differential Testing - 同じ入力を別の実装に渡して出力を比べる

Differential Testing(差分テスト)は、同じ仕事をする 2 つ以上の実装に同じ入力を渡し、出力が一致するかを比べるテスト手法です。正解を人が書く代わりに、もう 1 つの実装の出力を比較の基準にします。名前は、McKeeman 氏の 1998 年の論文から広まりました。 ...

2026年11月12日 · 更新: 2026年11月12日 · 17 分 · nchika

Fuzzing - 機械に入力を作らせて、壊れる入力を探す

Fuzzing(ファジング)は、テスト対象に渡す入力を機械に大量に作らせ、プログラムが落ちる入力や止まらない入力を探すテスト手法です。人が思い付く入力ではなく、壊れたファイルや意味の無いバイト列を 1 秒に数万回の速さで渡し続けます。 ...

2026年11月12日 · 更新: 2026年11月12日 · 17 分 · nchika

Property-Based Testing - 性質を書いて入力を作らせ、破れた入力を縮める

Property-Based Testing(プロパティベーステスト)は、入力と期待値の組を人が書く代わりに、どの入力でも成り立つはずの性質を書き、入力を機械に作らせて性質が破れる入力を探すテスト手法です。性質が破れた入力を反例と呼びます。多くのライブラリは、反例を見つけると、性質が破れたまま入力を小さくする縮小(shrinking)も行います。 ...

2026年11月12日 · 更新: 2026年11月12日 · 16 分 · nchika