بخشی از مقاله


بکار گیری محاسبات نرم برای تست نرم افزار های شی گرا

چکیده

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


واژههای کلیدی : الگوریتم ژنتیک ، ژنتیک_فازی ، محاسبات نرم ، فازی ،تست نرم افزار ،نرم افزارشی گرا


1

-1 مقدمه

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

-2 تست نرم افزار

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

-1 جمع آوری داده

-2 تجزیه و تحلیل داده ها

-3 طراحی

-4 تست

-5 پیاده سازی

تست محصول شامل عملیات بررسی برای وجود خطای عملیاتی و غیر عملیاتی است. خطای غیر عملیاتی، بر روی مدل نرم افزار قابل بررسی است و در نتیجه طراحی غیر صحیح به وجود می آید. این نوشتار بر روی خطاهای عملیاتی کهعموماٌناشی از پیاده سازی غیرصحیح است متمرکز می شود. عواملی که ممکن است در به وجود آمدن خطا موثر باشند عبارتند از:

• حلقه

• شرط

• پرش

• فراخوانی

• ارسال پارامتر

• و...


2

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

• وراثت

• ارتباط(تناظر)

• فراخوانی برون کلاس

• پارامتر های پیچیده(ارسال کلاس به عنوان پارامتر)

• پیاده سازی واسط

• و...

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

-3 ابزارمدل سازی نرم افزار

یکی از ابزارهای مدلسازی نرم افزار از طریق عمومی ترین زبان مدلسازی (UML) ، نرم افزار Rational Rose Enterprise می باشد. این نرم افزار سرعت و دقت عمل مدل سازی محصول را بالا می برد. به کمک این نرم افزار میتوانید به راحتی به آنالیز و مدل سازی محصولات تهیه شده به زبان های C++، ANSI C++، Visual C++، CORBA، Java، Visual Basic بپردازید. این زبان مدل سازی حاوی نمودارهای مختلفی است. مهمترین آنها، نمودار کلاس دیاگرام است که کلاس های موجود در سیستم و ارتباط بین آنها را مدل میکند. اجزای این نمودار، کلاس و ارتباط هستند. شی کلاس در قالب یک سه تایی نمایش داده می شود. سه تایی مورد نظر نشان دهنده هویت، اعمال و صفات کلاس است. ارتباط می تواند تناظر، تجمیع و ترکیب باشد. شکل 1 نمونه یک کلاس دیاگرام است.

شکل (1) کلاس دیاگرام نمونه حاوی 4 کلاس و سه ارتباط

عوامل خطازا شامل بخشی از اطلاعات یک کلاس دیاگرام می باشند . لذا اطلاعات دیگر را از روی کد یا دیگر نمودار ها

همچون نمودار توالی و ... قابل استخراج هستند( سینگ کالودیندر ، .(2010

از آنجا که اطلاعات توسط الگوریتم ژنتیک و ژنتیک فازی بررسی شده اند، مسئله را در قالب یک آرایه مدل کرده ایم.

لذا کلاس ها را در قالب سطر و عوامل در قالب ستون ارائه نمودیم. شکل 2 می تواند نمایی از مدل پیشنهادی باشد.

معیار n ام . . . . . . . . . . . معیار سوم معیار دوم معیار اول

شکل (2) ماتریس مدل مسئله

4

-4 الگوریتم ژنتیک

الگوریتم ژنتیک روشی بهینه برای حل مسائل بهینه سازی میباشد و همچنین روشی ساده و سریع است و میتواندجایگزین روش های دیگر شود. این الگوریتم میتواند ما را به حل بهینه ای برساند که با روشهای دیگر امکان پذیر نیست.(سونکرسانجی کاومر،(2012 الگوریتم ژنتیک یک حلقه تکرار است که مراحل محاسبه برازندگی برای کل کروموزوم ها را انجام می دهد. کروموزوم

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

· رسیدن به تعداد نسل دلخواه

· رسیدن به زمان دلخواه

· رسیدن به نتیجه بهینه(یا به اندازه کافی دلخواه)

· عدم بهبود برای چند نسل پیاپی

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

-1-4 اجزای الگوریتم ژنتیک

· عملگر انتخاب: دو کروموزم والد یا (مادر) ازمیان جمعیت بر اساس میزان سازگاری آنها انتخاب می کنیم.

· عملگر ترکیب: کروموزم های والد انتخابی رابا استفاده از یکی از روش های تقاطع ترکیب و دو فرزند جدید به وجود می آوریم.

· عملگر جهش: با این روش کروموزم فرزند جدید با احتمال تعیین شده به وجود می آیند.( سید مصطفی،(1389

در شبه کد زیر مراحل عملکرد الگوریتم ژنتیک نشان داده شده است .


-5 تابع فازی ساز

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

طراحی کنترل کننده فازی

مرحله اول: بدست آوردن مجموعه ای از قواعد اگر _آنگاه مرحله دوم : پیدا کردن مجموعه ای از متغیرهای زبان شناختی در عبارات
مرحله سوم : نگاشت درجه تعلق متغیر به اعداد حقیقی با استفاده از ترسیم تابع عضویت (ارزیابی قوانین و تعیین میزان درستی آنها ، با انتساب مقادیر حقیقی) مرحله چهارم :ترکیب قواعد در یک سیستم واحد

در شبه کد فازی طبق روش طراحی فازی که بیان شد مرحله اول مجموعه ای از قواعد اگر_آنگاه را مشخص نموده است. و سپس مجموعه ای از متغیرهای زبان شناختی عبارات Very Bad ،Bad ، Average،Good ، Great که بعنوان محدوده جواب معرفی شده اند.


For all fitnesses if Fitness[i] < minFitness+interval then

set fuzzyFitness(i) Very bad else if Fitness[i] < minFitness + 2 * interval then
set fuzzyFitness(i) bad else if Fitness[i] < minFitness + 3 * interval then

set fuzzyFitness(i) Average else if Fitness[i] < minFitness + 4 * interval then

set fuzzyFitness(i) Good else
set fuzzyFitness(i) Great loop

6

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید