در این مقاله قصد داریم نگاه عمیقتری به تست نرم افزار، شیوهها و کاربردهای آن داشته باشیم. اگر بخواهیم از تست نرم افزار تعریفی ساده داشته باشیم میتوان گفت" تست نرم افزار فرآیند اجرای یک برنامه کاربردی با هدف پیدا کردن اشکالات و متعاقبا بهبود کیفیت نرم افزار است". تست نرم افزاربه عنوان یک فرایند کلیدی در تضمین کیفیت نرم افزار سیستمهای نرم افزاری ایفاء نقش میکند. در حال حاضر تست به عنوان یک صنعت در حوزه نرمافزار محسوب میشود.
در سالهای اخیر آمارهای شگفت آوری از سوی موسسه (NIST(National Institute of Standards and تست نرم افزارTechnologyدرباره شکست سیستمهای نرم افزاری ارائه شده است. در کشور ایالات متحده، این شکستها سالیانه حدود 59.5 میلیارد دلار به اقتصاد این کشور صدمه میزند. طبق بررسیهای انجام شده با بکارگیری تست نرم افزار در تمام فازهای تولید نرم افزار 22.2 میلیارد دلار از این خسارت را میتوان کاهش داد. طبق آمارهای ارائه شده از سوی موسسه (IDC(International Data Corporation، چهل درصد از بودجه نرم افزارها صرف تست آن میگردد.در کشور ما نیز، با توجه به رشد فناوری اطلاعات و ارتباطات در طی چند سال گذشته و تولید بومی بسیاری از نرم افزارهای مورد نیاز، نیاز به این فرایند بیش از پیش احساس شده و در صورت عدم توجه به آن، کاهش کیفیت سیستمهای ارائه شده، عدم رضایت مشتری و در نهایت از دست دادن بازار را به همراه خواهد داشت.

ریسک نرم افزار در تست نرم افزار
امروزه بسیاری از کارها در زندگی شخصی، صنعت، امور نظامی و غیره به نرم افزارها سپرده شده است. گاهی یک اشتباه کوچک نرمافزاری میتواند سبب خسارات جبران ناپذیری شود. برای تشریح موضوع به چند نمونه اشاره میگردد.
- در سال 1994 خطای محاسبات اعشاری در پردازنده پنتیوم شرکت اینتل، علاوه بر کاهش فروش آن، اعتبار شرکت را تا مدتی خدشهدار کرد.
- در سال 1998 مدارگرد مریخ به دلیل یک خطا در محاسبات نرم افزاری، در جهت اشتباهی وارد اتمسفر مریخ شده و منفجر گردید. 327 میلیون دلار صرف این پروژه شده بود.
- در سال 1996 ماهواره بر آریان پنج، 38 ثانیه بعد از پرتاب در ارتفاع 3700 متری زمین منفجر شد. علت اصلی این حادثه در اثر سرریز در واحد ممیز شناور اندازهگیری شتاب افقی این ماهواره بر بود. 7 میلیارد دلار و 10 سال زمان برای ساخت این ماهواره بر هزینه شده بود. همچنین باری که این ماهواره بر حمل میکرد، 500 میلیون دلار ارزش داشت.
تنها 26% از پروژه های نرم افزاری دنیا با موفقیت اجرا میشوند. معیار های موفقیت پروژه عبارتنداز:
- اتمام به موقع
- با بودجه تعیین شده
- با تمام قابلیتها و عملکردهای مورد نظر
- بدون خطا (با خطای جزئی)
تست نرم افزار بسیاری از پروژههای تولید نرم افزار با شکست مواجه میشوند، هزینه بالایی صرف پروژههای شکست خورده میگردد .
- در آمریکا، بیش از 81 میلیارد دلار صرف پروژههای شکست خورده میشود
- در انگلیس، بیش از 33 میلیارد دلار صرف پروژههای شکست خورده میشود.
شیوه های تضمین کیفیت نرم افزار در تست نرم افزار
برای تضمین کیفیت نرم افزار با توجه به شرایط، نوع و کاربرد آن از روشهای مختلفی استفاده میشود. در یک تقسیم بندی کلی می توان شیوههای تضمینکیفیت نرم افزار را به سه دسته تقسیم بندی نمود.
1. روشهای پیشگری از خطا از طریق حذف ریشه خطا
- آموزش
- بازبینی در ابتدای چرخه حیات (Inspection)
- تست
- بازبینی (در انتهای چرخه حیات)
- تحمل خطا (fault tolerance)
