<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ArticleSet PUBLIC "-//NLM//DTD PubMed 2.7//EN" "https://dtd.nlm.nih.gov/ncbi/pubmed/in/PubMed.dtd">
<ArticleSet>
<Article>
<Journal>
				<PublisherName>رئیس دانشکده مهندسی برق و کامپیوتر</PublisherName>
				<JournalTitle>مجله مهندسی برق دانشگاه تبریز</JournalTitle>
				<Issn>2008-7799</Issn>
				<Volume>55</Volume>
				<Issue>2</Issue>
				<PubDate PubStatus="epublish">
					<Year>2025</Year>
					<Month>10</Month>
					<Day>23</Day>
				</PubDate>
			</Journal>
<ArticleTitle>Bug detection Using model transformations and deep learning</ArticleTitle>
<VernacularTitle>کشف خودکار باگ‌های برنامه با استفاده از تبدیلات مدل و یادگیری عمیق</VernacularTitle>
			<FirstPage>405</FirstPage>
			<LastPage>412</LastPage>
			<ELocationID EIdType="pii">18263</ELocationID>
			
<ELocationID EIdType="doi">10.22034/tjee.2024.57018.4645</ELocationID>
			
			<Language>FA</Language>
<AuthorList>
<Author>
					<FirstName>لیلا</FirstName>
					<LastName>یوسفوند</LastName>
<Affiliation>استادیار، گروه مهندسی کامپیوتر‌‌، دانشگاه لرستان، خرم آباد، ایران</Affiliation>

</Author>
<Author>
					<FirstName>سیف اله</FirstName>
					<LastName>سلیمانی</LastName>
<Affiliation>دانشیار، گروه مهندسی کامپیوتر، دانشگاه اراک، اراک، ایران</Affiliation>

</Author>
<Author>
					<FirstName>سجاد</FirstName>
					<LastName>اسفندیاری</LastName>
<Affiliation>استادیار، گروه مهندسی کامپیوتر، دانشگاه ملایر، ملایر، ایران.</Affiliation>

</Author>
</AuthorList>
				<PublicationType>Journal Article</PublicationType>
			<History>
				<PubDate PubStatus="received">
					<Year>2023</Year>
					<Month>06</Month>
					<Day>07</Day>
				</PubDate>
			</History>
		<Abstract>In recent years, software bug detection techniques have become widely used by application developers to improve code quality and ensure robustness. One of the most popular approaches is static analysis, which relies on pattern-based methods. These techniques involve manually creating patterns by experts to identify known bugs. Despite the extensive efforts to create a large set of patterns for different bugs, there are still numerous bugs that slip through all the available filters. In response to this limitation, this paper introduces a new method for automatic bug detection specifically designed for JavaScript code. The proposed approach involves mapping both buggy and bug-free code to graph representations. These graphs are then fed into a deep learning model that has been trained to classify the code as either buggy or bug-free. The model’s ability to work with graph data allows it to capture more complex relationships within the code. Furthermore, this approach can adapt to new, previously unseen bugs, enhancing its robustness. Evaluation results show that this method is able to detect a broader range of bugs and outperforms previous detection techniques in terms of accuracy and coverage.</Abstract>
			<OtherAbstract Language="FA">در سال‌های اخیر، تکنیک‌های شناسایی باگ نرم‌افزاری به‌طور گسترده‌ای توسط توسعه‌دهندگان برنامه‌ها مورد استفاده قرار گرفته‌اند تا کیفیت کد را بهبود بخشیده و از پایداری آن اطمینان حاصل کنند. یکی از محبوب‌ترین روش‌ها، تحلیل ایستا (Static Analysis) است که بر پایه‌ی الگو عمل می‌کند. در این تکنیک‌ها، الگوهای شناسایی باگ به‌صورت دستی توسط کارشناسان طراحی می‌شوند تا خطاهای شناخته‌شده را تشخیص دهند. با وجود تلاش‌های گسترده برای ایجاد مجموعه‌ای بزرگ از الگوها برای انواع مختلف باگ‌ها، هنوز هم باگ‌های زیادی وجود دارند که از تمام فیلترهای موجود عبور می‌کنند و شناسایی نمی‌شوند.&lt;br /&gt;در پاسخ به این محدودیت، این مقاله روشی جدید برای شناسایی خودکار باگ در کدهای جاوااسکریپت ارائه می‌دهد. رویکرد پیشنهادی شامل نگاشت کدهای دارای باگ و بدون باگ به ساختارهای گرافی است. سپس این گراف‌ها به یک مدل یادگیری عمیق داده می‌شوند که برای طبقه‌بندی کدها به دو دسته‌ی دارای باگ و بدون باگ آموزش دیده است. توانایی مدل در کار با داده‌های گرافی به آن امکان می‌دهد تا روابط پیچیده‌تری را در ساختار کد تشخیص دهد. علاوه بر این، این رویکرد قابلیت سازگاری با باگ‌های جدید و ناشناخته را نیز دارد که باعث افزایش پایداری و اثربخشی آن می‌شود. نتایج ارزیابی نشان می‌دهند که این روش می‌تواند دامنه‌ی وسیع‌تری از باگ‌ها را شناسایی کند و از نظر دقت و پوشش عملکرد بهتری نسبت به روش‌های پیشین دارد.</OtherAbstract>
		<ObjectList>
			<Object Type="keyword">
			<Param Name="value">کشف باگ</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">یادگیری عمیق</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">‌‌طبقه‌بندی گراف‌‌ها</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">شبکه‌‌های کانولوشن</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">درخت خلاصه نحوی (AST)</Param>
			</Object>
		</ObjectList>
<ArchiveCopySource DocType="pdf">https://tjee.tabrizu.ac.ir/article_18263_4b93f31f8839495aa1906677079bc06b.pdf</ArchiveCopySource>
</Article>
</ArticleSet>
