Diagnostikaprogramm

Diagnostikaprogramm on automaatne arvutiprogrammide jada, mis määrab tarkvara ja/või riistvara tööoleku elektroonikakomponendis, süsteemis või süsteemide võrgus. Ideaaljuhul annavad diagnostikaprogrammid kasutajale juhiseid selle töö käigus leitud probleemide kohta.
Diagnostikaprogrammi kaudu saab kasutaja teada, milliste riistvaraliste komponentide puhul tuleks üle vaadata ühendused või komponent ise välja vahetada. Näiteks mikrolaineahjude puhul saab vastav diagnostikaprogramm tuvastada ja kasutajat õige veakoodi abil teavitada, et temperatuuriandur on lühises.
Leidub diagnostikaprogramme, mida saab kasutaja seadme otsene kasutaja, näiteks kõvaketta vigade otsimise programm S.M.A.R.T. Samuti on olemas diagnostikaprogramme, millele on ligipääs vaid vastaval tehnikul, näiteks autoelektroonika vigade puhul. 
Paljud diagnostikaprogrammid toimivad koostöös kasutaja ja vastava tehnoloogiafirma vahel: kasutaja saadab oma programmist tekkiva diagnostilise informatsiooni edasi ning saadud andmete põhjal viivad vastavad spetsialistid läbi diagnostilisi analüüse. Niisuguseid andmeid saab saata spetsiifiliste lisatavate programmide raames, näiteks Microsoft 365 rakenduste puhul. Samuti saab diagnostilisi andmeid saata operatsioonisüsteemi tasandil, näiteks operatsioonisüsteemi Windows puhul.
Üks diagnostikaprogrammidest on arvuti käivitamisel käitatav Power-On Self-Test (POST), mida viivad läbi BIOS või UEFI. Arvuti käivitamist jätkatakse ning operatsioonisüsteem käivitatakse vaid juhul, kui diagnostikaprogramm ühtegi viga ei leia.
Ajalugu.
Varane diagnostika polnud mitte arvutiprogrammi kujul, vaid vastav kontrollimine viidi läbi käsitsi. Uuriti, kas vooluringis on nähtavaid mehaanilisi probleeme – katkised juhtmed/komponendid, kulunud isolatsioon, halvad ühendused. Samuti testiti süsteeme osade või komponentide kaupa, kontrollides, kas vastav osa toimib iseseisvalt nagu vaja. 
Varasemates süsteemides olid kasutuses olevad komponendid enamasti suured (nähtavates mõõtudes) ja mehaaniliste ühendustega ning seega oli probleeme ka füüsiliselt võimalik peale vaadates tuvastada, näiteks arvulaua puhul. Tehnoloogia arenedes aga muutusid komponendid väiksemateks ning tekkis vajadus kontrollida süsteemi toimimist mingi abisüsteemi või -programmiga. 
Ühed esimesed diagnostikaprogrammid võeti kasutusele sõjatööstuses. 1945. aastal valminud ENIAC pidi olema väga töökindel ja seetõttu loodi sellele testsisendid, mis oodatavate väljundite puhul näitasid, et masin on töökorras. 1960. aastatel eristati USA kosmoseprogrammis esimest korda tarkvara diagnostikaga tegelevat tiimi teistest tarkvara valdkondadest. 
1970. aastatel tulid lennunduses kasutusele Built-In Test Equipmenti (BITE) seireseadmed. BITE on lennuki tõrkeotsinguseade, mis jälgib lennuki mootori ja kere süsteeme ning vea tuvastamisel väljastab sellele vastava veateate. Lennuki diagnostiline seireseade ühendub BITE külge ja jälgib selle väljundeid.
1980. aastatel võttis IBM oma IBM PC arvutites kasutusele tööriista IBM PC Diagnostics, mis kontrollis arvuti emaplaati, mälu jm enne arvuti käivitamist. Arvuti käivitamine oli küll aeglane, kuid probleemide varane tuvastamine tagas suurema töökindluse.
Tänapäeval on diagnostikaprogrammid kasutusel pea kõikides arvutus- ja loogikaseadmetes. Seadmeid kasutatakse peamiselt vigade tuvastamiseks, aga ka andmete kogumiseks ning statistiliste trendide jälgimiseks ja tuvastamiseks.
Töömeetodid.
Diagnostikaprogrammide töömeetodid ("Methods of Operation") ehk erinevad lähenemised probleemide tuvastamisele on järgnevalt toodud kasvavas järjestuses oma keerukuse ning diagnostiliste andmete väärtuse poolest.