به ارزیابی یک نرمافزار بهمنظور تشخیص تفاوت بین ورودی و خروجی مورد انتظار تست نرمافزار گفته میشود که شامل whitebox و blackbox است
قبل از پرداختن به موضوع تست نرمافزار بهتر است ابتدا تعاریف زیر مرور شود:
تأیید (Verification)
در این مرحله اطمینان حاصل میشود که آیا نرمافزار مورد نظر، با توجه به انتظار ما عمل میکند یا خیر.
اعتبارسنج (Validation)
این مرحله مشخصکننده این موضوع است که آیا نرمافزار نیازمندیها را پاسخگو هست یا خیر.
انواع رویکرد تست نرمافزار
whitebox testing-1
blackbox testing -2
Blackbox Testing
در این رویکرد، تست تمامی مکانیسمهای داخلی یک سیستم نادیده گرفته میشود و روی خروجی تولیدشده تمرکز میشود. به این رویکرد تست نرمافزار functional نیز میگویند.

شکل 1 : تست نرم افزار جعبه سیاه
Whitebox Testing
در این رویکرد، تست ما با مکانیسم داخلی یک سیستم سروکار داریم. به این نوع تست نرمافزار، structural نیز گفته میشود.
انواع تست نرمافزار
انواع مختلفی از تست نرمافزار وجود دارند که در زیر لیست آنها را مشاهده میکنید:
- Unit Testing
- Integration Testing
- Functional Testing
- System Testing
- Stress Testing
- Performance Testing
- Usability Testing
- Acceptance Testing
- Regression Testing
- Beta Testing

شکل 2 : Bug
Unit Testing
در این نوع تست ما یک واحد و یا یک گروه از واحدهای مرتبط با هم را تست میکنیم. این نوع تست زیرمجموعه Whitebox Testing است.
Integration Testing
این نوع تست به ما این امکان را میدهد که بخشهای مختلف را کنار یکدیگر تست نرمافزار کنیم. در این صورت حتی ما میتوانیم وابستگیهای میان سختافزار و نرمافزار را نیز بیازماییم. این دسته از تستها زیرمجموعه تستهای black box هستند.
Functional Testing
در این تست اطمینان حاصل میشود که عملکرد برنامه بهدرستی است. توجه شود که در این نوع تست برخلاف آزمون واحد ما میتوانیم عملکرد یک سیستم را تست کنیم و نهفقط یک واحد را، این تست زیرمجموعه black box تستها هستند.
System Testing
این نوع تست به ما اجازه میدهد که از عملکرد برنامه در محیطهای مختلف اطمینان حاصل کنیم (مثل سیستمعاملهای مختلف). این تست زیرمجموعه black box تستها است.
Stress Testing
این نوع تست عملکرد برنامه را در شرایط نامطلوب مورد بررسی قرار میدهد. این تست زیرمجموعه black box تستها است.
Performance Testing
تست عملکرد و کارایی که در مجموعه black box تستها جای میگیرد به ما این اطمینان را میدهد که برنامهمان عملکرد و کارایی لازم را در یک مدت زمان مشخص داراست.
Usability Testing
این تست از دیدگاه مشتری انجام میشود و درواقع مشخصکننده فاکتورهای زیر است:
- آیا برنامه کاربرپسند است؟
- آیا برنامه ساده و قابل یادگیری است؟
- آیا برنامه جذاب طراحی شده است؟
این نوع تست زیرمجموعه black box تستها است.
Acceptance Testing
این نوع تست معمولاً از طرف مشتری انجام میشود. هدف آن، مشخص کردن این است که آیا برنامه نیازهای مشتری را پاسخ میدهد و آیا برنامه همان چیزی که مشتری میخواهد هست یا خیر.
Regression Testing
این نوع تست بهمنظور صحت عملکرد سیستم بعد از تغییرات استفاده میشود و زیرمجموعه black box تستها است.
Beta Testing
تستی است که توسط کاربر نهایی یا یک گروه خارج از گروه توسعه انجام میشود. هدف تست بتا پوشش دادن خطاهای غیرمنتظره است. این تست زیرمجموعه black box تستها است.
استاندارد تست نرم افزار شرکت پافکو از مرکز تحقیقات انفورماتیک است