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