1. Помилка є, якщо поведінка програми не відповідає специфікаціям; але самі специфікації можуть містити помилку.
2. Помилка є, якщо поведінка програми не відповідає встановленим межам, однак, якщо програма випадково використовується в непередбаченій ситуації, то її поведінка повинна бути розумним.
3. Поведінка ПО не відповідає публікацій для користувача, але помилки можуть бути і в програмі, і в публікаціях. У публікаціях описується тільки очікуване і плановане поведінку системи.
4. Система працює не у відповідності з вимогами користувача, однак, ці вимоги зазвичай слабо деталізовані.
У ПО є помилки, якщо воно не виконує того, що користувач розумно очікує. При розробці вимоги до програми можна розділити на 2 групи:
- ПО має робити те ж, що виконувалося і без нього раніше, але більш ефективно;
- реалізація нових можливостей.
Помилка в ПО це необов'язково внутрішнє його властивість. Це означає. що ніколи не можна виявити всіх помилок ПО. Помилки це помилки як ПО, так і очікувань користувача.
Надійність ПО - це ймовірність його відмов протягом певного часу з урахуванням вартості відмов.
, де Pi - ймовірність безвідмовної роботи.
Оцінка надійності також включає ймовірність того, що користувач не введе дані, які виведуть систему з ладу.
Комп'ютери мають велику надійність, ніж ПО, тому що вхідні дані можуть бути складніше. Формат даних весь час змінюється. Надійність апаратури обмежується помилками проектування, виробничими дефектами і частотою збоїв (залежить від фізичних процесів).