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


بهمن 1403
شن یک دو سه چهار پنج جم
 << <   > >>
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      


 

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

لطفا صفحه را ببندید کلیه مطالب این سایت فاقد اعتبار و از رده خارج است. تعطیل کامل

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

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

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

 

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

لطفا صفحه را ببندید کلیه مطالب این سایت فاقد اعتبار و از رده خارج است. تعطیل کامل

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

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

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

لطفا صفحه را ببندید

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

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

لطفا صفحه را ببندید

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

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

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

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



جستجو



  فیدهای XML
 



جدول۴-۲ : نتایج ارزیابی از نسخه های مختلف برنامه تحت تست ۱۰۶

 

 

جدول۴-۳ : تکنیک های اولویت بندی استفاده شده در این ارزیابی ۱۰۶

 

 

فهرست تصاویر و نمودار

 

 

شکل۲-۱:گراف متریک های کلی نرم افزار ۴۱

 

 

شکل۲-۲ : شبکه بیزی قلمرو دستگاه آژیر ۴۸
شکل۳-۲ : ارائه مفاهیم ساختاری به دو صورت معمول ۵۳
شکل۴-۲ : جواب به درخواست با محاسبه عبارت بهینه‌تر ۵۶
شکل۵-۲ : الگوریتم حذف متغیر ۵۷
شکل۶-۲ : الگوریتم نمونه‌گیری با رد کردن ۵۹
شکل۷-۲ : الگوریتم نمونه‌گیری وزن‌دار ۶۱
شکل۸-۲ : الگوریتم نمونه‌گیری وزن‌دار ۶۲
شکل۳-۱ : ماژول‌ های یک سیستم ساده نرم افزاری ۶۶
شکل۳-۲ : یک پیاده سازی عمومی برای چارچوب مبتنی بر شبکه‌ های بیزی ۶۹
شکل۳-۳ : گراف شبکه بیزی تست کارآمد نرم افزار ۷۵
شکل۳-۴ : پیاده سازی مدل تست کارآمد نرم افزار با استفاده ازنرم افزار Netica 86
شکل۳-۵ : شبه کد پر کردن جدول احتمال شرطی برای اهمیت ماژول با دو ویژگی فرعی ۸۸
شکل۳-۶ : شبه کد پر کردن جدول احتمال شرطی برای تعداد خطاها با سه ویژگی فرعی ۸۹
شکل۳-۷ : جدول احتمال شرطی تعداد موارد تست ۹۰
شکل۳-۸ : جدول احتمال شرطی تعداد خطاها ۹۱
شکل۳-۹ : جدول احتمال شرطی اهمیت ماژول ۹۲
شکل۳-۱۰ : جدول احتمال شرطی کارآمدی نهایی تست نرم افزار ۹۳
شکل۳-۱۱ : پیاده سازی مدل تست کارآمد نرم افزار بروی سیستم مدیریت پرونده های قضایی ۹۵
شکل۴-۱ : نمودار نرخ شناسایی خطا با روش BN برای اولویت بندی موارد تست ۱۰۰
شکل۴-۲ : نمودار نرخ شناسایی خطا با روش Orginal برای اولویت بندی موارد تست ۱۰۲
شکل۴-۳ : نمودار نرخ شناسایی خطا با روش Random برای اولویت بندی موارد تست ۱۰۳
شکل۴-۴ : نمودار مقایسه نتایج روش پیشنهادی با دو روش دیگر در نرخ شناسایی خطا ۱۰۴
فصل اول
مقدمه و کلیات تحقیق

 

دانلود کامل پایان نامه در سایت pifo.ir موجود است.

 

مقدمه

 

 

