
نقص عمدهی فارزها، ناتوانی آنها در فهم ساختار مورد نیاز برنامههاست.
در این تحقیق، با کاوش سیستماتیک آلترنتیوهای تجزیه (Parsing) براساس دنبالهگیری داینامیک محدودیتها یک «تولید کنندهی تست هدفمند برروی پارسرهای ورودی» معرفی شده است. این رویکرد میتواند یک برنامه را بدون اینکه هیچ نمونه یا مدلی از ورودی آن وجود داشته باشد، جوری تحلیل کند که بتواند گرامر ورودیاش را (بطوری که از لحاظ Syntax معتبرند یا خیر ) یاد بگیرد و براساس این گرامر تولیدکنندههای تست کارآمد را جهت مقاصد بعدی (مثل فازینگ) تولید کند.
ایجاد یک ورودی آزمون معتبر برای یک برنامه بسیار ساده تر است اگر زبان ورودی را می دانید. ما اولین موفقیت ها را برای تکنیک ارائه می دهیم که با توجه به برنامه P بدون هیچ گونه نمونه یا مدل ورودی، یک گرامر ورودی را نشان می دهد که ورودی های معتبر به صورت نحوی برای P – دستور زبان است که می تواند برای تولید نسبی بسیار موثر برای P استفاده شود. برای این منظور، یک ژنراتور تست هدفمند در تجزیه کننده های ورودی معرفی می کنیم که به طور سیستماتیک گزینه های تجزیه ای را بر اساس ردیابی پویا محدودیت ها بررسی می کند؛ ورودی های خروجی به یک گرامر یادگیرنده تبدیل می شود که یک گرامر را ایجاد کند و سپس می توان برای fuzzing استفاده کرد. در ارزیابی ما در مورد موضوعاتی نظیر JSON، URL یا Mathexpr، نمونه اولیه PYGMALION ما فقط چند دقیقه طول کشید تا گرامرها را بیرون بکشد و هزاران ورودی معتبر با کیفیت بالا تولید کند.
از پستتون ممنونم