وبلاگ

توضیح وبلاگ من

پژوهش های پیشین با موضوع ارائه یک روش تولید خودکار داده های ورودی برای تست جهش- فایل ۷

 
تاریخ: 04-08-00
نویسنده: فاطمه کرمانی

تغییر توصیف کننده­ تابع (Modifier method change)

 

 

 

تکینک­های کاهش هزینه
در روش­های سنتی برای کاهش هزینه­ تست، ابتدا برنامه جهش یافته از روی کد برنامه­ی اصلی ایجاد شده سپس به صورت جداگانه با ورودی­های تست کامپایل می­ شود و در نهایت نتایج خروجی بدست آمده از آن­ها با یکدیگر مقایسه می­شد. اگرنتایج بدست آمده، متفاوت بود جهش از میان رفته بود و در غیر این صورت باید فرایند جستجو برای جهش برابرآغاز می­شد که انجام این فرایند، نیازمند تلاش انسانی و صرف هزینه می­شد. به همین دلیل تا قبل از آن­که تکنیک­هایی برای خودکارسازی فرایند تست عرضه شود این روش، به عنوان یک روش گران قیمت و ناکار آمد شناخته می­شد تا آن زمان که تکنیک­های کاهش هزینه را به سه دسته­ی انجام کمتر، انجام هوشمندانه و انجام سریع­تر تقسیم شد [۱۱]. در این پایان نامه، مشابه [۲] آن­ها را به دو دسته­ی تولید کمتر جهش و کاهش هزینه­ اجرا تقسیم می­کنیم. همان­طور که در شکل(۲-۲) [۲] (که حاصل بررسی ۳۹۰ مقاله است) مشاهده می­ شود تاکنون تکنیک­های جهش انتخابی و جهش ضعیف در مقایسه با سایر روش­ها بیشتر مورد توجه بوده است.( سایر روش­ها اغلب حاصل کمتر از ۵ مقاله بوده است.)
پایان نامه - مقاله - پروژه
شکل(‏۲‑۲): درصد استفاده­ی مقالات از تکنیک­های کاهش هزینه [۲]
تولید جهش کمتر
یکی از ابتدایی ترین روش­های کاهش هزینه، تولید جهش کمتر است. زیرا هر چه تعداد جهش­های موجود در کد برنامه بیشتر باشد به­ همان نسبت نیاز به تولید داده ­های تست بیشتری داریم این کار هزینه بر است اما از طرف دیگر کاهش تعداد جهش­ها ممکن است اثر بخشی فرایند تست را پایین بیاورد. در این زمینه تلاش شده تا ضمن حفظ یا کاهش حداقل اثر بخشی تعداد جهش­ها را نیز کاهش داد. در زیر به چند روش اشاره می­کنیم:
نمونه برداری از جهش­ها: در این روش، تمرکز بر پیدا کردن مجموعه ­ای از موارد تست است که با وجود موارد تست کمتر معیار پوشش را حفظ کند. در اینجا لازم است کمی در مورد معیار پوشش توضیح دهیم: هر کد برنامه را می­توان به صورت یک گراف نمایش داد که هر گره ی آن، بخشی از کد است که قابلیت اجرا در یک واحد زمانی را داشته باشد. از طرف دیگر یال­ها نیز نحوی ارتباطات این گره­ها با یکدیگر را نشان می­ دهند. در هرگراف، مسیرهایی وجود دارد که دنباله­ای از گره­ها را شامل می­ شود. هر مسیر، شامل چندین زیر مسیر است که برخی از آن­ها مسیر تست هستند. مسیرهای تست مسیرهایی هستند که از گره آغازین گراف شروع و به گره پایانی آن ختم می­شوند. در هر بار فرایند تست، تنها یکی از مسیرهای تست اجرا خواهد شد. پس در حقیقت داده ­های ورودی که بتواند مسیرهای تست بیشتری را اجرا کند، بهتر خواهد بود. برای پوشش، به طورکلی دو معیار وجود دارد: ۱- ساخت­یافته ۲-جریان داده، معیارهای ساخت­یافته تنها برروی گرافی تعریف می­شوند که شامل گره و یال است و می­توان به عنوان مثال به معیارهای NC [۱۶](پوشش تمامی گره­های گراف) EC [۱۷](پوشش تمامی یال­های گراف) و… . معیار جریان داده ­ها تنها برروی گراف­هایی، قابل تعریف است که در آن منبع هر متغییر ذکر شده باشد. هدف این معیار ردگیری محل تعریف def [۱۸]و استفاده­ی use متغییرها، جهت کسب اطمینان از استفاده­ی درست از آن­ها استdef (n). و def (e) به متغییرهایی گفته می­ شود که در یال e و یا گره n تعریف می­شوند و متقابلا use (n) و use (e) به متغییرهایی گفته می­ شود که در گره n و یا یال e استفاده می­شوند.

 

 

  • Horgan [12] با ایجاد مجموعه­ تست­های کمینه­ سعی در کاهش هزینه تست دارد بگونه­ای که در عین کاهش تعداد موارد تست بتوانند کیفیت تست را ثابت نگاه دارد. در این تحقیق برای تولید مجموعه تست­های کمینه از ابزاری به نام ATACMIN استفاده می­ شود که با بهره گرفتن از آن در ابتدا برای ۱۰۰۰ جهش مورد تست، تولید می­ شود سپس آن­ها را براساس پوشش بلاک­ها در دسته­های (۵۰-۵۵)% ، (۶۰-۶۵)%، (۷۰-۷۵)%، (۸۰-۸۵)% و (۹۰-۹۵)% قرار می­گیرند پس از بررسی­هایی که بر روی ۱۰ نرم­افزار انجام شد چهار نتیجه دست آمد که عبارت است از:

 

 

 

 

 

  • کاهش اثر بخشی: کاهش مقدار اثر بخشی بر اثر کاهش کمینه سازی دسته های تست (۵۰-۵۵)% ، (۶۰-۶۵)%، (۷۰-۷۵)%، (۸۰-۸۵)% و (۹۰-۹۵)% به ترتیب برابر است با: ۰%، ۰٫۰۳%، ۰٫۰۱%، ۰٫۳۸%و۱٫۴۵% است که این مقدار در کاهش اثر بخشی قابل چشم پوشی است.

 

 

 

  • کاهش اندازه: کاهش اندازه برای هر دسته­ تست (۵۰-۵۵)% ، (۶۰-۶۵)%، (۷۰-۷۵)%، (۸۰-۸۵)% و (۹۰-۹۵)% به ترتیب برابر است با: ۱٫۱۹%، ۴٫۴۶%، ۷٫۷۸%، ۱۷٫۴۴% و ۴۴٫۲۳% است که در برابر کاهش اثر بخشی ناچیز آن، قابل توجه است.

 

 

 

  • تاثیر سختی نقص­هادر این بخش نویسنده به بررسی ارتباط میان نقص­های پیچیده و کمینه سازی مجموعه تست پرداخته است. برای این کار در ابتدا نقص­ها را به چهار دسته از ۱تا۴ به از پیچیده تا ساده تقسیم می­ کند و نشان می­دهد کاهش اثر بخشی برای هر دسته به ترتیب ۰٫۳۹%، ۰٫۶۶%، ۰٫۰۹۸% و ۰% است این مساله نشان می­دهد نقص­هایی که توسط تعداد محدود
    ی از موارد تست کشف می­ شود ممکن است در صورت کاهش مجموعه­ تست قابل کشف نباشند. در این مورد نیز کاهش اثر بخشی آنقدر نیست که قابل ملاحظه باشد [۱۳].

 

 

