fault یا bug اشتباه هایی است که در زمان کدنویسی صورت می پذیرد و منجر به تولید error می شود، برای مثال شروع اندیس یک حلقه for از 1 در حالی که در زبان برنامه نوسی مورد استفاده اندیس آرایه ها از صفر شروع می شود یک fault است.
error وجود یک حالت غلط درون برنامه است که ممکن است باعث شود خروجی برنامه (functionality برنامه) اشتباه شود و در این حالت منجر به تولید failure می شوند ولی ممکن است برروی خروجی برنامه تاثیر منفی نگذارد.
failure ها باعث می شوند برنامه آن رفتاری را که ما انتظار داریم انجام ندهد و خروجی برنامه (functionality برنامه) اشتباه شود.