qc

تبلیغات:
نرم افزار تصویر:
qc
جزئیات نرم افزار:
نسخه: 0.1
ها تاریخ: 14 Apr 15
توسعه دهنده: Peter Scott
پروانه: رایگان
محبوبیت: 11

Rating: 4.0/5 (Total Votes: 1)

تبلیغات:

.

کنترل کیفیت ابزار تست که به شما امکان ارسال خواص است که شما انتظار صادق است، و اجازه دهید کامپیوتر تولید موارد آزمون تصادفی به بررسی کنید که این خواص در واقع نگه و nbsp است؛ به عنوان مثال، اگر شما فشرده نوشته شده اند و از حالت فشرده خارج توابع برای برخی از برنامه فشرده سازی داده ها، اموال آشکار به آزمون این است که فشرده سازی و دکمپرس یک رشته بر می گرداند رشته اصلی است. در اینجا شما می تواند بیان که:
واردات unittest
واردات کنترل کیفیت
TestCompression کلاس (unittest.TestCase):
و nbsp؛ @ qc.property
و nbsp؛ دف test_compress_decompress (خود):
و nbsp؛ "" ". تست که فشرده سازی و دکمپرس بازده داده های اصلی" ""
& nbsp؛ از داده = qc.str () # رشته دلخواه. ارزش ها تصادفی.
& nbsp؛ در self.assertEqual (داده ها، از حالت فشرده خارج (فشرده سازی (داده))، repr (داده))
این آزمون عادی با unittest ساخته شده است در چارچوب پایتون است (که به همین دلیل است boilerplate بسیار وجود دارد). همچنین، شما می توانید همین کار را دقیق آن با چارچوب آزمایش های مختلف انجام دهید، مانند حداقل پرگو، بینی کاملا دلپذیر است. دکوراتور @ qc.property اجرا می شود تابع تزئین چند بار، و هر بار که ارزش های توابع مانند qc.string () متفاوت است بازگشت. به عبارت دیگر، QuickCheck سازگار با تقریبا هر واحد چارچوب آزمون خارج وجود دارد. آن را به خصوص خواستار نیست.
توابع مانند qc.str ()، qc.int ()، و غیره، تولید مقادیر دلخواه از نوع خاصی. در مثال بالا، ما در حال تصریح می کند که اموال واقعی برای همه رشته ها نگه می دارد. هنگامی که شما در آزمون اجرا، QuickCheck خواهد رشته تصادفی برای آزمایش تولید کند.
شما متوجه خواهید شد که من گفتم "تصادفی"، "تصادفی" نیست. این عمدی است. توزیع ارزش است بهینه سازی شامل مقادیر جالب، مانند رشته خالی، و یا رشته های با شخصیت های پوچ در وسط، و یا رشته حاوی متن انگلیسی. به طور کلی، QuickCheck تلاش می کند به یک ترکیب خوب از ارزش ها روی حیله و تزویر هوشمندانه و اتفاقی. این است که اساسا چه شما را انجام دهد، اگر شما تا به حال به نوشتن موارد آزمون واقعا کامل با دست، با این تفاوت که شما لازم نیست که به آن انجام دهد. در عمل، کامپیوتر تصورتان کمتر در مورد آنچه به منزله داده عاقل، پس از آن، اغلب اوقات اشکالات که هرگز به شما رخ داده است به نوشتن موارد آزمون برای پیدا کردن. آن را نمی داند چگونه به ناخودآگاه جلوگیری از اشکالات.
شما به ساخته شده در توابع ارزش خودسرانه محدود نمی شود. شما می توانید آنها را به عنوان بلوک های ساختمان برای تولید خود استفاده کنید. برای مثال:
کلاس نقطه (شی):
و nbsp؛ دف __init __ (خود، X، Y):
& nbsp؛ در self.x، self.y = شناور (X)، شناور (Y)
نقطه دف ():
و nbsp؛ "" "دریافت نقطه دلخواه." ""
و nbsp؛ X = qc.int (-20، 20)
و nbsp؛ Y = qc.int (-34، 50)
و nbsp؛ بازگشت به نقطه (X، Y)
بعد از آن شما می توانید استفاده کنید این برای تولید مقادیر نقطه دلخواه در خواص. در اینجا یک آزمون بینی به سبک است:
@ qc.property
دف test_triangle_inequality ():
و nbsp؛ PT = نقطه ()
& nbsp؛ از ادعا ABS (pt.x) + ABS (pt.y)> = math.sqrt (pt.x ** 2 + pt.y ** 2)، (pt.x، pt.y)
هنگامی که شما این اجرا، چیزی جادویی اتفاق می افتد: QuickCheck سعی خواهد کرد برای تولید مقادیر روی حیله و تزویر برای متغیرهای هر دو x و y در کلاس نقطه، با هم، به طوری که شما نقاط مانند (0، 0) را ببینید، (1، 1)، ( 0، 1)، (385،904، 0)، و همچنین آنهایی که کاملا تصادفی مانند (584، -35809648). به عبارت دیگر، نه فقط جلب X و Y مقادیر از یک جریان از اعداد تصادفی با برخی از ارزش روی حیله و تزویر در آن، QuickCheck در واقع سعی خواهد کرد برای تولید ترکیبات روی حیله و تزویر از x و y.
توابع برای گرفتن اطلاعات خودسرانه
- اعضای هیات (کم، بالا) را می دهد وقفه، بین مرزهای اختیاری پایین و بالا.
- طولانی (کم، بالا) را می دهد پوزیشن های خرید، بین مرزهای اختیاری پایین و بالا.
- شناور (کم، بالا) را می دهد شناور، بین مرزهای اختیاری پایین و بالا. بدون بی نهایت یا نان ارزش.
و nbsp؛ خ (طول = هیچ، maxlen = هیچ) می دهد رشته ها، از نوع خ. رمزگذاری UTF-8 است. اگر طول داده شده است، رشته خواهد بود که دقیقا طولانی است. اگر maxlen داده می شود، طول رشته خواهد بود شخصیت در maxlen ترین.
- یونیکد (طول = هیچ، maxlen = هیچ) می دهد رشته یونیکد، از نوع یونیکد. اگر طول داده شده است، رشته خواهد بود که دقیقا طولانی است. اگر maxlen داده می شود، طول رشته خواهد بود شخصیت در maxlen ترین.
- نام و نام خانوادگی () را می دهد نام، در یونیکد. این محدوده از کسل کننده، مانند "جان اسمیت"، به عجیب و غریب - نام شامل فضاهای غیر شکستن، و یا آدرس ایمیل، و یا کاراکترهای یونیکد در خارج از پایه چند زبانه هواپیما. این است، اگر هر چیزی، کمتر منحرف از نام شما در مجموعه ای به اندازه کافی بزرگ از داده ها در اینترنت را مشاهده کنید.
- nameUtf8 () همان نام است () رمز ('UTF8')..
- fromList (مورد) برمی گرداند اقلام تصادفی از یک لیست. این بیشتر برای ایجاد خود توابع مولد داده خودسرانه شما مفید باشد.
- randstr (طول = هیچ، maxlen = sys.maxint) رشته ای از بایت تصادفی می دهد. اگر طول داده شده است، رشته خواهد بود که دقیقا طولانی است. اگر maxlen داده می شود، طول رشته در اکثر maxlen بایت باشد.
رشته تولید شده توسط خ و یونیکد به صورت تصادفی، اما برخی تلاش شده است به ساخت آنها را به اندازه کافی منحرف به عنوان به فاش اشکالات در کل بسیاری از کد پردازش رشته قرار داده است. لیست نام آزادانه در خاطرات وحشتناک از دیدن سقوط کد نام پردازش بر روی داده های دنیای واقعی، بارها و بارها و بارها، به عنوان آن را همیشه روشن تر است که جهان دیوانه است تبدیل شد، و ما واقعا محکوم است. (این احساس می گذرد هنگامی که شما پوشش آزمون به اندازه کافی و همه چیز در نهایت متوقف توفنده دریافت کنید. امیدی وجود دارد!)
نام و به عنوان مثال رشته داده در qc.arbitrary ممکن است جالب به عنوان یک منبع داده مورد آزمون deteministic تر. شما میتوانید به راحتی به قرض گرفتن هر یک از آن. داخلی سحر و جادو هستند، اما از قطعات داخلی جادویی، آنهایی که جالب ترین در qc.arbitrary و کنترل کیفیت هستند

مورد نیاز:.

پایتون

نرم افزار های مشابه

Peptest
Peptest

14 Apr 15

Ahven
Ahven

15 Apr 15

json-document
json-document

14 Apr 15

نظرات به qc

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!