สมมติฐานคือกลุ่มของไลบรารีการทดสอบที่ให้คุณเขียนการทดสอบโดยกำหนดพารามิเตอร์ตามแหล่งที่มาของตัวอย่าง จากนั้นการนำสมมติฐานไปใช้จะสร้างตัวอย่างที่ง่ายและเข้าใจได้ซึ่งทำให้การทดสอบของคุณล้มเหลว สิ่งนี้ทำให้การเขียนการทดสอบของคุณง่ายขึ้นและทำให้มีประสิทธิภาพมากขึ้นในเวลาเดียวกัน โดยปล่อยให้ซอฟต์แวร์สร้างบิตที่น่าเบื่อโดยอัตโนมัติและทำตามมาตรฐานที่สูงกว่าที่มนุษย์จะทำ ทำให้คุณมีเวลามุ่งเน้นไปที่ตรรกะการทดสอบในระดับที่สูงขึ้น
การทดสอบประเภทนี้มักเรียกว่า "การทดสอบตามคุณสมบัติ" และการนำแนวคิดนี้ไปใช้ที่เป็นที่รู้จักอย่างกว้างขวางที่สุดคือ QuickCheck ของไลบรารี Haskell แต่สมมติฐานแตกต่างอย่างมากจาก QuickCheck และได้รับการออกแบบมาเพื่อให้เข้ากับรูปแบบการทดสอบที่มีอยู่ตามสำนวนและง่ายดาย คุ้นเคยโดยไม่จำเป็นต้องมีความคุ้นเคยกับ Haskell หรือการเขียนโปรแกรมเชิงฟังก์ชันเลย
สมมติฐานสำหรับ Python คือการนำไปใช้งานดั้งเดิมและเป็นสิ่งเดียวที่ขณะนี้พร้อมสำหรับการผลิตอย่างสมบูรณ์และบำรุงรักษาอย่างแข็งขัน
แนวคิดหลักของสมมติฐานคือไม่เชื่อเรื่องภาษา และโดยหลักการแล้ว มันเหมาะสำหรับทุกภาษา เรามีความสนใจในการพัฒนาและสนับสนุนการใช้งานสำหรับภาษาต่างๆ ที่หลากหลาย แต่ในปัจจุบันยังขาดทรัพยากรที่จะทำเช่นนั้น ดังนั้นความพยายามในการย้ายของเราจึงส่วนใหญ่เป็นแบบต้นแบบ
การใช้สมมติฐานต้นแบบสองประการสำหรับภาษาอื่นคือ:
นอกจากนี้ยังมีพอร์ตของกลไกหลักของสมมติฐาน การคาดเดา และสนิม คุณลักษณะนี้ยังไม่สมบูรณ์ แต่ในระยะยาว เราหวังว่าจะย้ายฟังก์ชันส่วนใหญ่ที่มีอยู่ไปเป็น Rust และสร้างสมมติฐานใหม่สำหรับ Python ขึ้นมาใหม่ ซึ่งช่วยลดความพยายามในการย้ายไปยังภาษาอื่นได้อย่างมาก
สิ่งเหล่านี้หรือทั้งหมดสามารถกลายเป็นการใช้งานเต็มรูปแบบได้โดยใช้ความพยายามเพียงเล็กน้อย (ไม่เกินสองสามเดือนของการทำงานเต็มเวลา) แต่เช่นเดียวกับงานเริ่มแรก การดำเนินการนี้จะต้องมีใครสักคนเตรียมพร้อมที่จะจัดหาหรือให้ทุนสนับสนุนความพยายามในการบำรุงรักษาอย่างต่อเนื่องสำหรับพวกเขา เพื่อที่จะดำรงอยู่ได้