Loading...

Generating Mutants for User Interface Testing in Web-based Applications

Naderi, Mohammad Javad | 2019

1122 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 52195 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Mirian Hosseinabadi, Hassan
  7. Abstract:
  8. In recent years, the user interface of web-based applications has become more and more complicated. Various technologies, architectures, and tools are being used to create a modern user interface. Users interact directly with the user interface, so its functionality has a significant impact on their satisfaction and it is required to design special test suites for the user interface. Furthermore, we need a method to measure the quality and effectiveness of test suites. An effective test suite is a test suite which is able to detect real faults. But this definition is ambiguous, and hence, not practical. A method called Mutation Testing solves this problem and instead of real faults, uses slightly modified versions of SUT1 called mutants. According to studies, this method provides a suitable criteria for measuring test suite effectiveness. Efforts have been made on mutation testing for user interface, which we’ll discuss some of them. However, there is no study on mutation testing for modern frameworks and architectures, e.g. newer versions of JavaScript like ES62, and modern user interface frameworks like React and Angular. To reduce the number of mutants and take React’s concepts into account, we proposed a few mutation operators for React-based web applications. We then conducted an experiment on 14 real React-based programs and observed satisfying results
  9. Keywords:
  10. Mutation Testing ; Software Testing ; Unit Test Effectiveness ; User Interface ; Web Application

 Digital Object List

 Bookmark

  • مقدمه
    • آزمون نرم‌افزار و اثربخشی آزمون
    • تعریف مسئله
    • ساختار پایان‌نامه
  • رابط کاربری برنامه‌های مبتنی بر وب
    • رابط کاربری وب از گذشته تا امروز
    • آزمون رابط کاربری برنامه‌های مبتنی بر وب
      • سطوح آزمون
      • ابزارهای موجود
    • چارچوب React
  • اندازه‌گیری اثربخشی موارد آزمون
    • روش‌های اصلی اندازه‌گیری اثربخشی موارد آزمون
      • پوشش کد
      • آزمون جهش
    • اندازه‌گیری اثربخشی موارد آزمون رابط کاربری
    • ارزیابی روش تولید نسخ
  • عملگرهای جهش جدید
    • نقایص راهکارهای پیشین
    • راهکار پیشنهادی
    • عملگر‌های ویژه‌ی React
      • جهش در چرخه‌ی عمر مؤلفه (RLC)
      • جهش در حالت مؤلفه (RS)
      • جهش در اداره‌کننده‌های رویداد (REH)
      • جهش در مراجع (RR)
      • تبدیل یک JSX Element به JSX Fragment (RJEF)
      • حذف یک عنصر JSX (RJRE)
    • عملگر‌های ویژه‌ی JavaScript
      • تغییر Number به parseInt و بالعکس (SNPI)
      • تغییر setInterval به setTimeout (SIST)
    • مثالی از عملگرهای جدید
  • ارزیابی راهکار پیشنهادی
    • معیار ارزیابی
    • طراحی آزمایش
      • انتخاب عملگرهای عمومی
      • پیاده‌سازی عملگرهای جدید
      • انتخاب برنامه‌های مبتنی بر React
      • اجرای آزمایش
    • تحلیل نتایج
      • پاسخ به پرسش ۱
      • پاسخ به پرسش ۲
      • رابطه‌ی امتیاز جهش با اندازه‌ی مجموعه آزمون
  • نتیجه‌گیری و کارهای آینده
    • چالش‌ها
    • کارهای آینده
  • پروژه‌های استخراج‌شده
  • عملگرهای عمومی
  • پیاده‌سازی عملگرها
  • سایر برنامه‌ها
  • مراجع
  • واژه‌نامه‌ی فارسی به انگلیسی
  • واژه‌نامه‌ی انگلیسی به فارسی
...see more