Hypothesis は、例のソースによってパラメータ化されたテストを作成できるテスト ライブラリのファミリーです。その後、仮説の実装により、テストが失敗するシンプルでわかりやすい例が生成されます。これにより、ソフトウェアが退屈な部分を自動化し、人間が行うよりも高い水準でテストを実行できるため、テストの作成が簡素化され、同時にテストがより強力になり、ユーザーは高レベルのテスト ロジックに集中できるようになります。
この種のテストは「プロパティベースのテスト」と呼ばれることが多く、この概念の最も広く知られている実装は Haskell ライブラリ QuickCheck ですが、Hypothesis は QuickCheck とは大きく異なり、既存のテスト スタイルに慣用的かつ簡単に適合するように設計されています。 Haskell や関数型プログラミングの知識はまったく必要ありません。
Hypothesis for Python はオリジナルの実装であり、現在完全に運用準備が整い、アクティブにメンテナンスされている唯一の実装です。
仮説の核となるアイデアは言語に依存せず、原理的にはどの言語にも適しています。私たちはさまざまな言語の実装の開発とサポートに興味を持っていますが、現時点ではそれを行うためのリソースが不足しているため、移植作業はほとんどがプロトタイプです。
他の言語向けの Hypothesis の 2 つのプロトタイプ実装は次のとおりです。
さらに、Hypothesis、Conjecture のコア エンジンが Rust に移植されています。完全な機能ではありませんが、長期的には既存の機能の多くを Rust に移行し、その上に Hypothesis for Python を再構築して、他の言語への移植の労力を大幅に軽減したいと考えています。
これらの一部またはすべては、比較的少ない労力 (フルタイムで数か月以内) で本格的な実装に変えることができますが、これには初期作業と同様に、継続的なメンテナンス作業を提供または資金提供する準備ができている人が必要になります。実行可能であるために。