معیارهای تست پذیر بودن نرمافزار:
1قابلیت اجرا Operability – هرچه نرمافزار بهتر کار کند و در محیطهای بیشتری قابل اجرا باشد، بهتر قابل ارزیابی است.
2مشاهدهپذیری Observability – قابلیت مشاهده نتایج ارزیابی
3کنترلپذیری Controlability – قابلیت اجرای تستهای خودکار (مثل امکان اجرای خودکار تستهای واحد توسط jUnit برای زبان جاوا)
4تجزیهپذیری Decomposability – ارزیابی میتواند هدفمند تر شود.
5سادگی Simplicity – کاهش پیچیدگی معماری و منطق برنامه
6پایداری Stability – برای ارزیابی تغییرات کمی بخواهد.
7درکپذیری Understandability – قابلیت درک طراحی و وابستگیهای بین اجزا
ریسک نرم افزار
امروزه بسیاری از کارها در زندگی شخصی، صنعت، امور نظامی و غیره به نرم افزارها سپرده شده است. گاهی یک اشتباه کوچک نرمافزاری میتواند سبب خسارات جبران ناپذیری شود. برای تشریح موضوع به چند نمونه اشاره میگردد.
2.1در سال 1994 خطای محاسبات اعشاری در پردازنده پنتیوم شرکت اینتل، علاوه بر کاهش فروش آن، اعتبار شرکت را تا مدتی خدشهدار کرد.
2.2 سال 1998 مدار گرد مریخ به دلیل یک خطا در محاسبات نرم افزاری، در جهت اشتباهی وارد اتمسفر مریخ شده و منفجر گردید. 327 میلیون دلار صرف این پروژه شده بود.
203واحد ممیز شناور اندازهگیری شتاب افقی این ماهواره بر بود. 7 میلیارد دلار و 10 سال زمان برای ساخت این ماهواره بر هزینه شده بود. همچنین باری که این ماهواره بر حمل میکرد، 500 میلیون دلار ارزش داشت.
تنها 26% از پروژه های نرم افزاری دنیا با موفقیت اجرا میشوند. معیار های موفقیت پروژه عبارتنداز:
اتمام به موقع با بودجه تعیین شده با تمام قابلیتها و عملکردهای مورد نظر، با تمام قابلیتها و عملکردهای مورد نظر بدون خطا (با خطای جزئی)
-بسیاری از پروژههای تولید نرم افزار با شکست مواجه میشوند، هزینه بالایی صرف پروژههای شکست خورده میگردد.
-در آمریکا، بیش از 81 میلیارد دلار صرف پروژههای شکست خورده میشود.
-در انگلیس، بیش از 33 میلیارد دلار صرف پروژههای شکست خورده میشود
نسلهای مختلف تست نرم افزار
با گذشت زمان و پیشرفت صنعت نرم افزار، تست نرم افزار نیز تحولات بسیاری داشته است، بر همین اساس تست نرم افزار را میتوان در سه نسل دستهبندی کرد:
1 نسل اول (دهه هفتاد میلادی)
تست=رفع خطا(debug)
2نسل دوم (دهه هشتاد میلادی)
تست یک فعالیتی است که در انتهای چرخه حیات نرم افزار و به منظور شناسایی خطا انجام میشود
3 نسل سوم (قرن بیست و یکم)
تست یک فرایندی است موازی با فرایند تولید (شامل چهار فاز) که به منظور سنجش و بهبود کیفیت نرم افزار استفاده میشود.