معمولا زمانی که یک برنامه یا یک نرم افزار در شرکتهای نرم افزاری طراحی و ساخته می شود از زمانی که ساخت برنامه در مرحله نهایی است تا زمانی که نسخه نهایی و کامل آن ارائه و در اختیار مشتری قرار گیرد باید مراحلی را جهت ارزیابی و بررسی و رفع اشکالات احتمالی طی کند. این ارزیابی ها با نسخه های مختلفی که از زمان به اتمام رسیدن ساخت برنامه تا زمان انتشار نهایی ارائه می شود انجام می پذیرد.