مقاله مهندسی کامپیوتر روشهای خودکارتست پوشش نرم افزار

دانلود مطالب دانشگاهی

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

كليد واژه- کیفیت نرم افزار، تست نرم افزار، تست پوشش، تولید خودکار مورد های تست، اجرای سمبولیک، انتخاب مورد تست بر اساس جستجو، تست پوشش تصادفی

 

اتوماتیک سازی روند تست نرم‌افزار یکی از مقوله های مهم در مهندسی نرم‌افزار است، به دلیل هزینه بالای تست نرم‌افزار با روش های سنتی و همچنین زمان بر بودن و عدم کارایی آن‌ها امروزه تلاش جدی در روند تست اتوماتیک نرم‌افزار صورت گرفته است، یکی از مهمترین قسمت های تست نرم‌افزار انتخاب مورد تست[i] است، و به دلیل اینکه نمی‌توان تمام مورد های تست را برای نرم‌افزار در نظر گرفت (هزینه و زمان غیر قابل کنترل ) باید مهمترین مورد های تست را انتخاب کرد. یکی از مهمترین معیارها برای انتخاب مجموعه موردهای تست[ii] که تاکنون معرفی شده است میزان پوشش خطوط برنامه اعم از خطوط عادی و شرطی برنامه است[1].

از طرفی تست پوشش نرم افزار نیز خود به تنهایی مشکلاتی از برنامه را نمایان می کند. این مشکلات عبارتند از بروز مشکلات امنیتی در مقابل خطوط غیرقابل دسترسی در برنامه که هدف هکرهاست و یا اشکلات برنامه نویسی مخصوصا در شرطها و بر اثر پیمایش نشدن بخشی از برنامه نمایان می شوند[2]. یکی از مهمترین مزیت های این تست تضمین حداقلی برای اینکه خطوط برنامه حداقل برای یک بار مورد ازمایش قرار گرفته اند. اما تست پوشش را نمی توان به منزله تاثیر گذار بودن تست نرم افزار تلقی کرد[3].

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

[i] Test Case

[ii] Test Suite

1-1-1- تولید داده‌های تست بر اساس الگوریتم‌های ژنتیک

در سالهای اخیر تکنیک‌های بر اساس الگوریتم‌های ژنتیک برای تولید داده‌های تست پیشنهاد شده است[14]–[18]. خصوصیات الگوریتم ژنتیک باعث شده است که این روش توانایی پیدا کردن اهداف نزدیک بهینه سراسری را داشته باشند. در تمامی این روشها سعی شده تست های مناسبی تولید کنند تا تمام موجدیت های برنامه تست شده را پوشش دهند.  این تست ها مورد نیاز معیار پوشش جریان کنترل[i] یا جریان داده [ii]  می‌باشند.

1-1-2- تولید داده‌های تست بر اساس الگوریتم‌ ازدحام ذرات

با فراگیر شدن الگوریتم ازدحام ذرات و کشف قدرت این الگوریتم در حوزهای مختلف بر اساس روشهای به کارگرفته شده در تولید داده های تست بر اساس الگوریتم‌های ژنتیک به تولید داده های تست با استفاده از الگوریتم ازدحام ذرات پرداختند[19]–[23]. در این روشها نیز نشان داده شد که الگوریتم ازدحام ذرات بهتر از الگوریتم های ژنتیک عمل می‌کنند.

1-1-3- تولید داده‌های تست بر اساس الگوریتم‌ کلونی مورچه

و همچنین یک نمونه دیگری که از محاسبات تکاملی و متا هیورستیک ها برای تست نرم افزار در سال جاری استفاده شده است در کار [24]  آمده است که از الگوریتم کلونی مورچه برای ایجاد داده های تست استفاده شده است.

1-    حوزه های کاربرد تست پوشش

سوال مهمی که در این مقاله به آن پاسخ داده می شود این است که آیا تست پوشش، یا معیار پوشش نرم افزار، معیار مناسبی برای تاثیر گذاری تست است یا خیر. بر اساس مقاله ای که اخیرا ارائه شده است [3] نشان می دهد که معیار پوشش نرم افزار زمانی مناسب است که اندازه و پیچیدگی سیستم متوسط و یا کم باشد. هنگامی که اندازه نرم افزار بزرگ باشد نمی توان معیار پوشش را به عنوان میزان تاثیرگذاری[iii] تست در نظر گرفت. این تحلیل بر اساس نتایج بدست آمده در برنامه های دستکاری شده که خطاهایی را به عمد در آن درج کرده اند که با توجه به اینکه مجموعه تست های انتخابی دارای معیار پوشش زیادی هستند اما خطاهای اضافه شده در کدها را کشف نکرده اند.

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

[i] Control Flow

[ii] Data Flow

[iii] Effectiveness

 

برای دانلود مقاله کامل با کدهای مربوطه  لطفا از طریق لینک  ثبت سفارش کنید.

 

پروپوزال  مهندسی کامپیوتر تلفیق الگوریتم ژنتیک و منطق فازی برای خوشه بندی نابرابر در شبکه های حسگر بیسیم

آموزش تخصصی انجام پایان نامه مهندسی کامپیوتر، شبکه حسگر بیسیم

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

پروپوزال مهندسی کامپیوتر ارائه چارچوب و مدلی برای امنیت داده های حجیم

پروپوزال مهندسی کامپیوتر ارائه‌ی یک روش تخصیص منابع جهت انتخاب طیف در شبكه­‌هاي  بي‌سيم راديوشناختی در محیطهای پویاچ

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

دانلود مطالب دانشگاهی

اگر برای هریک از موارد فوق نیاز به مشاوره رایگان دارید، همین الان با ما تماس بگیرید.