در روش دیگر از روش­های تصادفی برای انتخاب بخشی از داده ­های تست مناسب استفاده می­ شود (به عنوان مثال از ۱۰% تا ۴۰% از داده ­های تست را انتخاب می­ شود) سپس با انجام آزمایش­های مختلف به این نتیجه می­رسد که برای پوشش تمام معیارها، تنها کمتر از ۱۴% درصد تمام موارد تست نیاز است [۱۴].
روش دسته­بندیایده­ اصلی این روش ابتدا توسط S. Hussain[15] مطرح شد در این روش جهش­های تولید شده را براساس ویژگی­های مشترک دسته­بندی می­شوند سپس از میان آن­ها چند جهش انتخاب شده و برای هر دسته به طور مجزا داده ­های تست تولید می­ شود. برای دسته­بندی جهش­های پنج برنامه­ از دو روش K-means ، Agglomerative (که در فصل ضمایم توضیح داده شده ­اند) و کد فاصله همینگ استفاده شده است. با بهره گرفتن از این فاصله می­توانیم فاصله­ی بین جهش­ها را اندازه ­گیری کرده و جهش­های مشابه را در یک دسته قرار دهیم برای این کار به عنوان مثال سه جهش و به صورت جدول(۲-۳) در نظر بگیرید.
جدول(‏۲‑۳): سه جهش و [۱۵]

 

 

۱

 

۰

 

۱

 

۰

 

۰

 

۱

 

۱

 

M1

 

 

 

۰

 

۰

 

۱

 

۱

 

۱

 

۱

 

۱

 

M2

 

 

 

۰

 

۰

 

۱


فرم در حال بارگذاری ...

« راهنمای نگارش پایان نامه و مقاله درباره : چگونگی ابطال رأی داوری- فایل ۸منابع تحقیقاتی برای نگارش مقاله آثار تسلیم و تسلم در مبیع کلی »