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

 

 

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

 

 

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

 

 

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

 

 

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

 

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

 

مقدمه

 

 

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

 

 

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

 

 

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

موضوعات: بدون موضوع  لینک ثابت