آزمایش نرم افزار ریشههايی در علم روان شناسی دارد که مستقیما با مغز انسان در ارتباط است. اگر انسانها کامل بودند، دیگر احتیاجی به آزمایش کارهای خودشان نداشتند. اگر ما آدمهای آهنی بدون احساسات بودیم، همیشه کارمان را با منطق آزمایش میکردیم تا بتوانیم ميزان ریسک را در تصميم هايمان کاهش دهیم. اگر ما موجودات یکسانی بودیم، تمام خطرات را به یک صورت آزمایش می کردیم. ليکن انسان موجودی ناکامل، بدون منطق، هدفدار، و متفاوت که نه تنها نتایج مسائل مختلف را زیر آزمایش میبرد ، بلکه آزمایشهای خود را نيز آزمایش می کند.
افراد، پروژه ها، و زمانهای مختلف میتوانند باعث برداشتهای مختلفی مربوط به فاکتورهای ریسک نرم افزار شوند. این برداشتهای مختلف منجر به سوالاتی می شود که آزمایش نرم افزار میتواند به آن سوالات جواب دهد . برای مثال، یکی از سولات اولیه که ممکن است مطرح شود این است:
آیا نرم افزار، آنچه را که ما میخواهیم انجام دهد، انجام میدهد؟
اگر نرم افزار کار مورد نظر را درست انجام ندهد، بهتر است از توسعه آن صرف نظر شود. بنابراین اگر به پرسش بالا جواب منفی داده اید، دیگر احتیاجی به پرسیدن سوال دیگری نیست. اگر هنوز با وجود عیبهایی که نرم افزار دارد، میخواهیم اطلاعات بیشتری کسب کنیم، باید سوال بعدی را بپرسیم:
به چه اندازه کار نياز است تا بتوان نرم افزاری که از عهده انجام کار خواسته شده بر نمی آيد را تعمیر کرد؟
آزمایش کردن نمیتواند به تنهایی این سوال را پاسخ گوید، اما میتواند اطلاعاتی را به ما بدهد که اگر در کنار اطلاعات مربوط به جریان توسعه نرم افزار قرار داده شود به ما کمک کند تا بتوان کاری را که مورد نیاز است انجام داده و حدس زدن دربارهاش را کاهش دهیم.
آیا نرم افزار آنچه را که ما نمیخواهیم، انجام نمیدهد ؟
بسياری از وقت ها این سوال به آسانی با ریسک مربوط است . وقتی که بعضی از کارهایی که ما نمی خواهیم توسط نرم افزار انجام شود، انجام میشود ممکن است باعث ضرر های جانی و مالی بشود. سازمانهای مختلفی به دلیل اینکه نرم افزار کاری انجام داده است که نباید انجام میداده، از بین رفته اند. متاسفانه افرادی هم به به دليل وقوع اين امر کشته شده اند.
آیا نرم افزار کاری که ما از اول قصد انجام دادنش را داشتیم، انجام میدهد؟
این سوال مربوط به درست انجام دادن چیز هایی است که ارزش انجام دادن دارند. اگر چیزی ارزش انجام دادن دارد، ارزش هم دارد که درست انجام شود. جواب دادن به این سوال ریسک اینکه نرم افزار کاری را که ما از اول قصد انجام دادنش را داشتیم انجام ندهد را کاهش میدهد.
آیا نرم افزار کارها یی که مشتری هایمان میخواهند انجام شوند، انجام میدهد؟
هرکسی که محصولی را می فروشد از اين نگران است که مشتری آن محصول را نخرد و یا خوشش نیاید. با اینکه آزمایش نرم افزار نمیتواند پیش بینی کند چند نفر محصول شما را میخرند، ولی میتواند نخریدنش را به خاطر برنياوردن توقع خريدار کاهش دهد.
آیا نرم افزار احتیاجات کاری ما را برآورده می سازد ؟
چنانچه مشتری نرم افزار شما را خریداری نکند، تجارت شما موفق نخواهد شد. همچنین اگر مردم نرم افزار شما را خریداری کنند ولی خرج کمکهای تکنیکی از قیمت آن بيشتر باشد، شما احتمالا پول از دست خواهيد داد. آزمایش نرم افزار میتواند خطر خرجهای غیر قابل پیش بینی مربوط به تعمیرات فنی را کاهش دهد.
چه چیزهايی میتواند باعث عدم موفقيت رایانه شود؟
از آنجا که آزمایش رایانه میتواند عوامل عدم موفقيت رایانه را شناسايی کند، درجه و میزان آزمایش نرم افزار رابطه مستقیمی با موفقيت و يا نتیجههای ناشی از عدم موفقيت دارد.
به طور خلاصه اشتباهات مشترک در آزمایش نرم افزارمیتواند شامل مسائل زیر باشد:۱. باور داشتن به کامل بودن
۲. عدم توانايی در تصمیم گیری
۳. عدم توانايی به بازشناسی اطلاعات لازمه برای تصمیم گیری
۴. دادن الویت اشتباه به خطرهای گوناگون
۵. باور داشتن به این که آزمایش نرم افزار میتواند بهبودی به محصول ببخشد