برنامههایی که نوشته میشوند عموما دارای باگ یا آسیبپذیری هستند. پیدا کردن برنامهای که دارای باگ یا آسیبپذیری نباشد کار دشواری است. یک نرم افزار در صورت داشتن باگ یا آسیبپذیری، در شرایطی رفتارهای نامعمولی از خود نشان میدهد. مثلا ممکن است یک برنامه در ازای گرفتن یک رشته متنی با طول معمولی پیامی را نمایش دهد.