سیستم های نرم افزاری امروزه با فراگیر شدن در علوم مختلف نقش بسیار مهمی را در برطرف نمودن نیازها و خواسته‌های مشتریان ایفا می‌کنند و همچنین به عنوان یک جزء اصلی و لاینفک در امور روزمره به حساب می‌آیند. با گسترش روز افزون تولید سیستم های نرم افزاری همچنان تقاضا برای تولید سیستم های نرم افزاری جدید وجود دارد. بحث مهم بعد از تولید نرم افزارها نگهداری و ارتقاء آنها می‌باشد. وجود خطا و اشتباه در نرم افزارها می‌تواند منجر به خسارات زیادی از قبیل هزینه‌های مالی، زمانی، فیزیکی وحتی در برخی کاربردهای حساس و بحرانی مانند کاربردهای پزشکی، کنترل کننده موشک و کنترل کننده‌های ترافیک هوایی خسارت جانی را نیز به بار آورد. از این رو برای اینکه قابلیت اطمینان را در استفاده از سیستم های نرم اقزاری افزایش دهیم باید نرم افزار را مورد تست قرار دهیم. تست نرم افزار در توسعه سیستم های نرم افزاری از جایگاه مهم و با ارزشی برخوردار است. به خصوص در سیستم های نرم افزاری مقیاس بزرگ و پیچیده امروزی. زیرا فعالیت‌های تست هم زمان بر و هم هزینه بر هستند. نرم افزارها برای اینکه ارتقاء یابند می‌بایست توسعه داده شوند و نسبت به نسخه‌های اولیه رشد و تکامل یابند. یکی از فعالیت‌های مهم و هزینه بر در جهت ارتقاء نرم افزار تست نرم افزار است که انواع متفاوتی از تست برای بخش‌های مختلف و در زمانهای مختلف طراحی و ایجاد شده‌اند. تست فرآیندی است مخرب که محصول نرم افزاری را مورد حمله قرار می‌دهد تا اینکه خطا بروز کند. تست نرم افزار شامل تحقیق و بررسی بر روی نرم افزار تولید شده است که این تحقیق و برسی برای پیدا کردن خطاها انجام می‌شود. به طور کلی یک سری از سوال و جواب‌هایی هستند که نرم‌افزار را با آن امتحان می‌کنیم در حالی که از برنامه انتظار داریم با توجه به ورودی‌هایی که با استفاده از سوالات وارد می‌کنیم، جواب‌های صحیحی را به عنوان خروجی به دست دهد. آزمایش نرم‌افزار حیطه وسیعی از فعالیت‌های مربوط به تولید برنامه‌های رایانه‌ای را دربرمی‌گیرد که از آزمایش کردن کد برنامه توسط برنامه‌نویس گرفته تا نشان دادن عملکرد درست یک سیستم اطلاعاتی بزرگ به مشتری. سازمانها یا شرکت‌هایی که نرم افزارها را توسعه می‌دهند، محصولی به نام نرم افزار تولید می‌کنند. ولی چه عامل یا عواملی باعث می‌شوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته شود؟ عوامل متعددی را می‌توان نام برد که باعث این برتری و تمایز شود اما یکی از این عوامل می‌تواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد. اما برای رسیدن به این نقطه برتری، باید چگونه عمل کرد و اندیشید؟ یکی از پاسخ‌ها به این سوال بدون شک تست نرم افزار و نحوه انجام آن می‌تواند باشد.
اهمیت آزمایش نرم افزار و اثرات آن بر کیفیت نرم افزار نیاز به تأکید بیشتر ندارد.Deutch در این باره اینگونه بیان می‌نماید: توسعه سیستمهای نرم افزاری شامل یکسری فعالیت‌های تولید می‌باشد که امکان اشتباهات انسانی در آن زیاد است. خطاها در ابتدای یک فرآیند و مراحل توسعه بعدی آن ظهور می ‌نمایند. به دلیل عدم توانایی انجام کارها و برقراری ارتباط به صورت کامل، توسعه نرم افزار همواره با فعالیت تضمین کیفیت همراه است. آزمایش نرم افزار عنصری حیاتی از تضمین کیفیت نرم افزار می ‌باشد و مرور تقریبی مشخصه، طراحی، و تولید کد رانشان می ‌دهد. [۱]

 

 

۱-۱ – یک شیوه استراتژیک برای آزمایش نرم افزار

 

 

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

موضوعات: بدون موضوع  لینک ثابت
[جمعه 1399-09-21] [ 06:55:00 ب.ظ ]




 

