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