مريم موزراني
با گسترش استفاده از برنامه های نرم افزاری، تحلیل و آزمون برنامه ها برای اطمینان از عدم وجود آسیب پذیری در برنامه ها امری ضروری است. در ابتدا آزمون برنامه ها با استفاده از ورودی های صریح انجام می شد. این نوع تحلیل علاوه بر هزینه بالا، توانایی پوشش کامل برنامه ها را ندارد. لذا تحلیل اتوماتیک برنامه ها می تواند در بهینه سازی تولید برنامه ها نقش داشته باشد. اجرای نمادین و نیمه نمادین برنامه ها از روش های اتوماتیکی هستند که به طور گسترده مورد استفاده قرار می گیرند. اجرای نمادین با تبدیل متغیر های آزاد برنامه به نماد و نشان دادن هر یک مسیرهای برنامه به صورت یک شرط مسیر و در نهایت حل کردن یکی از شرط های مسیر که منتخب اکتشاف جست و جواست، به ورودی ای که موجب اجرا شدن آن مسیر می شود دست می یابد. اجراگر نیمه نمادین نیز ترکیبی از اجراگر نمادین و صریح است که با ثابت در نظر گرفتن تعدادی از متغیر های برنامه، تعداد شروط مسیرها را کاهش میدهد و به این صورت باعث افزایش سرعت تحلیل می شود. این روش ها در عمل با چالش های زیادی روبه رو هستند و امکان پوشش کل برنامه با آن ها امکان ناپذیر است. یکی از این چالش ها انتخاب اکتشاف جست و جوی مناسب است، زیرا انتخاب اکتشاف جست و جویی که مسیر های باارزش را برای کاوش پیشنهاد می دهد نقش مهمی در کشف آسیب پذیری های برنامه دارد. تاکنون اکتشاف های جست و جوی متنوعی همچون جست و جوی اول عمق ارائه شده اند ولی با توجه به ماهیت متفاوت برنامه ها استفاده از یک اکتشاف جست و جو ثابت برای تمام برنامه ها مناسب نیست و در این راستا اکتشاف جست و جوی پارامتر شده معرفی شده که برای هر برنامه مقدار دهی به پارامتر های آن متفاوت و مناسب آن برنامه است. روش هایی که از این اکتشاف جست و جوی پارامترشدهاستفاده کرده اند با اجرای نیمه نمادین بر روی برنامه ها و تحلیل اجرای انجام شده به صورت تکراری مقادیر مناسب پارامتر ها برای هر برنامه را به دست می آورند. با وجود بهبود نتایج هنگام استفاده از این نوع اکتشاف های جست و جوی پارامترشده نسبت به اکتشاف های جست و جوی پارامترشده ثابت، متکی بودن این روش ها بر تکرار اجرای نیمه نمادین سربار زمانی به اجرای نیمه نمادین اضافه می کند. لذا در این پژوهش برای کاهش زمان انتخاب اکتشاف جست و جوی پارامترشده به یادگیری دو مدل از طریق یادگیری ماشین برای پیش بینی مجموعه ای از اکتشاف های جست و جوی پارامترشده از طریق ویژگی های ایستای برنامه پرداخیتم و توانستیم در مدت زمان بسیارکوتاه تری نسبت به روش های دیگر، اکتشاف های جست و جوی پارامترشده ای را ایجاد کنیم