۱-۶- بیان مسئله

 

 

از مشکلات اساسی در مورد تست نرم افزار و اولویت بندی موارد تست به موارد زیر می‌توان اشاره کرد :
ما نمی‌توانیم همه چیز را تست کنیم
سیستم نمی‌تواند به طور کامل تست شود
زیاد بودن تعداد موارد تست برای اجرا بر روی برنامه تحت تست
محدود بودن زمان و هزینه برای انجام تست

 

 

۱-۷- چالش موجود در تست رگرسیون

 

 

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

 

 

۱-۸- راه حل برای چالش موجود در تست رگرسیون

 

 

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

 

 

۱-۹- توجیه ضرورت انجام طرح

 

 

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

 

 

۱-۱۰- هدف از اجراء

 

 

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

 

 

۱-۱۱- نوآوری تحقیق

 

 

نوآوری موجود در رویکرد پیشنهادی ما عبارتند از: ۱- در نظر گرفتن ساختار برنامه در سطح ماژول که در روش‌های پیشنهادی قبل از این کار در سطح کلاس بوده است. ۲– در نظر گرفتن متریک های اثرگذاری خطای ماژول بر دیگر ماژول‌ها به همراه داده‌های در دسترس دیگر(نیازمندی‌های کاربر، اجراهای قبلی موارد تست ها، داده‌های تاریخی، اطلاعات تغییرات برنامه و نظرات افراد خبره در حوزه تست نرم افزار ) می‌باشد. ۳- استفاده از شبکه بیزی به کمک نظرات افراد خبره و داده‌های موجود برای انجام محاسبات می‌ باشد.
فصل دوم
ادبیات و پیشینه تحقیق

 

 

۲-۱- پیشینه تحقیق

 

 

۲-۱-۱- کارهای مرتبط

 

 

