Programinės įrangos klaida yra bet kokia klaida kode, naudojamoje kuriant kompiuterio programą. Klaidos gali sukelti daug įvairių problemų, priklausomai nuo programos rūšies ir konkrečios klaidos rūšies. Pavyzdžiui, dėl kai kurių klaidų programos gali užstrigti ir nustoti veikti. Kiti gali sukelti programos veikimo klaidų, dėl kurių programa gali veikti netikėtai. Kartais dėl programinės įrangos klaidos programa netgi gali visiškai išsijungti.
Dauguma programavimo ekspertų sutinka, kad beveik neįmanoma sukurti bet kokio dydžio programos, nepasirodžius programinės įrangos klaidos. Naudojant sudėtingesnes programas, klaidų atsiradimo tikimybė paprastai padidėja. Taip yra todėl, kad programuotojams gali būti sunkiau rasti visas klaidas programose, kuriose vartotojai gali atlikti daug skirtingų veiksmų.
Siekdami rasti esamas programinės įrangos klaidų problemas, programuotojai paprastai daro viską, ką gali, kad atidžiai išbandytų programas prieš išleisdami jas viešai. Kartais jie netgi gali samdyti specialius darbuotojus, kad tik kuo plačiau išbandytų programinę įrangą ir praneštų apie rezultatus programuotojams. Net ir taikant visas šias apsaugos priemones, daugelis programinės įrangos klaidų neaptinkamos prieš išleidžiant programas.
Kai kuriais atvejais kūrėjai gali rasti klaidą, bet nuspręsti, kad ji nėra pakankamai rimta, kad būtų galima atidėti programinės įrangos išleidimą. Kai tai atsitiks, kūrėjas gali išleisti programą, o tada sukurti naujinimą, kuris ištaisys likusias klaidas. Tai taip pat įprastas būdas kovoti su klaidomis, kurios aptinkamos išleidus programą.
Kartais programa gali būti nuolat kintanti, nes programuotojai laikui bėgant linkę įtraukti daugiau funkcijų. Šis procesas paprastai sukelia naujų programinės įrangos klaidų su kiekvienu leidimu. Tai gali tapti begaliniu ciklu, kai programuotojai nuolat prideda programinės įrangos funkcijų ir taiso klaidas. Iš esmės programa niekada gali būti baigta. Vietoj to, jis gali nuolat vystytis, o kelyje patiria augimo skausmus.
Kompiuterinės programos kūrimas apima kodo, parašyto programavimo kalbomis, naudojimą. Kompiuterinio kodavimo prigimtis reiškia, kad net ir nedidelės rašybos klaidos ir panašios klaidos gali lengvai sukelti programinės įrangos klaidų, o programišiams labai sunku tokiu būdu išvengti kelių problemų. Taip pat gali atsirasti klaidų, nes programuotojas kurdamas kodą daro logikos klaidą.