پیشبینی باگهای نرمافزاری با هدف شناسایی خودکار ماژولهای کدی انجام میشود که احتمال وجود نقص در آنها بیشتر است؛ امری که به بهبود کیفیت نرمافزار و کاهش هزینههای آزمون کمک میکند. روشهای سنتی معمولاً از معیارهای ایستای کد مانند پیچیدگی و میزان تغییرات، در کنار الگوریتمهای کلاسیک یادگیری ماشین استفاده میکنند، اما این روشها اغلب روابط میانماژولی را نادیده میگیرند. در سالهای اخیر، تکنیکهای یادگیری عمیق با یادگیری ویژگیها از متن و ساختار کد، نتایج امیدوارکنندهای نشان دادهاند. بهویژه، شبکههای عصبی گرافی (GNN) میتوانند نرمافزار را بهصورت گراف مدلسازی کنند؛ بهگونهای که کلاسها یا ماژولها بهعنوان گرهها و وابستگیها بهعنوان یالها در نظر گرفته شوند، تا معناشناسی غنیتری از کد استخراج شود. این مقاله، رویکردهای سنتی و مبتنی بر یادگیری عمیق در پیشبینی نقص نرمافزار را مرور میکند و تمرکز ویژهای بر مدلهای نوآورانه GNN دارد که از تحلیل ایستا و گرافهای وابستگی کد بهره میبرند. جمعبندی ما نشان میدهد که مدلهای یادگیری عمیق مانند LSTM و CNN اغلب عملکرد بهتری نسبت به روشهای متداول یادگیری ماشین دارند و GNNهایی که از ساختار کد استفاده میکنند، بهبود بیشتری در دقت و امتیاز F1 ایجاد میکنند. در مطالعات موجود، دستهبندهای مبتنی بر LSTM به حدود 87٪ دقت دست یافتهاند و رویکردهای GNN چندنمایه نیز بهبود نسبی 17 تا 45 درصدی در معیار F1 گزارش کردهاند. این نتایج نشان میدهند که ترکیب معیارهای ایستای کد با گرافهای وابستگی کد در چارچوبهای مبتنی بر GNN میتواند پیشبینی باگ را بهطور معناداری بهبود دهد.
لینک مقاله: