Loading...

Generating Mutants to Improve Test Suites: A Search-Based Approach

Barati, Babak | 2018

1236 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 51214 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Mirian-Hosseinabadi, Hassan
  7. Abstract:
  8. Mutation testing is known to be one of the best strategies to improve the quality of test suites, consequently the quality of the software. However, some challenges make mutaton testing unpractical. One of the main challenges confronting mutation testing is that it demands exhustive computation and is time consuming because of the large number of mutants that need to be compiled and executed on the test cases of the test suite. Many researches have been conducted to reduce the number of mutants without losing the main characteristics of the all possible mutants. Most of these researches select the mutants without considering the characteristics of the test suite, therefore the reduced set of mutants may lack some of the mutants that could reveal the flaws of the test cases. In the approach offered by this research, considering the given test suite, using a search-based algorithm, a reduced set of mutations is selected which probably cannot be killed by the test cases or are killed by only by a few test cases. In this research we present the test-centered mutation reduction approach. In this approach, a fitness function is defined based on the characteristics of the execution of the test cases. A genetic algorithm uses this fitness function to find the best mutants that can challenge the test suite. The comparition between the test-centered and random approach indicates that our approach is successful on selecting mutants that are not killed or killed by less test cases
  9. Keywords:
  10. Software Testing ; Mutation Testing ; Genetic Algorithm ; Software Quality Assurance ; Search Based Testing

 Digital Object List

 Bookmark

  • چکیده
  • فهرست مطالب
  • فهرست جدول ها
  • فهرست شکل‌ها
  • فهرست علائم
  • فصل1 مقدمه و معرفی پژوهش
    • 1-1 مقدمه
    • 1-2 تعریف مسأله
      • 1-2-1 اهداف پژوهش
      • 1-2-2 مراحل انجام پژوهش
      • 1-2-3 ساختار پایان‌نامه
  • فصل2 پیش‌زمینه
    • 2-1 مفاهیم مرتبط با آزمون با کمک نسخ جهش‌یافته
      • 2-1-1 آزمون
      • 2-1-2 آزمون جهش
      • 2-1-3 مراحل آزمون جهش
    • 2-2 مفاهیم مرتبط با مهندسی نرم‌افزار مبتنی بر جستجو
      • 2-2-1 آزمون نرم‌افزار مبتنی بر جستجو
      • 2-2-2 الگوریتم ژنتیک
    • 2-3 خلاصه‌ی فصل
  • فصل3 مروری بر مطالعات و پژوهش‌های مرتبط پیشین
    • 3-1 چالش‌های استفاده از آزمون جهش
    • 3-2 روش‌های کاهش هزینه‌ی آزمون جهش
      • 3-2-1 روش‌های هوشمندانه
      • 3-2-2 روش‌های سریع
      • 3-2-3 روش‌های کاهش تعداد جهش
    • 3-3 بررسی و مقایسه‌ی روش‌های کاهش تعداد جهش
      • 3-3-1 سرعت
      • 3-3-2 پیچیدگی فرآیند و نیاز به ابزار
      • 3-3-3 ایستایی یا پویایی
      • 3-3-4 برخورد با جهش‌های معادل
      • 3-3-5 توجه به مجموعه‌ی آزمون
      • 3-3-6 قابلیت تکرار نتیجه
    • 3-4 خلاصه‌ی فصل و نتیجه‏گیری
  • فصل4 فرآیند روش آزمون-محور
    • 4-1 تطبیق مسأله‌ی انتخاب جهش به یک مسأله‌ی بهینه‌سازی
    • 4-2 برنامه‌ی نمونه: محاسبه‌ی شاخص‌های آماری یک آرایه
    • 4-3 مراحل فرآیند روش آزمون-محور
      • 4-3-1 یافتن نقاط قابل جهش در کد
      • 4-3-2 تزریق کد به منظور تحلیل
      • 4-3-3 اجرای مجموعه‌ی آزمون
      • 4-3-4 تحلیل اجرای آزمون‌ها
      • 4-3-5 جستجوی جهش‌ها با استفاده از الگوریتم ژنتیک
    • 4-4 خلاصه‌ی فصل
  • فصل5 مطالعه‌ی موردی و تولید نسخ جهش‌یافته
    • 5-1 گزینش برنامه و مجموعه‌ی آزمون مطالعه‌ی موردی
    • 5-2 مرحله‌ی اول: یافتن نقاط قابل جهش
    • 5-3 مرحله‌ی دوم: تزریق کد به منظور تحلیل
    • 5-4 مرحله‌ی سوم: اجرای مجموعه‌ی آزمون
    • 5-5 مرحله‌ی چهارم: تحلیل اجرای آزمون‌ها
    • 5-6 مرحله‌ی پنجم: جستجوی جهش‌ها با استفاده از الگوریتم‌های ژنتیک
    • 5-7 خلاصه‌ی فصل
  • فصل6 ارزیابی فرآیند تولید نسخ جهش‌یافته‌ی آزمون-محور
    • 6-1 معرفی معیارهای ارزیابی
    • 6-2 اجرای روش تصادفی
    • 6-3 بررسی آماری جهش‌های تولید شده
    • 6-4 جهش‌های معادل موجود
    • 6-5 جهش‌های نجات‌یافته‌ی غیرمعادل
    • 6-6 میانگین کشته شدن جهش‌ها در آزمون‌ها
    • 6-7 سایر ویژگی‌های روش پیشنهادی
      • 6-7-1 سرعت
      • 6-7-2 پیچیدگی و نیاز به ابزار
      • 6-7-3 ایستایی و پویایی
      • 6-7-4 برخورد با جهش‌های معادل
      • 6-7-5 توجه به مجموعه‌ی آزمون
      • 6-7-6 قابلیت تکرار نتیجه
    • 6-8 محدودیت‌های روش پیشنهادی
    • 6-9 خلاصه‌ی فصل
  • فصل7 نتیجه‌گیری و کارهای آتی
    • 7-1 نتیجه‌گیری
    • 7-2 کارهای آتی
  • مراجع
  • واژه‌نامه
  • پیوست1 خروجی فهرست جهش‌های میجر
  • پیوست2 کد مربوط به کلاس SpyNode به زبان جاوا
  • پیوست3 نتیجه‌ی مطالعه‌ی موردی روش پیشنهادی
    • پ3-1 اجرا با جمعیت اولیه‌ی ۵۰ نفر و آستانه‌ي توقف ۵۰۰ نسل
    • پ3-2 اجرا با جمعیت اولیه‌ی ۱۰۰ نفر و آستانه‌ی توقف ۵۰۰ نسل
    • پ3-3 اجرا با جمعیت اولیه‌ي ۵۰ نفر و آستانه‌ی توقف تابع برازش ۵/۴
    • پ3-4 اجرا با جمعیت اولیه‌ي ۱۰۰ نفر و آستانه‌ی توقف تابع برازش ۵/۴
...see more