کشف خودکار باگ‌های برنامه با استفاده از تبدیلات مدل و یادگیری عمیق

نویسندگان

1 استادیار، گروه مهندسی کامپیوتر، دانشگاه ملایر، ملایر، ایران.

2 استادیار، گروه مهندسی کامپیوتر‌‌، دانشگاه لرستان، خرم آباد، ایران

3 دانشیار، گروه مهندسی کامپیوتر، دانشگاه اراک، اراک، ایران

doi
10.22034/tjee.2024.57018.4645
چکیده

در سال‌های اخیر، تکنیک‌های شناسایی باگ نرم‌افزاری به‌طور گسترده‌ای توسط توسعه‌دهندگان برنامه‌ها مورد استفاده قرار گرفته‌اند تا کیفیت کد را بهبود بخشیده و از پایداری آن اطمینان حاصل کنند. یکی از محبوب‌ترین روش‌ها، تحلیل ایستا (Static Analysis) است که بر پایه‌ی الگو عمل می‌کند. در این تکنیک‌ها، الگوهای شناسایی باگ به‌صورت دستی توسط کارشناسان طراحی می‌شوند تا خطاهای شناخته‌شده را تشخیص دهند. با وجود تلاش‌های گسترده برای ایجاد مجموعه‌ای بزرگ از الگوها برای انواع مختلف باگ‌ها، هنوز هم باگ‌های زیادی وجود دارند که از تمام فیلترهای موجود عبور می‌کنند و شناسایی نمی‌شوند.در پاسخ به این محدودیت، این مقاله روشی جدید برای شناسایی خودکار باگ در کدهای جاوااسکریپت ارائه می‌دهد. رویکرد پیشنهادی شامل نگاشت کدهای دارای باگ و بدون باگ به ساختارهای گرافی است. سپس این گراف‌ها به یک مدل یادگیری عمیق داده می‌شوند که برای طبقه‌بندی کدها به دو دسته‌ی دارای باگ و بدون باگ آموزش دیده است. توانایی مدل در کار با داده‌های گرافی به آن امکان می‌دهد تا روابط پیچیده‌تری را در ساختار کد تشخیص دهد. علاوه بر این، این رویکرد قابلیت سازگاری با باگ‌های جدید و ناشناخته را نیز دارد که باعث افزایش پایداری و اثربخشی آن می‌شود. نتایج ارزیابی نشان می‌دهند که این روش می‌تواند دامنه‌ی وسیع‌تری از باگ‌ها را شناسایی کند و از نظر دقت و پوشش عملکرد بهتری نسبت به روش‌های پیشین دارد.