موضوعات پیشنهادی برای پایاننامه کارشناسی ارشد
توسط: سعید پارسا
پاییز 1397
بدین وسیله عناوین کلی تعدادی از موضوعات پیشنهادی آزمایشگاه تحقیقاتی مهندسی معکوس در ارتباط با کار پژوهشی و پایاننامه کارشناسی ارشد به اطلاع دانشجویان علاقهمند میرسد. برای دریافت توضیحات بیشتر به وبسایت رسمی آزمایشگاه به نشانی www.parsa.iust.ac.ir مراجعه فرمایید. هریک از موضوعات پیشنهادی توسط گروههای تخصصی مربوطه در آزمایشگاه و در مراحل مختلف انجام پژوهش پشتیبانی میشوند. در صورت تمایل به همکاری به آزمایشگاه تحقیقاتی مهندسی معکوس مراجعه فرمایید.
پیشنیازهای اصلی و ضروری:
- علاقهمند به پژوهش در زمینههای مهندسی نرمافزار خودکار/ هوشمند و آزمون نرمافزار،
- روزمه علمی و عملی مناسب جهت پیشبرد اهداف پژوهش و موفقیت در ارایه یک خروجی کارآمد.
الف) موضوعات پیشنهادی در حوزه آزمون نرمافزار
الف – 1) تعیین خودکار دامنه ورودیها با تحلیل سورس برنامه های #C
الف – 2) تولید داده آزمون با استفاده از روشهای جست و جو
الف – 3) کمینهسازی دانه اولیه با معیار پوشش مسیر در آزمون پویای نرمافزار
الف – 4) تولید داده آزمون برای مکانیابی خودکار خطا
الف – 5) ترمیم خودکار برنامهها
الف – 6) مکانیابی خودکار خطا با توجه به تأثیر جمعی جملات
ب) موضوعات پیشنهادی در حوزه آزمون فازی
ب – 1) تولید خودکار داده آزمون با استفاده از مدلهای GAN
ب – 2) آزمون پویای تعاملی و خودکارسازی اعمال کاربر
ب – 3) افزودن حلقه بازخورد به فازر قالب فایل IUST DeepFuzz
ج) موضوعات پیشنهادی در حوزه مهندسی نرم افزار
ج – 1) ارایه فرایندی برای طراحی سیستم های داشبورد
ج – 2) تعیین تاثیر شاخصهای کلیدی عملکرد بر یکدیگر در ایجاد داشبورد
ج – 3) فرایند کاوی و استخراج خودکار وب سرویسها از مدل فرایند.
شرح مختصر هریک از موضوعات پیشنهادی
الف) موضوعات پیشنهادی در حوزه آزمون نرمافزار
الف – 1) تعیین خودکار دامنه ورودیها با تحلیل سورس برنامه های C#:
الف – 2) تولید داده آزمون با استفاده از روشهای جست و جو: از جمله چالشهای اساسی روشهای تولید داده آزمون موجود، ضعف در تولید دادههای آزمونی است که در شناسایی خطاها موفق عمل کنند. این امر ناشی از آن است که این روشها مجموعه داده آزمون را صرفاً با هدف اجرای حداقل یک بار هر مسیر از جریان کنترل برنامه تحت آزمون تولید میکنند. با توجه به اینکه شناسایی خطاها اغلب نیازمند چندین بار اجرای مسیر خطادار است؛ در پژوهش جاری بر آنیم تا دادههای آزمون را به نحوی تولید کنیم که دامنه مطلوب هر مسیر به تمامی پوشش داده شود. با تبدیل این مسئله به یک مسئله بهینهسازی میتوان از الگوریتمهای جستجو (مانند الگوریتمهای فرامکاشفهای و تکاملی) برای بهبود شناسایی فضای دامنه معتبر متغیرها جهت اجرای یک مسیر مطلوب بهره برد. در نتیجه، مجموعه داده آزمونی تولید خواهد شد که قدرت شناسایی خطای بهتری نسب به روشهای موجود خواهد داشت.
کلمات کلیدی:
Test data generation
Domain-oriented test data generation
Dynamic domain reduction
Path-oriented random testing
Meta-Heuristic algorithms
Evolutionary algorithms
مراحل کار:
مروری بر روشهای تولید داده آزمون.
مطالعه مقالات دکتر نیکروان در زمینه تولید داده آزمون مبتنی بر دامنه.
آشنایی با الگوریتمهای جستجو.
مدل کردن مسئله تولید دامنه با استفاده از الگوریتم ژنتیک.
پیادهسازی ابزار راهکار پیشنهادی.
مقایسه نتایج الگوریتم ژنتیک با حداقل دو الگوریتم جستجوی دیگر.
مقایسه نتایج تولید دامنه مبتنی بر الگوریتمهای جستجو با دیگر روشهای موجود (از جمله نتایج موجود در مقالات دکتر نیکروان).
نیازمندیها:
علاقهمند به آزمون نرمافزار.
تجربه برنامهنویسی با یکی از زبانهای جاوا و پایتون.
الف – 3) کمینهسازی دانه اولیه با معیار پوشش مسیر در آزمون پویای نرمافزار:
:: به زودی
الف – 4) تولید داده آزمون برای مکانیابی خودکار خطا:
:: به زودی
الف – 5) ترمیم خودکار برنامهها:
:: به زودی
الف – 6) مکانیابی خودکار خطا با توجه به تاثیر جمعی جملات:
:: به زودی
ب) موضوعات پیشنهادی در حوزه آزمون فازی
ب – 1) تولید خودکار داده آزمون با استفاده از مدلهای GAN: تولید خودکار داده آزمون در فازرهای قالب فایل نیازمند شناسایی و استخراج ساختار فایل است؛ زیرا تنها در این صورت قادر به ساختن فایلهایی متنوع و در عین حال بدشکل هستیم. مدل GAN خانوادهای از مدلهای مولد هستند که در اخیراً در ساخت تصاویر مصنوعی و صحنههای گرافیکی در بازیهای کامپیوتری کاربرد زیادی یافتهاند. در این موضوع هدف استفاده از این شبکهها برای تولید داده آزمون و سپس آزمون فازی نرمافزارهای دنیای واقعی مانند مرورگرها، پخشکنندههای صوت و تصویر و دیگر نرمافزارهای پیچیده است.
کلمات کلیدی:
(Automatic) test data generation
Fuzz testing
Code coverage
Deep learning
Generative model
Generative adversarial network
مراحل کار:
مروری بر آزمون فازی، روشهای تولید داده در آزمون فازی و خودکارسازی آزمون.
مروری بر آزمون فازی قالب فایل، انواع قالبهای فایل (متنی و دودویی).
مطالعه و شناخت مفاهیم یادگیری ژرف و شبکههای عصبی ژرف.
مطالعه و شناخت مدلهای GAN.
پیشنهاد یک مدل جدید تولید خودکار داده آزمون.
پیادهسازی روش پیشنهادی.
انجام آزمون فازی، اندازهگیری پوشش کد و تعیین خطاهای احتمالی یافت شده.
مقایسه با فازرها یا روشهای مشابه موجود (حداقل 2 فازر یا روش تولید داده آزمون)
تهیه و تدوین مقاله و پایاننامه.
نیازمندیها:
علاقهمند به آزمون نرمافزار و آزمون فازی،
علاقهمند به یادگیری ماشین و یادگیری ژرف،
تجربه برنامهنویسی با زبانهای پایتون و C.
ب – 2) آزمون پویای تعاملی و خودکارسازی اعمال کاربر: بخشی از کدهای هر برنامه صرف رسیدگی به اعمال کاربر میشود. خودکارسازی انجام این اعمال در فرایند آزمون فازی منجربه افزایش پوشش کد برنامه در مقایسه با حالت آفلاین شده و در نتیجه احتمال کشف خطاها و آسیبپذیریهای نهفته در بخشهای اجرایی جدید افزایش مییابد. در این موضوع هدف ارایه فازری است که ضمن تولید خودکار دادههای آزمون، برخی از تعاملات کاربر با برنامه نظیر فرمانهای ماوس و صفحهکلید را نیز خودکارسازی کند.
کلمات کلیدی:
(Automatic) test data generation
Fuzz testing
Code coverage
User Interface Fuzzing
Deep learning
مراحل کار:
مروری بر آزمون فازی، روشهای تولید داده در آزمون فازی و خودکارسازی آزمون،
مروری بر آزمون فازی واسطهای کاربر و تعامل انسان و کامپیوتر،
مطالعه و شناخت مفاهیم یادگیری ژرف و شبکههای عصبی ژرف،
پیشنهاد خودکارسازی چندین نوع تعامل کاربر در چندین نرمافزار،
پیادهسازی روش پیشنهادی،
انجام آزمون فازی، اندازهگیری پوشش کد و تعیین خطاهای احتمالی یافت شده،
مقایسه با فازرها یا روشهای مشابه موجود (حداقل 2 فازر یا روش تولید داده آزمون)،
تهیه و تدوین مقاله و پایاننامه.
نیازمندیها:
علاقهمند به مهندسی نرمافزار خودکار و آزمون فازی،
علاقهمند به یادگیری ماشین و یادگیری ژرف،
تجربه برنامهنویسی با زبانهای پایتون و C.
ب – 3) افزودن حلقه بازخورد به فازر قالب فایل IUST DeepFuzz: فازر قالب فایل IUST DeepFuzz که در آزمایشگاه تحقیقاتی مهندسی معکوس طراحی و پیادهسازی شده است، برای آزمون فازی نرمافزارهایی با ورودی فایل به کار میرود. این فازر از مدلهای زبانی عصبی، که با شبکههای عصبی مکرر ساخته میشوند، برای تولید دادههای آزمون، استفاده میکند اما، در حال حاضر هیچ بازخوردی از خروجی اجرای قبلی نرمافزار تحت آزمون (SUT) دریافت نمیکند. هدف از این موضوع افزودن سازوکاری برای استفاده از اطلاعات حاصل از اجرای قبلی SUT مانند پوشش دستورات و مسیرهایی اجرایی و کمک گرفتن از آنها در تولید هرچه بهتر دادههای آزمون، جهت نیل به پوشش کد بیشتر است.
کلمات کلیدی:
(Automatic) test data generation
Fuzz testing
AFL
Code coverage
Deep learning
مراحل کار:
مروری بر آزمون فازی، روشهای تولید داده در آزمون فازی و خودکارسازی آزمون.
بررسی و شناخت معماری و نحوه عملکرد فازر IUST DeepFuzz،
بررسی و شناخت فازر قالب فایل AFL
مطالعه و شناخت مفاهیم یادگیری ژرف و شبکههای عصبی ژرف.
پیشنهاد ترکیب روش IUST DeepFuzz و روش AFL.
پیادهسازی روش پیشنهادی.
انجام آزمون فازی، اندازهگیری پوشش کد و تعیین خطاهای احتمالی یافت شده.
مقایسه با فازرها یا روشهای مشابه موجود (حداقل 2 فازر یا روش تولید داده آزمون)
تهیه و تدوین مقاله و پایاننامه.
نیازمندیها:
علاقهمند به آزمون نرمافزار و آزمون فازی،
علاقهمند به بهینهسازی، یادگیری ماشین و یادگیری ژرف،
تجربه برنامهنویسی با زبانهای پایتون و C.
ج) موضوعات پیشنهادی در حوزه مهندسی نرمافزار
ج – 1) ارایه فرایندی برای طراحی سیستمهای داشبورد:
:: به زودی
ج – 2) تعیین تاثیر شاخصهای کلیدی عملکرد بر یکدیگر در ایجاد داشبورد:
:: به زودی
ج – 3) فرایند کاوی و استخراج خودکار وب سرویسها از مدل فرایند:
:: به زودی
آنچه در آزمایشگاه به دانشـجو ارائه میدهیم (مشترک همه موضوعات)
دسترسی آسان به ابزارها، منابع موجود و افراد مرتبط در زمینه موضوع پیشنهادی،
برنامهریزی گامبهگام و چارتبندی زمانی پژوهش،
برگزاری جلسات هفتگی و دریافت بازخورد نظرات استاد راهنما و اعضای آزمایشگاه،
پیگیری جهت چاپ مقاله مستخرج از پایاننامه در یک مجله معتبر،
کمک در روند تدوین و نگارش نهایی ملزومات پژوهشی در مراحل مختلف:
پیشنهاد سمینار کارشناسی ارشد،
سمینار کارشناسی ارشد،
پیشنهاد پایاننامه کارشناسی ارشد،
گزارش پیشرفت پروژه شماره 1،
گزارش پیشرفت پروژه شماره 2،
مقاله مستخرج از پایاننامه،
پایاننامه کارشناسی ارشد.
پایان