در این فصل، به زمینه‌های تحقیقاتی مربوط به موضوع این پایان نامه پرداخته شده است. برای بهبود فعالیت تست نرم افزار، محققان پیشنهاد کرده‌اند تکنیک های زیادی را جهت اولویت بندی موارد تست در سالهای اخیر. Wong و همکاران یک راه برای اولویت بندی موارد تست با توجه به معیار (افزایش هزینه بر پوشش اضافی) [۵]. Rothermel و همکاران یک تعریف رسمی از مشکل اولویت بندی مورد تست و ارائه متریک هایی برای اندازهگیری نرخ تشخیص خطا از مجموعه تست ارائه کرده‌اند. نویسندگان APFD را به عنوان معیاری برای نرخ تشخیص خطا و ارزیابی تجربی در کاتالوگ خودشان معرفی می‌ کنند [۶]. در مطالعات موردی بزرگ‌تر تکنیک ها با بیش از یک معیار ارزیابی می‌شوند. Kim و همکاران اولویت بندی موارد تست را تدوین و رابطه کردند بر اساس تئوری احتمال[۷]. تکنیک های زیادی برای تست پیشنهاد شده‌اند مانند کاهش مجموعه تست [۸] و اولویت بندی موارد تست [۹] . مطالعات تجربی انجام شده نشان می‌دهند که ، بیشتر تکنیک های اولویت بندی موارد تست در بهبود نرخ تشخیص خطا در تست رگرسیون مفید و موثر هستند. استفاده از روش بهینه سازی اجتماع مورچگان یک راه جدید برای حل مشکل محدودیت زمان اولویت بندی است. در این رهکار ارائه شده، هدف اولویت بندی در تست رگرسیون برای دوباره مرتب کردن مجموعه تست در محیط محدود است. ممکن است تکنیک های آگاه به زمان برای اولویت بندی موارد تست، نرخ تشخیص خطای بهتری نسبت به روش‌های سنتی اولویت بندی موارد تست دست یابد. رویکرد جدیدی را برای آگاه به زمان اولویت بندی موارد تست با استفاده از برنامه نویسی خطی عدد صحیح را پیشنهاد می‌کند. اولویت بندی موارد تست به چالشی در سیستم های نرم افزاری مبتنی بر مولفه شده است (CBSS) که تسهیل می‌کند توسعه سیستم های پیچیده را با یکپارچه سازی اجزای قابل استفاده مجدد. CBSSبه عنوان یک رویکرد ظهور کرده که توسعه سریع سیستم را با استفاده از منابع و تلاش کمتر ارائه می‌کند. ایده اصلی استفاده مجدد و کاهش هزینه‌های توسعه را می‌توان به دست آورد از اجزای ارائه خدمات قابل اعتماد. بنابراین، ادغام اجزاء و آزمایش تبدیل شدن به یک مرحله مهم در CBSS. در هدف تجزیه و تحلیل روش های اولویت بندی موارد تست موجود مبتنی بر کد، بر اساس نیازمندی و تکنیک های اولویت بندی مبتنی بر مدل و در نهایت پیاده سازی آنها در CBSS است [۱۰] .
در [۲۷] اولویت بندی موارد تست نرم افزار براساس شبکه های بیزی برای تست رگرسیون ارائه گردیده است. در رویکرد پیشنهاد شده، اطلاعات تغییرات در نرم افزار ، کد برنامه و مجموعه تست رگرسیون ورودی های مدل پیشنهاد شده را تشکیل می دهند. در ضمن این رویکرد برای تست رگرسیون ارائه شده و برای استفاده در تست غیر رگرسیون نمی توان از این رویکرد بهره برد. در این روش پس از ارزیابی و محاسبه متریک احتمال ابتلا به خطا ، تجزیه و تحلیل تغییرات کد برنامه و بررسی پوشش موارد تست، شواهد لازم برای ساخت شبکه بیزی استخراج می شوند و بر اساس اطلاعات بدست آمده ساختار گراف ایجاد می گردد. پس از ایجاد گراف در شبکه بیزی، استنتاج احتمالات صورت می گیرد و موارد تست بر اساس آن اولویت بندی می شوند. برای مدل پیشنهادی که مورد مطالعه قرار گرفته است می توان این نکته را بیان کرد، اینکه مدل پیشنهادی با توجه به استفاده از شبکه بیزی دارای یک نقص می باشد و آن هم اینکه فقط برای تست رگرسیون می توان از آن استفاده کرد و برای تست غیر رگرسیون کاربرد ندارد.
در[۳۱] اولویت بندی بر اساس تجزیه تحلیل ساختار برنامه برای تست رگرسیون و هم تست غیر رگرسیون ارائه شده است. مدل ارائه شده مشکل موجود در رویکرد ارائه شده در [۲۷] را حل کرده است. اینگونه که مدل خود را در سطح ماژول ها ارائه کرده است و بر اساس ساختار برنامه به اولویت بندی کردن موارد تست می پردازد. در این روش با بکار گیری روش های فراخوانی گراف روابط بین ماژول ها را مشخص می کند و بعد از این مرحله معیارها و متریک هایی را برای وزن دهی به هر یک از متریک ها در نظر می گیرد. ورودی این مدل را ساختار برنامه و مجموعه تست تشکیل می دهند. در مدل پیشنهاد شده، از مجموعه تست برای سنجش اینکه موارد تست چه میزان از برنامه تحت تست را پوشش می دهند استفاده می شود. در نهایت اطلاعات حاصل از مرحله تجزیه و تحلیل پوشش موارد تست نرم افزار و محاسبه متریک ها، اطلاعات مورد نیاز جهت اولویت بندی موارد تست در خروجی بدست می آیند. از موارد مهمی که در این مدل بایستی بهبود داده شوند این موارد قابل ذکر می باشند. اول اینکه عدم قطعیت در این مدل نادیده گرفته شده است و بایستی در مدل حتماَ گنجانده شود. متریک های در نظر گرفته شده می تواند متعدد باشد و همچنین شدت خطاهای شناسایی شده باهم یکسان نمی باشند.
در [۳۷] اثر محدودیت های زمانی در مورد اولویت بندی موارد تست مورد بررسی قرار گرفته است. ورودی های این مدل عبارتند از : داده های پوشش تست،اطلاعات تغییر کد ، داده های متریک کیفیت و مجموعه های تست. در این مدل از سه گروه از تکنیک های تست استفاده شده است. گروه های استفاده شده عبارتند از : تکنیک های کنترل ، تکنیک های بدون بازخورد و تکنیک های با مکانیزم بازخورد. از بین تمامی مجموعه های تست موجود نرخ شناسایی همگی محاسبه می گردد و مجموعه تست ای که نرخ شناسایی خطای در آن از بقیه بیشتر است انتخاب می گردد و سپس اطلاعات تشخیص خطای حاصل از آن به عنوان ورودی به مدل های هزینه – فایده داده می شود تا اینکه تعیین گردد در مواقعی
که در محدودیت زمانی اجرا می شوند نرخ شناسایی خطای قابل قبولی را ارائه می کنند. نتایج حاصله از آزمایشات انجام گرفته در این تحقیق نشان دهنده این موضوع می باشد که استفاده از شبکه های بیزی در اولویت بندی موارد تست نتایج مطلوبی را بدست می دهند.در [۳۹] ساخت مدل های شبکه بیزی از عدم قطعیت های موجود در تست و نگهداری نرم افزار صورت گرفته است. عدم قطعیت در مهندسی نرم افزار که بطور گسترده در تائید ، ارزیابی و پیش بینی دیده می شود. عدم قطعیت در مهندسی نرم افزار ذاتی و اجتناب ناپذیر است. عدم قطعیت در خصوص تجزیه تحلیل نیازمندی های کاربر هم یکی از بحث های مهم در حوزه مهندسی نرم افزار می باشد. در این روش از شبکه های بیزی باور الهام گرفته شده است و برای مدل کردن عدم قطعیت موجود در هر یک از فازهای مهندسی نرم افزار استفاده کرده است.

 

 

