• عنوان

    راهكاري جديد براي توليد خودكار داده هاي آزمون با استفاده از اجراي نمادين پويا

  • نويسنده اصلي

    فرزانه كرم پناه

  • مقطع تحصيلي
    كارشناسي ارشد
  • چكيده
    آزمون واحد، يكي از مهم‌ترين آزمون‌هاي نرم‌افزار براي تشخيص صحت مولفه‌هاي نرم‌افزاري مي‌باشد. يكي از راهكارهاي جديد توليد خودكار داده‌هاي آزمون، استفاده از اجراي نمادين پويا مي‌باشد. در اين روش برنامه تحت آزمون هم به صورت واقعي و هم به صورت نمادين اجرا مي‌شود. در هر مرحله سعي مي‌شود تا با انتخاب شاخه‌اي از درخت اجرايي برنامه، داده آزمون مناسب براي پوشش مسير جديدي از برنامه به‌دست آيد. اين روش با چالش‌هاي مختلفي مواجه مي‌باشد كه يكي از اين چالش‌ها مساله انفجار مسير مي‌باشد. انتخاب گره اولين مرحله در هر تكرار از اجراي نمادين پويا مي‌باشد. انتخاب نامناسب گره منجر به انفجار مسير در اين راهكار مي‌گردد. در اين پايان‌نامه راهكاري براي انتخاب مناسب گره ارائه شده است. راهكار ارائه شده سعي مي‌كند تا به صورت منصفانه شاخه‌هاي برنامه تحت آزمون را انتخاب كند. در اين روش ابتدا گره‌هاي درخت اجرايي برنامه بر اساس آفست كد به كلاس‌هايي تقسيم مي‌شوند و به هنگام انتخاب گره، ابتدا يكي از كلاس‌ها به صورت منصفانه انتخاب مي‌گردد. سپس يكي از گره‌هاي موجود در كلاس انتخاب‌شده، انتخاب مي‌گردد. اين انتخاب با اولويت انتخاب گره‌هايي با عمق كمتر انجام مي‌شود. راهكار پيشنهادي با روش‌ كلوني مورچگان براي تعدادي برنامه محك مورد آزمون قرار گرفته است. نتايج حاصله نشان مي‌دهد كه راهكار پيشنهادي در اكثر مواقع با تعداد اجراي كمتر برنامه و در زمان كمتري به پوشش شاخه‌اي بالاتر برنامه مي‌رسد. ضمن به صرفه بودن اين راهكار از نظر اقتصادي براي صرفه جويي در زمان و هزينه در خصوص تست نرم افزار، با استفاده از كلوني مورچگان مي توان مسيرهاي بيشتري رو مورد پوشش داده هاي آزمون قرار داد. يكي از مراحل مهم در چرخه حيات توسعه نرم افزار، آزمون نرم افزار است. آزمون نرم افزار با هدف اطمينان يافتن از درستي نرم افزار توسعه يافته و مطابقت آن با نيازمندي هاي توصيف شده، انجام مي گردد. توليد خودكار داده هاي آزمون يكي از مراحل مهم آزمون نرم افزار است كه هدف آن توليد ورودي ها به منظور ارزيابي رفتار نرم افزار مي باشد. سه رويكرد مهم در توليد خودكار داده آزمون جعبه سفيد، روش هاي تصادفي، اجراي نمادين و روش هاي مبتني بر جستجو مي باشند. هركدام از اين روش ها داراي مشكلاتي هستند. در روش هاي تصادفي، داده هاي آزمون به صورت غيردقيق توليد مي شود، به طوري كه بسياري از مسيرهاي برنامه را پوشش نمي دهند. براي رفع اين مشكل، تعداد زيادي داده توليد مي شود، كه فرآيندي زمان بر و بسيار پر هزينه است. اشكالات اصلي روش نمادين، وجود كتابخانه ها و توابع آماده در كد برنامه است كه مانع از توليد عبارت جبري مناسب براي حل كننده هاي قيد مي شوند. علاوه بر اين در صورت وجود پيچيدگي وفراخواني هاي زياد بازگشتي در كد برنامه، حل كننده ها توانايي خود را براي حل عبارت هاي جبري از دست مي دهند يا زمان بسيار زيادي براي حل عبارت جبري و توليد داده صرف مي شود. مشكل اصلي در روش هاي مبتني بر جستجو اين است كه به دليل استفاده از توابع برازندگي، ماهيت تصادفي و سعي در همگرايي به يك جواب بهينه، ممكن است كه در كمينه محلي قرار بگيرند و از جواب اصلي دور بمانند. براي رفع مشكلات مذكور، در اين پژوهش يك رويكرد جديد و نوآورانه در حوزه توليد خودكار داده هاي آزمون ارائه شده است. اين رويكرد، با اتكا بر سيستم استنتاج فازي و يادگيري ماشين سعي در توليد داده آزمون مناسب مي كند. هدف از ارائه اين رويكرد، پوشش بيشينه مسيرهاي پايه است كه در مقايسه با معيار پوشش گره و لبه، معيار كفايت آزمون قويتري است. براي ارزيابي راهكار پيشنهادي، آزمايش هاي مختلفي برروي برنامه هاي متفاوت صورت گرفته است. نتايج نشان مي دهند رويكرد پيشنهادي قادر است با كارايي بهتر نسبت به رويكردهاي قبل منجر به توليد داده هاي آزمون كارآمدتر شود.
  • شماره ركورد
    196218
  • دانشگاه
    دانشگاه علم و صنعت ايران
  • رشته تحصيلي
    مهندسي تكنولوژي نرم افزار - كامپيوتر
  • استاد راهنما
    دكتر سعيد پارسا