اصول و مبانی آزمون نرم افزار

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


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

اهداف اصلی آزمون

1- آزمون،فرآیند اجرای یک برنامه به قصد یافتن خطاها ست.

2- یک مورد آزمون خوب آن است که به احتمال بالا یک خطای کشف نشده را بیابد.

3- یک آزمون موفق،آزمونی است که یک خطای نامشخص را بیابد.

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


اگر آزمونی با موفقیت صورت گرفت(طبق اهداف بیان شده فوق)،آن وقت خطاهایی در نرم افزار پیدا می شوند.

آزمون نشان می دهد که عملیات نرم افزاری طبق مشخصه منظور شده،عمل می کند.

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

اصول آزمون

  • تمام آزمونها باید تا رسیدن به نیازمندیهای مورد نظر مشتری و مصرف کننده،قابل پیگیری باشد.
  • آزمونها باید مدت طولانی قبل از شروع آن، برنامه ریزی شوند.این کار را می توان به محض تکمیل شدن مدل شرایط مورد نظر، شروع نمود.
  • به کارگیری اصل پارتو در مورد آزمون نرم افزار که 80 درصد تمام خطاهای نرم افزاری مشخص شده در طول آزمون احتمالا در 20 درصد از تمام جزء های برنامه قابل پیگیری هستند. البته مسئله این است که این جزء های مورد شک را جدا کرده و آنها را کاملا آزمود.
  • آزمون باید از جزء شروع شده و کم کم به طرف آزمونهایی در سطح وسیع برسد.
  • آزمونهای جامع و فراگیر ممکن نیست.
  • برای این که آزمون بیشترین تاثیر را داشته باشد، باید توسط یک شخص ثالث مستقل صورت گیرد.

آزمون پذیری

مطمئنا متریک هایی مهمی وجود دارند که می توان از آنها برای ارزیابی آزمون پذیری در اکثر جنبه ها استفاده نمود.

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

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

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

ویژگی آزمون های خوب

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