۲-۱-۲- بررسی مشکلات موجود در روش‌های مطالعه شده قبلی

 

 

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

 

 

– تست نرم افزار ۲-۲

 

 

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

 

 

۲-۳- صحت و اعتبار سنجی

 

 

آزمایش نرم افزار یک عنصر از عنوان گسترده تری است که اغلب با صحت و اعتبار سنجی V&V [۴] شناخته می‌ شود. صحت اشاره به مجموعه فعالیت‌هایی دارد که مطمئن می‌سازند نرم افزار به درستی یک تابع خاص را پیاده سازی می‌نماید. اعتبارسنجی اشاره به مجموعه ای متفاوت دارد که مطمئن می ‌سازند نرم افزاری که ایجاد شده منطبق بر نیازهای مشتری است. Boehm این مطلب را اینگونه بیان می ‌کند:

موضوعات: بدون موضوع  لینک ثابت
 [ 06:55:00 ب.ظ ]




۲-۱۱- طراحی نمونه‌های آزمایش

 

 

طراحی آزمایش‌هایی برای نرم افزار و محصولات مهندسی دیگر می ‌تواند به اندازه طراحی اولیه خود محصول متغیر باشد. با این وجود، مهندسین نرم افزار اغلب با آزمایش به عنوان فعالیتی نهایی برخورد می‌نمایند، و نمونه های آزمایشی طراحی می ‌کنند که ظاهرًا درست هستند اما اطمینان کمی از کامل بودن آنها وجود دارد. اهداف آزمایش را به خاطر آورید، بر اساس آنها آزمایش‌هایی باید طراحی شوند که احتمال بالایی برای یافتن اکثر خطاها، با حداقل مقدار زمان و فعالیت داشته باشند. مجموعه ای غنی از روش‌های طراحی نمونه‌های آزمایش برای نرم افزار تکامل یافته ‌اند . این روش‌ها برای توسعه دهنده، روشی سیستماتیک را برای آزمایش فراهم می ‌کنند. مهم‌تر اینکه، این روش‌ها مکانیزمی را فراهم می‌ کنند که به اطمینان از کامل بودن آزمایش‌ها کمک می ‌کند و احتمال بالایی برای کشف خطاهای نرم افزاری را نیز تضمین می ‌نمایند.
هر محصول مهندسی و اکثر چیزهای دیگر می‌تواند به یکی از این دو روش زیر آزمایش شود:
با دانستن تابع خاصی که یک محصول برای انجام آن طراحی شده، آزمایش‌هایی طراحی می‌ شوند که مشخص کنند هر تابع کاملاً عملیاتی است در حالیکه در عین حال در هر تابع برای یافتن خطاها جستجو نیز انجام می ‌گیرد (آزمایش جعبه سیاه).
با دانستن عملکرد داخلی محصول، آزمایش‌ها به گونه ای طراحی می ‌شوند که تعیین نماید اعمال داخلی مطابق با مشخصه ‌ها انجام می‌شوند و تمام مؤلفه ‌های داخلی به طور مناسبی آزمایش می ‌گردند(آزمایش جعبه سفید). [۱۵]

 

