در تست نرم افزار، قراره شرایط سیستم در برابر ورود داده ها هم بررسی بشه.
بهترین حالت اینه که عمده توجه بر روی تست مثبت محصول باشه، یعنی همون روالی که یک مشتری طی میکند. مثلا در یک سایت فروشگاهی، مشتری 2 تا از یک محصول انتخاب کنه و بره برای مابقی ماجرا
تست مثبت توجیه کننده ی الزامات است بعبارت دیگر، این تست به دنبال باگ یا یک شرایط منفی نیست و فقط بر روی ورودی های معتبری تمرکز دارد که خروجی قابل انتظار را تولید میکنند. حالا تست منفی قراره شرایط سیستم در برابر ورودی غیرمنتظره داده را بررسی کنه و هدف اینه که جلوگیری کنیم از کرش برنامه بدلیل ورودی منفی و غیرعادی؛ مثلا در وبسایت فروشگاهی بالا، تست میکنیم که اگر مشتری -2 را وارد کرد، سیستم چه بازخوردی نشون میده؟
از مزایای تست منفی اینه که مطمئن میشیم از کیفیت محصول و محصولی با آسیب پذیری کمتر و به مشتری تحویل میدیم؛ و از معایبش اینه که وقت و انرژی را (شاید الکی!) تلف میکنیم. مثلا محصولی که برای استفاده یک کاربر همزمان ایجاد شده، نیازی نیست که برای صد کاربر همزمان تست بشه. این باعث میشه که تاخیر غیرضروری پیش بیاد در انتشار نسخه و البته هزینه (کاست) زیادی را متقبل بشیم.
برای تکمیل عرائض، تست سناریو لاگین را با تست کیس های مثبت و منفی تکرار میکنیم:
نمونه تست مثبت:
نمونه تست منفی: