پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک

word
112
747 KB
30597
1393
کارشناسی ارشد
قیمت: ۱۴,۵۶۰ تومان
دانلود فایل
  • خلاصه
  • فهرست و منابع
  • خلاصه پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک

    پایان‌نامه برای دریافت درجه کارشناسی ارشد در رشته مهندسی کامپیوتر گرایش نرم‌افزار

    چکیده

    بسیاری از هزینه‌های توسعه نرم‌افزار، مربوط به آزمون‌های مکرر، در مرحله نگهداری نرم‌افزار در حال تکامل و اصلاح است؛ زیرا ایجاد هر تغییر در کد نرم‌افزار، نسخه‌ی جدیدی به دست می‌دهد که درستی یابی آن، نیازمند طراحی آزمون‌های جدید و نیز انجام مجدد تمام آزمون‌های قبلی، برای اطمینان از عدم تأثیرپذیری نامطلوب عملکرد جاری نرم‌افزار از تغییرات صورت گرفته است. این فرایند آزمون رگرسیون نرم‌افزار نامیده می‌شود. به دلیل محدودیت منابع و زمان آزمون، نمی‌توان کل این حجم زیاد و رو به توسعه آزمون‌ها را در هر دور تکرار آزمون، مجددا اجرا کرد. یکی از مهم‌ترین فنون ارائه‌شده برای غلبه بر مشکل هزینه‌ی زیاد آزمون رگرسیون نرم‌افزار، انتخاب و اولویت‌دهی موارد آزمون است که منظور از آن، انتخاب و اجرای مهم‌ترین موارد آزمون، برحسب معیار شایستگی برای دستابی سریع‌تر به هدف آزمون است. مشکل اغلب فنون انتخاب و اولویت‌دهی ارائه‌شده، نادیده گرفتن پیاپی بودن اجرای آزمون رگرسیون، تأثیرگذاری کارایی آزمون‌ها در هر تکرار آزمون رگرسیون بر کارایی مراحل بعدی، تفاوت بین هزینه آزمون و دشواری خطا و نیز محدودیت زمان و منابع در محیط واقعی اجرای آزمون است. در این پایان‌نامه، روشی برای انتخاب و اولویت‌دهی موارد آزمون مبتنی بر پیشینه و آگاه از هزینه با استفاده از الگوریتم ژنتیک بر پایه‌ی پنج معیار سابقه‌ی کارایی کشف خطای موارد آزمون، احتمال انتخاب پیشین، پیشینه‌ی اجرای آن‌ها در جریان اجراهای متعدد آزمون رگرسیون، هزینه آزمون و دشواری خطا ارائه‌شده است که اثر محدودیت منابع بر اجرای آزمون‌ها نیز اعمال‌شده است.

    برای ارزیابی کمی سرعت آشکارسازی خطا برای روش پیشنهادی، پیاده‌سازی انجام شد که ارزیابی با استفاده از متریک APFDc انجام‌شده است. مقایسه عملکرد روش پیشنهادی با روش مبتنی بر پیشینه و روش تصادفی، انجام‌گرفته است. نتایج ارائه‌شده در پایان‌نامه، حاکی از بهبود حدود 30 % در سرعت و آشکارسازی خطای زودتر روش پیشنهادی نسبت به روش‌های مورد مقایسه است.

    واژه‌های کلیدی: آزمون رگرسیون نرم‌افزار، انتخاب موارد آزمون، اولویت‌دهی موارد آزمون، اولویت‌دهی مبتنی بر پیشینه، آگاه از هزینه

    فصل 1: مقدمه

     

    1- هدف

    در فاز توسعه و نگهداری نرم‌افزار برای رفع خطاهای موجود در نرم‌افزار و همچنین پیاده‌سازی تغییراتی که در برنامه ایجادشده است، متناوبا نرم‌افزار اصلاح می‌شود و تغییراتی در آن داده می‌شود. پس از هر تغییر در نرم‌افزار، برای بررسی اینکه رفتار بر روی قسمت‌های بلا تغییر تاثیری نداشته باشد و همچنین برای اعتبارسنجی مجدد، آزمون‌های فعلی را تکرار می‌کنند. درعین‌حال اعتبارسنجی قسمت‌های تغییریافته نرم‌افزار هر بار نیازمند طراحی تعدادی آزمون‌های جدید است که به‌این‌ترتیب حجم آزمون‌های نرم‌افزار مرتباً رو به افزایش است. بنابراین، این فاز ضروری در توسعه محصول نرم افزاری که برای آشکارسازی عیوب نرم‌افزار و مشخص کردن سطح کیفی آن با توجه به یکسری خصوصیات منتخب، انجام می‌شود [1]، بسیاری از هزینه‌های توسعه نرم‌افزار (بین 30 تا 50 درصد) را به خود اختصاص می‌دهند. این آزمون‌های مکرر در مرحله نگهداری نرم‌افزار در حال تکامل و اصلاح که با ایجاد هر تغییر در کد نرم‌افزار، برای اطمینان از عدم تأثیرپذیری نامطلوبِ بخش‌های اصلاح‌نشده کد از تغییرات صورت می‌گیرد آزمون رگرسیون نرم‌افزار[1] نامیده می‌شود.

    به دلیل محدودیت زمان و منابعِ در دسترس برای گروه آزمون در دنیای واقعی، آزمون کامل اغلب غیرعملی است [2،1]. روش‌های گوناگونی برای حل مشکل هزینه زیاد آزمون رگرسیون ارائه‌شده است. در بین این روش‌ها، سه روش عمده که بر پایه استفاده مجدد از مخزن آزمون استوارند عبارت‌اند از: ” آزمون رگرسیون انتخابی “، ”کاهش مجموعه آزمون“ و ”اولویت‌دهی موارد آزمون[2]“ [2]. روش آزمون رگرسیون انتخابی از اطلاعات درباره برنامه، برنامه اصلاح‌شده و موارد آزمونی که برای زیرمجموعه آزمون انتخاب می‌شود، استفاده می‌کند. تکنیک‌های انتخاب آزمون معمولاً کد منبع برنامه را استفاده می‌کنند برای تعیین اینکه کدام مورد آزمون بهتر است در طول مرحله آزمون رگرسیون اجرا شود [3]. یکی از اهداف مهم انتخاب موارد آزمون افزایش نرخ قابلیت تشخیص خطا هست. روش اولویت‌دهی موارد آزمون تلاش می‌کند با ترتیب دهی اجرای موارد آزمون بر اساس یک معیار شایستگی به بهبود آزمون رگرسیون نرم افزاری بپردازد به‌گونه‌ای که مهم‌ترین‌ها ابتدا اجرا شوند. یکی از اهداف عمده [4] در اولویت‌دهی موارد آزمون این است که با اجرای موارد آزمونی که تعداد بیشتری از خطاها را اجرا می‌کنند، متوسط کشف خطا را در طول اجرای آزمون تا جای ممکن افزایش داد تا با کشف سریع‌تر این خطاها امکان بازخورد سریع‌تر به گروه توسعه نرم‌افزار و ارسال آن برای ویرایش و تصحیح خطا میسر شود. با این کار می‌توان مطمئن بود که در صورت توقف و ناتمام ماندن جریان آزمون در هرجا، مؤثرترین آزمون‌ها انجام‌گرفته و حداکثر خطاهای موجود کشف‌شده‌اند. هدف ما بهبود در این روش‌هاست.

    1-2- انگیزه

    آزمون رگرسیون انتخابی را برای افزایش سرعت انجام فاز آزمون استفاده می‌کنند، در این روش بر اساس معیارهای که از قبل تعیین‌شده است از میان مجموعه آزمون تعدادی را انتخاب می‌کنند. آزمون رگرسیون انتخابی به دنبال حداقل کردن دنباله آزمون است که اکثراً آگاه از اصلاحات است. انتخاب مورد آزمون فقط روی نسخه جاری استفاده می‌شود اما روی قسمتی از برنامه تمرکز می‌کند که اصلاح‌شده است [5].

    مسئله اولویت‌دهی موارد آزمون در حقیقت تعیین جایگشتی از کلیه موارد آزمون موجود در رشته آزمون است، به‌گونه‌ای که این ترتیبِ اجرا، آشکارکننده حداکثر خطاهای ممکن باشد؛ بنابراین مسئله اولویت‌دهی موارد آزمون در حقیقت یک مسئله جستجو است که در مراجع این مسئله و پیچیدگی آن را معادل با مسئله کوله‌پشتی می‌دانند که NP-hard بوده و بدون راه‌حل قطعی است. لذا راه‌حل‌های موجود برای مسئله اولویت‌دهی موارد آزمون الزاماً مکاشفه ای هستند و از طرفی هیچ‌یک جواب بهینه محسوب نمی‌شوند [2].

    در سال 1997 نخستین تعریف رسمی از مسئله انتخاب و اولویت‌دهی موارد آزمون و نیز متریک APFD[3] که درصد میانگین خطاهای کشف‌شده در اجرای مجموعه آزمون است، برای ارزیابی روش‌های انتخاب و اولویت‌دهی آزمون ازلحاظ احتمال کشف زودتر خطاها ارائه شد [2]؛ اما این متریک دو محدودیت دارد، اول آنکه دشواری خطاها را یکسان در نظر می‌گیرد و دوم اینکه هزینه هر مورد آزمون را یکسان در نظر می‌گیرد؛ بنابراین معیار APFDc[4] درصد میانگین خطاهای کشف‌شده در هزینه معرفی شد تا این محدودیت را از بین ببرند.

    1-3- مروری بر روش‌های ارائه‌شده

    در اغلب روش‌های اولویت‌دهی موجود، دید محدودشده ای وجود دارد و مدلی که محققان در مطالعات تجربی‌شان برای آزمون رگرسیون استفاده کرده‌اند، آن را به‌صورت یک آزمون ”یک‌دفعه ای “در نظر گرفته‌اند درحالی‌که مدل مناسب برای آزمون رگرسیون که نشانگر خصوصیات آن باشد، آزمونی ”مداوم “ و ”درازمدت“ است و به‌طور سلسله وار بعد از هر تغییر در نرم‌افزار اجرا می‌شود، به‌گونه‌ای که کارایی هر کدام از آن‌ها بر آزمون‌های بعدی مؤثر است.

    در همین راستا در [6] نخستین بار بحث ”حافظه‌دار کردن“ آزمون رگرسیون و استفاده از اطلاعات پیشینه کارایی موارد آزمون، در اولویت‌دهی مجموعه آزمون مطرح گردید. روش مکاشفه‌ای ارائه‌شده در [6] درواقع ترکیبی است از ”روش انتخابِ مبتنی بر پیشینه در آزمون “و سپس اولویت‌دهی موارد آزمون. به‌این‌ترتیب که در هر رگرسیون گام از پیشینه اجرای موارد آزمون، برای انتخاب‌های بعدی موارد آزمون استفاده می‌شود و در هر مرحله زیرمجموعه ای از مجموعه آزمون اولیه (بدون کاهش دائمی آن) را برای اولویت‌دهی و اجرا بر روی نسخه جدید نرم‌افزار انتخاب می‌کند. نشان داده‌شده است که [6] چنین مکاشفه ای می‌تواند باگذشت اجراهای طولانی، هزینه را کاهش داده و کارایی آزمون رگرسیون را در محیط‌های توسعه محدودیت دار کاهش دهد.

    مشکل روش پیشینه محورِ جاری در این است که در اطلاعات پیشینه اجرای موارد آزمون، تنها اثر ”اخیراَ “ اجراشدن نشدن مورد آزمون و یا آشکارسازی خطا یا عدم آن در اجرای قبل، آن‌هم ”به‌صورت صفر و یک “ در رابطه بازگشتی احتمال انتخاب موارد آزمون در نظر گرفته‌شده است. درحالی‌که برای اولویت‌دهی کارای پیشینه محور، هم کارایی کشف خطا در طول اجراها باید در نظر گرفته شود و هم از اولویت‌دهی پایین و منسوخ شدن دائمی یکسری از آزمون‌ها بایستی جلوگیری شود.

    فضل علیزاده و همکاران در [7] یک روش اولویت‌دهی مبتنی بر پیشینه را پیشنهاد کردند. این روش سه نوع اطلاعات پیشینه در مورد موارد آزمون مانند تعداد اجراها و تعداد زمان‌های کشف خطا را در یک رابطه ترکیب کرده است. آن‌ها به هر یک از این معیارها ضریب ثابتی می‌دهند، بنابراین هر معیار روی احتمال انتخاب تأثیر ثابتی دارد، سپس احتمال انتخاب محاسبه می‌شود و موارد آزمون به‌صورت نزولی ازنظر احتمال انتخاب زمان‌بندی می‌شوند.

    خلیلیان و همکاران در [8] رابطه ی برای اولویت‌دهی مورد آزمون ارائه دادند که از اطلاعات پیشینه استفاده می‌کند. ایده این روش این است که هر بخش از رابطه اولویت‌دهی باید تأثیر خاصی روی اولویت مورد آزمون داشته باشد و این تأثیرات ممکن است در طول آزمون رگرسیون متوالی تغییر کنند. آن‌ها رابطه ی ارائه دادند که از ضرایب متغیر بهبودیافته استفاده می‌کند، این متغیرها بر اساس دسترسی به پیشینه داده کارا هستند، پیشینه اطلاعات کارایی در هر مورد آزمون بر اساس همه مراحل آزمون است نه‌فقط در آزمون مرحله قبل. آن‌ها معتقدند که بر اساس داده‌های پیشینه و شرایط هر مرحله آزمون، هر نوع از اطلاعات باید تأثیر مناسبی روی تعیین احتمال هر مورد آزمون داشته باشند، تأثیر می‌تواند خیلی ناچیز و یا خیلی زیاد باشد.

    1-4- نوآوری بر روش‌های ارائه‌شده

    در روش پیشنهادی در این پایان‌نامه، به ارائه راه حلی برای انتخاب و اولویت‌دهی مبتنی بر پیشینه موارد آزمون در هر گام اجرا، از سابقه کارایی موارد آزمون در کشف خطا و نیز سالمندی موارد آزمون استفاده می‌شود به گونه‌ی که در هر بار اجرای آزمون رگرسیون موارد آزمون جدید انتخاب و اولویت‌دهی شوند. از طرفی هر مورد آزمون هزینه و دشواری مخصوص به خود را دارد که در هیچ‌یک از روش‌های ارائه‌شده به آن نپرداخته‌اند؛ بنابراین در این پایان‌نامه با استفاده از روش فرا ابتکاری ژنتیک مناسب‌ترین زیرمجموعه از موارد آزمون از طریق روش‌های مبتنی بر پیشینه انتخاب می‌شود و با تابع برازندگی مناسب اولویت‌دهی می‌شود تا درنهایت معیار APFDc افزایش یابد.

    1-5- رئوس مطالب سایر فصل‌ها

    این فصل به انگیزه و هدف از این تحقیق پرداخته است. در فصل دوم، مفاهیم و مطالعات صورت گرفته در این تحقیق بررسی و مرور می‌گردد. در فصل سوم، روش اجرای تحقیق بررسی و مرور می‌گردد. فصل چهارم نتایج روش پیشنهادی و برتری آن در قیاس با سایر کارها مطرح می‌کند و مورد ارزیابی قرار می‌دهد. درنهایت فصل پنجم، به جمع‌بندی و ارائه پیشنهادهای آینده می‌پردازد.

    در ادامه ساختار پایان‌نامه به‌صورت زیر تهیه‌شده است:

    فصل 2 اصول و مبانی نظری و پیشینه تحقیق: در این فصل به معرفی مفاهیم پایه انتخاب و اولویت‌دهی موارد آزمون و همچنین بررسی تحقیقات دیگر محققان خواهیم پرداخت

    فصل 3 روش پیشنهادی: در این فصل به توضیح روش‌های پیشنهادشده در پایان‌نامه می‌پردازیم.

    فصل 4 نتایج و تفسیر آن‌ها: در این فصل به نتایج شبیه‌سازی و مقایسه آن‌ها با روش‌های پیشین پرداخته می‌شود.

    فصل 5 جمع‌بندی و پیشنهادها: در این فصل، خصوصیات روش پیشنهادی را جمع‌بندی و کارهای قابل انجام در آینده را معرفی می‌کنیم.

    فصل 2: اصول و مبانی نظری و پیشینه تحقیق

    1- مقدمه

    توسعه سیستم‌های نرم‌افزاری شامل فعالیت‌های تولیدی است که احتمال خطا در آن زیاد است. خطاها ممکن است در ابتدایی‌ترین مراحل فرایند پیش آید و به‌این‌ترتیب، اهداف به‌طور نادرست یا ناقص مشخص شوند. آزمودن نرم‌افزار یک عنصر حیاتی از تضمین کیفیت است و بیانگر بازبینی نهایی مشخصات، طراحی و تولید کد است.

    هنگامی‌که کد منبع تولید شد، نرم‌افزار باید آزموده شود تا هر تعدادی از خطاها را که امکان داشته باشد، قبل از تحویل به مشتری کشف کرد. هدف، طراحی موارد آزمون است که احتمال یافتن خطا را بالا ببرند.

    آزمون، از بسیاری جهات یک فرایند فردگرایانه است و تعداد انواع متفاوت آزمون‌ها بسته به تعداد روش‌های متفاوت توسعه، متغیر است. سالها تنها دفاع در برابر خطاهای برنامه‌نویسی، دقت در طراحی و هوش و فراست خود برنامه‌نویس بود. اکنون در دوره ای به سر می‌بریم که در آن تکنیک‌های مدرن طراحی به کاهش دادن تعداد خطاهای اولیه ای که ذاتا در کد وجود دارند، کمک می‌کند. به‌طور مشابه روش‌های متفاوت آزمون رفته‌رفته به‌صورت چند روش و فلسفه متمایز درآمده است. این روش‌ها و فلسفه‌ها را راهبرد می‌نامند.

    دریکی از راهبردهای آزمون نرم‌افزار، روش‌های طراحی موارد آزمون، در مراحلی با طرح‌ریزی مناسب باهم تلفیق‌شده منجر به ساخت موفقیت‌آمیز نرم‌افزار می‌شوند. این راهبرد، نقشه راهنمایی فراهم می‌آورد که مراحل اجرای آزمون، زمان برنامه‌ریزی و میزان کار، زمان و منابع لازم را توصیف می‌کند؛ بنابراین هر راهبرد آزمونی باید برنامه‌ریزی آزمون، طراحی موارد آزمون، اجرای آزمون و جمع‌آوری و ارزیابی داده‌های حاصل را باهم مرتبط کند. راهبرد آزمون نرم‌افزار باید آن‌قدر انعطاف‌پذیر باشد که روش آزمون سفارشی را ارتقا بخشد. درعین‌حال، باید به‌قدر کافی محکم باشد که برنامه‌ریزی منطقی و پیگیری مدیریتی را به‌موازات پیشرفت پروژه ارتقا بخشد.

    در این فصل در بخش اول به مبانی و مفاهیم مربوط به آزمون می‌پردازیم و انواع روش‌های موجود آن را برمی‌شماریم. در بخش دوم کارهای پیشین در رابطه با انتخاب و اولویت‌دهی موارد آزمون را بررسی می‌کنیم.

    2-2- تعاریف اصول و مبانی نظری

    آزمون یک بخش مهم و اجباری از توسعه نرم‌افزار است. آزمون تکنیکی برای ارزیابی کیفیت محصول و همچنین برای بهبود غیرمستقیم، با شناسایی نواقص و مشکلات است [9][Abran, 2001 #9].

     در مبحث کیفیت نرم‌افزارها رویکرد درست کیفیت نرم‌افزار، اجتناب است: بدیهی است که اجتناب از مشکل بهتر از تعمیر آن است. آزمون باید به‌عنوان یک روش ابتدایی برای بررسی این باشد که آیا اجتناب مؤثر است و همچنین برای شناسایی ناهمسانی‌ها در بعضی موارد ممکن است بعد از یک آزمون کامل و موفق هنوز نرم‌افزار شامل خطا باشد. اصلاح خطای نرم‌افزار بعد از انتشار آن در فاز نگهداری انجام می‌شود.

    اخیرا آزمون نرم‌افزار به سمت گرایش‌های سازنده‌تر تکامل پیداکرده است. آزمون دیگر فقط به‌عنوان فعالیتی که باید بعد از اتمام فاز کد نویسی و باهدف محدود تشخیص خطا انجام شود، دیده نمی‌شود. آزمون نرم‌افزار امروزه به‌عنوان فعالیتی که شامل همه فرایند توسعه است مطرح می‌شود و بخش مهمی از ساختار محصول است [9]. درواقع برنامه‌ریزی برای آزمون باید از مراحل اولیه تحلیل نیازمندی آغاز شود. فعالیت‌های برنامه‌ریزی و طراحی آزمون ورودی‌های مفید برای طراح را جهت مشخص کردن ضعف‌های بالقوه انتخاب می‌کند.

    2-2-1- فرایند آزمون نرم‌افزار

    بعدازاینکه برنامه نرم‌افزاری تولید شد طبیعی است که توسعه‌دهندگان این برنامه نرم‌افزاری در مورد درستی و کارایی اجرای محصول نرم‌افزاری که تولید کرده‌اند نگران باشند. مهندس نرم‌افزار باید مطمئن شود نرم‌افزارش سطح مناسب از کیفیت را به دست می‌آورد [3]. ما در درستی یابی به دنبال خصوصیات نرم‌افزار هستیم می‌خواهیم مطمئن شویم که آیا کار را به‌درستی انجام داده‌ایم یا نه آیا محصول را به‌درستی تولید کرده‌ایم، درستی یابی از طریق اثبات درستی به ما در انجام طراحی خصوصیات و اجرای نرم‌افزار کمک می‌کند.

    آزمون سنتی تعریف‌های مختلفی دارد:

    آزمون، فعالیت یا فرایندی است که نشان می‌دهد یا اثبات می‌کند که یک برنامه یا سیستم، همه توابع در نظر گرفته‌شده را به‌درستی انجام می‌دهد [10].

    آزمون یک فرایند ایجاد اطمینان لازم است که یک برنامه یا سیستم قرار است بر اساس مجموعه‌ی از نیازمندی‌ها که کاربر مشخص کرده است، چه‌کاری انجام دهد [11].

     

    آزمون فرایند اجرای یک برنامه یا سیستم با قصد پیدا کردن خطاها است[12].

    آزمون هر فرایندی باهدف ارزیابی خصوصیت یا قابلیت برنامه یا سیستم است و تعیین اینکه نتایج موردنیازش رسیده است یا نه [13].

    Abstract

    Many software development costs that related to repeated tests is repairing in the software maintenance; because creation of each change in software code introduce new version which its verification  needs new test design and also redo all Previous tests for Ensure that current software don’t have any undesirable influence of changes in the performance. This process is called regression testing software. Due to limited time and resources for the test, we can’t do all test in each run. Two of the main techniques to overcome the problem of high costs of software regression testing are regression test selection and prioritization. In these techniques, important test cases are selected and run based on the eligibility criteria to achieve faster the objective test. Problems of the most offered selection and prioritization techniques are ignoring the repeated execution of regression tests, impact of performance tests at sessions of regression testing on performance of later stages, the difference between the test cost and fault severity and time and resource constraints in a real environment test. In this thesis, we introduce a method for test case selection and prioritization based on history and cost cognizant by genetic algorithm. We use five Criteria: fault detection performance history of test cases, prior selection probability, execution history of several sessions during regression testing, test cost and fault severity that Applied resource constraints on the test run.

    For quantitative evaluation of fault detection rate of the proposed method, the implementation was carried out that the evaluation is conducted using metric APFDc. The proposed method compared to random method and history based method. The results presented in the thesis shows 30% improvement in fault detection rate of the proposed method than comparable methods.

    Keywords: software regression testing, test cases selection, test cases prioritization, prioritization based on history, cost cognizant

  • فهرست و منابع پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک

    فهرست:

    فصل 1: مقدمه. 1

    1-1- هدف... 2

    1-2- انگیزه. 3

    1-3- مروری بر روش‌های ارائه‌شده. 4

    1-4- نوآوری بر روش‌های ارائه‌شده. 5

    1-5- رئوس مطالب سایر فصل‌ها. 6

    فصل 2: اصول و مبانی نظری و پیشینه تحقیق... 7

    2-1- مقدمه.. 8

    2-2- تعاریف اصول و مبانی نظری... 9

    2-2-1- فرایند آزمون نرم‌افزار. 9

    2-2-2- الگوریتم ژنتیک.... 17

    2-3- مروری بر ادبیات آزمون.. 25

    2-3-1- آزمون رگرسیون نرم‌افزار. 25

    2-3-2- آزمون مجدد کامل.. 26

    2-3-3- آزمون رگرسیون انتخابی... 27

    2-3-4- کاهش مجموعه آزمون.. 33

    2-3-5- اولویت‌دهی موارد آزمون.. 34

    2-3-6- کارهای پیشین... 40

    2-4- نتیجه‌گیری... 61

    فصل 3: روش پیشنهادی.. 63

    3-1- مقدمه.. 64

    3-2- ایده عملکرد و ایرادات روش انتخاب و اولویت‌دهی موجود. 65

    3-2-1- روش پیشنهادی... 67

    3-3- نتیجه‌گیری... 80

    فصل 4: نتایج و تفسیر آن‌ها 82

    4-1- مقدمه.. 83

    4-2- متریک ارزیابی... 83

    4-3- شرح آزمایش‌ها. 85

    4-4-تحلیل نتایج... 86

    4-5- نتیجه‌گیری... 89

    فصل ۵: جمع‌بندی و پیشنهادها 91

    ۵-1- مقدمه.. 92

    5-2- یافته‌ها و دستاوردهای تحقیق... 93

    5-4- پیشنهادها. 94

    مراجع.. 95

    پیوست... 99

     

    منبع:

    [1]. [,  #5@@hidden]Burnstein, I. Practical software testing: a process oriented approach. ISBN 0-387-95131-8, Springer- Verlag New York, Inc, 2003.

    [2]. Rothermel, G. Untch, R. H. Chu, C. Harrold, M. J. “Test case prioritization: an empirical study”, Proc. IEEE Int. Conf. on Software Maintenanc. Oxford, England, pp. 179-188, 1999.

    [3].  Software Testing,1 ed.Department of computer sience. Allegheny College, Kapfhammer, 2003.

    [4]. G. Rothermel, R. H. Untch, C. Chu, and M. J. Harrold, "Prioritizing test cases for regression testing," Software Engineering, IEEE Transactions on, vol. 27, pp. 929-948, 2001.

    [5]. S. Yoo and M. Harman, "Regression testing minimization, selection and prioritization: a survey," Softw. Test. Verif. Reliab. vol. 22, pp. 67-120, 2012.

    [6]. K. Jung-Min and A. Porter, "A history-based test prioritization technique for regression testing in resource constrained environments," in Software Engineering, 2002. ICSE 2002. Proceedings of the 24rd International Conference on, 2002, pp. 119-129.

    [7]. Y. Fazlalizadeh, A. Khalilian, M. A. Azgomi, and S. Parsa, "Incorporating Historical Test Case Performance Data and Resource Constraints into Test Case Prioritization," Lecture Notes in Computer Science, vol. 5668, pp. 43-57, 2009.

    [8]. A. Khalilian, M. A. Azgomi, and Y. Fazlalizadeh, "An improved method for test case prioritization by incorporating historical test case data," Sci. Comput. Program. vol. 78, pp. 93-116, 2012.

    [9]. A. Abran, J. W. Moore, P. Bourque, R. Dupuis, and L. L. Tripp, SWEBOK. Los Alamitos, California: IEEE Computer Society, 2001.

    [10]. Drake, Thomas, “Testing Software BasedSystems: The Final Frontier” Software Technical News, Department of Defense, US Government, Vol 3, No 3, 1999.

    [11]. B. Hetzel, The complete guide to software testing: QED Information Sciences, Inc. 1988.

    [12]. G. J. Myers, Art of Software Testing: John Wiley,Sons, Inc. 1979.

    [13]. D. Reifer, "Testing Software: Challenges for the Future," Software Technical News, vol. 3, 1999.

    [14]. J. P. Bowen and M. G. Hinchey, "Ten Commandments of Formal Methods," Computer, vol. 28, pp. 56-63, 1995.

    [15]. C. Kaner, J. Falk, and H. Q. Nguyen, Testing computer software. londen, boston: International Thomson Computer Press, 1993.

    [16]. R. V. Binder, Testing object-oriented systems: models, patterns, and tools: Addison-Wesley Longman Publishing Co., Inc., 1999.

    [17]. Robert V. Binder," Testing Object-Oriented Systems: Models, Patterns, and Tools", Addison-Wesley, Boston, MA, 1999.

    [18]. M. Young and R. N. Taylor, "Rethinking the taxonomy of fault detection techniques," presented at the Proceedings of the 11th international conference on Software engineering, Pittsburgh, Pennsylvania, USA, 1989.

    [19]. M. E. Khan, "Different Forms of Software Testing Techniques for Finding Errors," IJCSI International Journal of Computer Science Issues,, vol. 7, pp. 11-16, 2010

    [20]. H. K. N. Leung and L. White, "nsights into regression testing " Software Maintenance, 1989., Proceedings., Conference on, pp. 60 - 69, 1989.

    [21]. A. E. Carter and C. T. Ragsdale, "Scheduling pre-printed newspaper advertising inserts using genetic algorithms," Omega, vol. 30, pp. 415-421, 2002.

    [22]. K. C. Gilbert and R. B. Hofstra, "A new multiperiod multiple traveling salesman problem with heuristic and application to a scheduling problem," Decision Sciences, vol. 23, pp. 250-259, 1992.

    [23]. J. K. Lenstra and A. R. Kan, "Some simple applications of the travelling salesman problem," Operational Research Quarterly, pp. 717-733, 1975.

    [24]. ع.جعفرنژاد قمی،ا.عامل محرابی،مهندسی نرم‌افزار، دانش نگار، 1383.

    [25]. P. R. Srivastava, "Test case prioritization," Journal of Theoretical and Applied Information Technology, vol. 4, pp. 178-181, 2008.

    [26]. G. Rothermel and M. J. Harrold, "Analyzing Regression Test Selection Techniques," IEEE Trans. Softw. Eng., vol. 22, pp. 529-551, 1996.

    [27]. J. R. Horgan and S. London, "Data flow coverage and the C language," presented at the Proceedings of the symposium on Testing, analysis, and verification, Victoria, British Columbia, Canada, 1991.

    [28]. F. K, "A test case selection method for the validation of software maintenance modifications," Proceedings of the International Computer Software and Applications 2002, IEEE Computer Society: Silver Spring, MD, pp. 257–268, 20002.

    [29]. Y. SS and K. Z, "A method for revalidating modified programs in the maintenance phase," Proceedings of the International Computer Software and Applications Conference (COMPSAC 1987), IEEE Computer Society: Silver Spring, MD, pp. 272–277, 1987.

    [30]. H. Agrawal, J. R. Horgan, E. W. Krauser, and S. London, "Incremental Regression Testing," presented at the Proceedings of the Conference on Software Maintenance, (ICSM 1993). IEEE Computer Society: Silver Spring, MD, 1993; 348–357.

    [31]. G. Rothermel and M. J. Harrold, "A safe, efficient algorithm for regression test selection," in Software Maintenance, 1993. CSM-93, Proceedings., Conference on, 1993, pp. 358-367.

    [32]. G. Rothermel and M. J. Harrold, "Selecting tests and identifying test coverage requirements for modified software," in Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis, 1994, pp. 169-184.

    [33]. G. Rothermel and M. J. Harrold, "A safe, efficient regression test selection technique," ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 6, pp. 173-210, 1997.

    [34]. G. Rothermel and M. J. Harrold, "Experience with regression test selection," Empirical Software Engineering, vol. 2, pp. 178-188, 1997.

    [35]. F. I. Vokolos and P. G. Frankl, "Pythia: a regression test selection tool based on textual differencing," in Reliability, quality and safety of software-intensive systems, ed: Springer, 1997, pp. 3-21.

    [36]. S. Bates and S. Horwitz, "Incremental program testing using program dependence graphs," in Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1993, pp. 384-396.

    [37]. P. Benedusi, A. Cmitile, and U. De Carlini, "Post-maintenance testing based on path change analysis," in Software Maintenance, 1988., Proceedings of the Conference on, 1988, pp. 352-361.

    [38]. Y.-F. Chen, D. S. Rosenblum, and K.-P. Vo, "TestTube: A system for selective regression testing," in Proceedings of the 16th international conference on Software engineering, 1994, pp. 211-220.

    [39]. L. J. White and H. K. Leung, "A firewall concept for both control-flow and data-flow in regression integration testing," in Software Maintenance, 1992. Proceerdings., Conference on, 1992, pp. 262-271.

    [40]. L. C. Briand, Y. Labiche, and S. He, "Automating regression test selection based on UML designs," Information and Software Technology, vol. 51, pp. 16-30, 2009.

    [41]. S. Elbaum, A. G. Malishevsky, and G. Rothermel, Prioritizing test cases for regression testing vol. 25: ACM, 2000.

    [42]. J. A. Jones and M. J. Harrold, "Test-suite reduction and prioritization for modified condition/decision coverage," Software Engineering, IEEE Transactions on, vol. 29, pp. 195-209, 2003.

    [43]. D. Leon and A. Podgurski, "A comparison of coverage-based and distribution-based techniques for filtering and prioritizing test cases," in Software Reliability Engineering, 2003. ISSRE 2003. 14th International Symposium on, 2003, pp. 442-453.

    [44]. P. Tonella, P. Avesani, and A. Susi, "Using the case-based ranking methodology for test case prioritization," in Software Maintenance, 2006. ICSM'06. 22nd IEEE International Conference on, 2006, pp. 123-133.

    [45]. M. Sherriff, M. Lake, and L. Williams, "Prioritization of regression tests using singular value decomposition with empirical change records," in Software Reliability, 2007. ISSRE'07. The 18th IEEE International Symposium on, 2007, pp. 81-90.

    [46]. H. Srikanth, L. Williams, and J. Osborne, "System test case prioritization of new and regression test cases," in Empirical Software Engineering, 2005. 2005 International Symposium on, IEEE Computer Society Press: Silver Spring, MD 2005, p. 10 pp.

    [47]. B. Korel, L. H. Tahat, and M. Harman, "Test prioritization using system models," in Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on, 2005, pp. 559-568.

    [48]. E. Rogstad, L. Briand, and R. Torkar, "Test case selection for black-box regression testing of database applications," Information and Software Technology, vol. 55, pp. 1781-1795, 2013.

    [49]. A. Assis Lobo de Oliveira, C. Gonyalves Camilo-Junior, and A. M. Vincenzi, "A coevolutionary algorithm to automatic test case selection and mutant in Mutation Testing," in Evolutionary Computation (CEC), 2013 IEEE Congress on, 2013, pp. 829-836.

    [50]. C.-T. Lin, C.-D. Chen, C.-S. Tsai, and G. M. Kapfhammer, "History-based Test Case Prioritization with Software Version Awareness," in Engineering of Complex Computer Systems (ICECCS), 2013 18th International Conference on, 2013, pp. 171-172.

    [51]. D. Marijan, A. Gotlieb, and S. Sen, "Test case prioritization for continuous regression testing: An industrial case study," in Software Maintenance (ICSM), 2013 29th IEEE International Conference on, 2013, pp. 540-543.

    [52]. A. Ensan, E. Bagheri, M. Asadi, D. Gasevic, and Y. Biletskiy, "Goal-oriented test case selection and prioritization for product line feature models," in Information Technology: New Generations (ITNG), 2011 Eighth International Conference on, 2011, pp. 291-298.

    [53]. K. R. Walcott, M. L. Soffa, G. M. Kapfhammer, and R. S. Roos, "Timeaware test suite prioritization," in Proceedings of the 2006 international symposium on Software testing and analysis, 2006, pp. 1-12.

    [54]. S. Yoo and M. Harman, "Pareto efficient multi-objective test case selection," in Proceedings of the 2007 international symposium on Software testing and analysis, 2007, pp. 140-150.

    [55]. S. Mirarab and L. Tahvildari, "A prioritization approach for software test cases based on bayesian networks," in Fundamental Approaches to Software Engineering, ed: Springer, 2007, pp. 276-290.

    [56]. S. Mirarab and L. Tahvildari, "An empirical study on bayesian network-based approach for test case prioritization," in Software Testing, Verification, and Validation, 2008 1st International Conference on, 2008, pp. 278-287.

    [57]. H. Park, H. Ryu, and J. Baik, "Historical value-based approach for cost-cognizant test case prioritization to improve the effectiveness of regression testing," in Secure System Integration and Reliability Improvement, 2008. SSIRI'08. Second International Conference on, 2008, pp. 39-46.

    [58]. Y.-C. Huang, K.-L. Peng, and C.-Y. Huang, "A history-based cost-cognizant test case prioritization technique in regression testing," Journal of Systems and Software, vol. 85, pp. 626-637, 2012.

    [59]. A. G. Malishevsky, J. R. Ruthruff, G. Rothermel, and S. Elbaum, "Cost-cognizant test case prioritization," Department of Computer Science and Engineering, University of Nebraska-Lincoln, Techical Report, 2006.

    [60]. S. Elbaum, A. G. Malishevsky, and G. Rothermel, "Test case prioritization: A family of empirical studies," Software Engineering, IEEE Transactions on, vol. 28, pp. 159-182, 2002.

    [61]. S. Elbaum, A. Malishevsky, and G. Rothermel, "Incorporating varying test costs and fault severities into test case prioritization," in Proceedings of the 23rd International Conference on Software Engineering, 2001, pp. 329-338.

    [62]. H. Do, S. Mirarab, L. Tahvildari, and G. Rothermel, "The effects of time constraints on test case prioritization: A series of controlled experiments," Software Engineering, IEEE Transactions on, vol. 36, pp. 593-617, 2010.



تحقیق در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, مقاله در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, پروژه دانشجویی در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, پروپوزال در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, تز دکترا در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, تحقیقات دانشجویی درباره پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, مقالات دانشجویی درباره پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, پروژه درباره پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, گزارش سمینار در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, پروژه دانشجویی در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, تحقیق دانش آموزی در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, مقاله دانش آموزی در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک, رساله دکترا در مورد پایان نامه ارائه راهکاری برای انتخاب و اولویت‌ دهی موارد تست رگرسیون مبتنی بر رهیافت ژنتیک

ثبت سفارش
تعداد
عنوان محصول
بانک دانلود پایان نامه رسا تسیس