دانلود کامل پایان نامه در سایت pifo.ir موجود است.

 

۲-۱۱-۱ تست جعبه سیاه[۷]

 

 

تست با هدف نشان دادن این که هر وظیفه ‌مندی به درستی انجام می‌شود و نیز یافتن خطاها در زمینه وظیفه ‌مندی را تست جعبه سیاه می‌ گویند.

 

 

۲-۱۱-۲ تست جعبه سفید [۸]

 

 

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

 

 

۲-۱۱-۳ آزمایش ساختارکنترل

 

 

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

 

 

۲-۱۱-۴ آزمایش واحد

 

 

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

 

 

۲-۱۱- ۵ خطاهای متداول محاسبه که اغلب مشاهده می‌ شوند

 

 

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

 

 

۲-۱۲- آزمایش یکپارچه سازی[۹]

 

 

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

 

 

۲-۱۳- آزمایش رگرسیون (Regression Testing)

 

 

تجربه نشان داده است که به عنوان نرم افزار ثابت یا تکمیل شده، ظهور جدید یا ظهور مجدد خطاهای قدیمی کاملاَ رایج است. گاهی اوقات ظهور مجدد رخ می‌دهد به دلیل اینکه رفع آنها از طریق شیوه‌های کنترل ضعیف یا خطاهای ساده انسانی در کنترل روی می‌دهند. تست رگرسیون به طور قابل توجهی از سوی دانشگاهیان و افراد شاغل در زمینه تست نرم افزار در طول بیست سال گذشته کانون توجه قرار گرفته است. حتی استفاده از تکنیک های تست رگرسیون اغلب منجر به محصول نرم افزاری با کیفیت بالا شده است، اما اجراهای مکرر موارد تست می‌تواند بسیار پر هزینه باشد که نیمی از هزینه نگهداری سیستم نرم افزاری را به خود اختصاص می‌دهد. هردفعه که پیمانه جدیدی به عنوان بخشی از آزمایش یکپارچه سازی افزوده می ‌شود، نرم افزار تغییرمی‌کند. مسیرهای جریان داده‌ی ایجاد می‌شوند ، I/O جدیدی ایجاد میگردد، و منطق کنترل جدیدی فراخوانی می‌ شود . این تغییرات ممکن است باعث بروز مشکلاتی با توابعی شوند که قبلاً بدون خطا کار می‌ کردند . در رابطه با استراتژی آزمایش یکپارچه سازی، آزمایش رگرسیون، اجرای مجدد زیر مجموعه ای از آزمایش‌هایی است که قبلاً انجام شده‌اند تا اطمینان حاصل شود که تغییرات، باعث انتشار اثرات جانبی ناخواسته نشده ‌اند. در محدوده وسیع‌تر، آزمایش‌های موفقیت آمیز (ازهرنوع) باعث کشف خطاها می ‌شوند، و خطاها باید اصلاح شوند. هر زمانیکه نرم افزار اصلاح می‌شود، جنبه ای از پیکر بندی نرم افزار (برنامه، مستندات، یا داده‌هایی که آنها را حمایت می ‌کنند ) تغییر می ‌نماید .آزمایش رگرسیون می‌تواند به صورت دستی هدایت شود . این عمل با اجرای مجدد زیر مجموعه ای از تمام نمونه‌های آزمایش، با استفاده از ابزارهای خودکارCapture/Playback انجام ‌شود. ابزارهای Capture/Playback باعث می ‌شوند مهندس نرم افزار نمونه‌های آزمایش را دریافت کند و با حرکت به عقب، مقایسه‌هایی را انجام دهد .[۱۶]
مجموعه آزمایش رگرسیون (زیرمجموعه ای از آزمایش‌هایی که باید انجام شوند) شامل سه رده متفاوت از نمونه‌های آزمایش می ‌باشد :
نمونه‌هایی از آزمایش‌هایی که تمام عملکرد نرم افزار را بررسی می ‌نمایند.

