عن المشروع

Hypothesis هي مكتبة اختبار قائمة على الخصائص للغة Python. فبدلاً من كتابة اختبارات بمدخلات ثابتة، يصف المطوّرون نطاق المدخلات التي يجب أن تتعامل معها الدالة، وتقوم Hypothesis بتوليد حالات اختبار عشوائية من ذلك النطاق—بما في ذلك حالات حدّية قد لا يتوقعها المطوّر. يعتمد سير العمل الأساسي على المزيّن @given ووحدة strategies. على سبيل المثال، يمكن كتابة اختبار بالشكل @given(st.lists(st.integers())) لتوليد قوائم من الأعداد الصحيحة تلقائياً والتحقق من أن دالة فرز مخصّصة تطابق الدالة المدمجة sorted() في Python. يكشف هذا الأسلوب عن الأخطاء والحالات الحدّية التي قد تفوتها حالات الاختبار المكتوبة يدوياً. عندما تجد Hypothesis اختباراً فاشلاً، فإنها لا تُبلّغ عن مدخل فاشل عشوائي. بدلاً من ذلك، تقلّص الحالة الفاشلة إلى أبسط حالة ممكنة، مما يسهّل التنقيح بشكل كبير. على سبيل المثال، إذا قامت دالة فرز بإزالة التكرارات من المدخلات بشكل خاطئ، فستُبلّغ Hypothesis عن الحالة الفاشلة الدنيا مثل ls=[0, 0] بدلاً من قائمة عشوائية كبيرة. التثبيت بسيط عبر pip install hypothesis. تتوفر إضافات اختيارية لوظائف إضافية. يتضمن المشروع وثائق وموقعاً إلكترونياً وقسماً مجتمعياً للمساهمين والمستخدمين.