<?xml version='1.0' encoding='UTF-8'?>
<ArticleSet>
  <Article>
    <Journal>
      <PublisherName>موسسه آموزش عالی آپادانا</PublisherName>
      <JournalTitle>فصلنامه پژوهش های نوین در شهرهوشمند</JournalTitle>
      <Issn>2980-8936</Issn>
      <Volume>1</Volume>
      <Issue>4</Issue>
      <PubDate PubStatus="epublish">
        <Year>2023</Year>
        <Month>08</Month>
        <Day>15</Day>
      </PubDate>
    </Journal>

    <ArticleTitle>Code Bug Localization Using Genetic Algorithm with Factor Elimination</ArticleTitle>
    <VernacularTitle>خطایابی کد با استفاده از الگوریتم ژنتیک</VernacularTitle>
    <FirstPage>53</FirstPage>
    <LastPage>67</LastPage>
    <ELocationID EIdType="doi">10.22051/jera.2021.31891.2698</ELocationID>
    <Language>FA</Language>

    <AuthorList>
      <Author>
        <FirstName>فرزانه</FirstName>
                <Affiliation>رئیس ادارۀ برنامهریزی، آمار و تحلیل اطلاعات شهرداری همدان، ایران</Affiliation>
      </Author>
    </AuthorList>

    <PublicationType></PublicationType>

    <History>
      <PubDate PubStatus="received">
        <Year>2023</Year>
        <Month>01</Month>
        <Day>19</Day>
      </PubDate>
    </History>

    <Abstract>Considering that the longest phase of the software lifecycle is maintenance, software engineers seek methods to automate the processes in this phase. During maintenance, one of the most critical activities is locating bugs and providing error-free updates. Despite the numerous tests conducted during software development, unknown errors still exist, causing inconvenience to users. Additionally, some errors result from side effects of code changes, making it imperative to find an automated and accurate way to locate bugs. Various works have been done in this area, all of which focus on the impact of statements on output and their behavior in successful and unsuccessful executions. This paper proposes a method for precise bug localization using a defined fitness function for the genetic algorithm, which eliminates the local optimal factor for code statements and assigns scores based on their bug-prone behavior, considering their slicing. The evaluation of this method demonstrates its accuracy.</Abstract>
    <OtherAbstract Language="FA">با توجه به اینکه طولانی‌ترین مرحله از چرخۀ عمر نرم‌افزار نگه‌داشت آن است، مهندسان نرم‌افزار به دنبال یافتن روش‌هایی جهت خودکارسازی فرایندهای این مرحله هستند. در زمان نگه‌داشت بیشترین فعالیتی که انجام می‌شود مکان‌یابی خطا و ارائۀ نسخۀ جدید فاقد خطا است. علی‌رغم آزمون‌های زیادی که در زمان توسعۀ نرم‌افزار انجام می‌شود، همچنان خطاهایی ناشناخته در نرم‌افزار وجود داشته که کاربران را آزار می‌دهد. همچنین بخشی از خطاها اثرات جانبی ایجاد تغییرات در کد نرم‌افزار است؛ بنابراین یافتن راهی برای مکان‌یابی دقیق خطا به‌صورت خودکار اجتناب‌ناپذیر است. تاکنون کارهای زیادی در این حوزه انجام شده است که همگی به‌نوعی بر اثرگذاری جملات بر خروجی و نیز رفتار متفاوت آن‌ها در اجراهای موفق و ناموفق تمرکز دارند. در این مقاله روشی جهت مکان‌یابی دقیق خطای برنامه ارائه شده که در آن با استفاده از تابع برازندگی تعریف‌‌شده برای الگوریتم ژنتیک با حذف فاکتور بهینۀ محلی جملات کد و نیز جملات حاصل از برش‌بندی برحسب میزان خطادار بودنشان امتیازدهی شده و ارزیابی انجام‌‌شده نشان‌دهندۀ دقت آن است.</OtherAbstract>

    <ObjectList>
      <Object Type="keyword">
        <Param Name="value">software testing</Param>
      </Object>
      <Object Type="keyword">
        <Param Name="value">software maintenance</Param>
      </Object>
      <Object Type="keyword">
        <Param Name="value">bug</Param>
      </Object>
      <Object Type="keyword">
        <Param Name="value">bug localization</Param>
      </Object>
      <Object Type="keyword">
        <Param Name="value">genetic algorithm</Param>
      </Object>
    </ObjectList>

    <ArchiveCopySource DocType="pdf">/downloadfilepdf/176938</ArchiveCopySource>
  </Article>
</ArticleSet>