موضوعات: بدون موضوع  لینک ثابت
 [ 06:55:00 ب.ظ ]




 

۲-۱۴- متدولوژی های مربوط به تست رگرسیون

 

 

در این بخش چهار روشی را که به تست رگرسیون مربوط اند بررسی می‌کنیم و هر یک را جداگانه شرح می‌دهیم. این روش‌ها عبارتند از :
۱- Retest all اجرای مجدد همه‌ی تست ها
انتخاب تست رگرسیون Regression Test Selection2-
کاهش مجموعه تست Test Suite Reduction3-
اولویت بندی موارد تستTest Case Prioritization4-

 

 

۲-۱۴-۱- اجرای مجدد همه‌ی تست ها (Retest all)

 

 

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

 

 

۲-۱۴-۲- انتخاب تست رگرسیون (Regression Test Selection)

 

 

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

 

 

۲-۱۴-۳- کاهش مجموعه تست (Test Suite Reduction)

 

 

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

 

 

۲-۱۴-۴- اولویت بندی موارد تست (Test Case Prioritization)

 

 

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

 

 

۲-۱۵- اولویت بندی

 

 

۲-۱۵-۱- مقدمه ای بر اولویت بندی

 

 

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

 

 

۲-۱۵-۲- معیارهای اولویت دهی

 

 

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

 

 

۲-۱۵-۳- اولویت بندی موارد تست

 

 

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

 

 

۲-۱۶- متریک

 

 

۲-۱۶-۱- مقدمه ای برای متریک

 

 

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

 

 

۲-۱۷- متریک های تست نرم افزار

 

 

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

 

 

۲-۱۷-۱- خواص متریک ها در شرایط ایده آل

 

 

ساده و قابل محاسبه باشند.
از نظر تجربی و شهودی ترغیب کننده باشند.
سازگاری و دست یافتنی

موضوعات: بدون موضوع  لینک ثابت
 [ 06:55:00 ب.ظ ]




 

۲-۱۸- معیار و متریک در تست نرم افزار

 

 

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

 

 

۲-۱۸-۱- مراحل انجام کار در فرایند اندازه گیری

 

 

کسب مقیاس‌های نرم افزار
رابطه کردن داده‌ها
تحلیل متریک مناسب
تحلیل نتایج به دست آمده
حصول شناخت از کیفیت محصول نرم افزاری [۱۷]

 

 

۲-۱۹- متریک های آزمون

 

 

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

 

 

۲-۲۰- مزایای استفاده از متریک ها

 

 

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

 

 

۲-۲۱- شبکه‌های بیزی

 

 

۲-۲۱-۱- استنتاج با استفاده از توزیع توام کامل

 

 

ساده‌ترین روش استنتاج از توزیع توام کامل[۱۰] استفاده می‌کند که با یک مثال ساده آن را توضیح می‌دهیم. یک قلمرو را در نظر بگیرید که تنها شامل سه متغیر بولی Toothache، Cavity و Catch می‌باشد. Toothache نشان دهنده دندان درد، Cavity نشان دهنده سوراخ بودن دندان و Catch نشان دهنده گیر کردن ابزار دندان پزشک در دندان می‌باشد. توزیع توام کامل یک جدول ۲×۲×۲ است که در جدول(۲-۱) دیده می‌شود.
جدول ۲-۱: توزیع یک قلمرو ساده.

موضوعات: بدون موضوع  لینک ثابت
 [ 06:54:00 ب.ظ ]