Mine sisu juurde

Diagnostikaprogramm

Allikas: Vikipeedia
Power-On Self-Test (POST) kui üks diagnostikaprogramme

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.[1]

Leidub diagnostikaprogramme, mida saab kasutaja seadme otsene kasutaja, näiteks kõvaketta vigade otsimise programm S.M.A.R.T.[2] Samuti on olemas diagnostikaprogramme, millele on ligipääs vaid vastaval tehnikul, näiteks autoelektroonika vigade puhul.[3]

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.[4] Niisuguseid andmeid saab saata spetsiifiliste lisatavate programmide raames, näiteks Microsoft 365 rakenduste puhul.[5] Samuti saab diagnostilisi andmeid saata operatsioonisüsteemi tasandil, näiteks operatsioonisüsteemi Windows puhul.[6]

Üks diagnostikaprogrammidest on arvuti käivitamisel käitatav Power-On Self-Test (POST), mida viivad läbi BIOS või UEFI.[7] Arvuti käivitamist jätkatakse ning operatsioonisüsteem käivitatakse vaid juhul, kui diagnostikaprogramm ühtegi viga ei leia.

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.[8] 1960. aastatel eristati USA kosmoseprogrammis esimest korda tarkvara diagnostikaga tegelevat tiimi teistest tarkvara valdkondadest.[9]

1970. aastatel tulid lennunduses kasutusele Built-In Test Equipmenti (BITE) seireseadmed.[10] BITE on lennuki tõrkeotsinguseade, mis jälgib lennuki mootori ja kere süsteeme ning vea tuvastamisel väljastab sellele vastava veateate.[11] 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.[12] 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

[muuda | muuda lähteteksti]

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.

  1. Süsteemi indikaatorite taustmonitoorimine, et tuvastada statistilisi trende ning märkida üles ebatavalisi olekuid.[13] Jälgitakse näiteks süsteemi riistvaralisi ja tarkvaralisi komponente, temperatuuri, koormustaluvust, võrguühendust ja jõudlust.
  2. Lahenduspõhine diagnostika, mis annab süsteemile ette vigatekitavad tingimused ning jälgib, kas need vead ka tuvastatakse.
Musta kasti testimine: uuritakse sisendite põhjal tekkivaid väljundeid ilma teadmisteta süsteemi sisemistest toimingutest
  1. Black Box Testing ehk musta kasti testimine, kus ei teata, kuidas süsteem toimib, ning uuritakse sisendite põhjal tekkivaid väljundeid ja väljundite täpsust võrreldes oodatavate väljunditega.[14] Musta kasti testimised kategoriseeritakse kolmeks:
    1. Funktsionaalne – testitakse, kas süsteem annab sisendite peale õiged väljundid.
    2. Mittefunktsionaalne – testitakse süsteemi sisemisi funktsioone, näiteks jõudlus ja turvalisus.
    3. Tagasilanguslik (Regression Testing) – testitakse, kas muutus või veaparandus süsteemis on vähendanud süsteemi võimekust või kitsendanud funktsionaalsust.
  2. White Box Testing ehk valge kasti testimine, kus teatakse, kuidas süsteem toimib, ning otsitakse vigu süsteemi struktuuris ning erinevates süsteemi osades.[15] Valge kasti testimised kategoriseeritakse viieks:
    1. Üksuste testimine – igat komponenti testitakse eraldi.
    2. Mutatsioonitestimine – kontrollitakse koodi, tehes selles väikseid suvalisi muutuseid ning jälgides, kas kood vastab ka nii nõuetele.
    3. Integratsioonitestimine – kontrollitakse ühenduspunkte süsteemi erinevate komponentide vahel.
    4. Valge kasti penetratsioonitestimine – üritatakse süsteemi sisse häkkida, omades teadmisi selle sisemise toimimise kohta.
    5. Staatiline koodianalüüs – otsitakse tarkvaralisi nõrku kohti ja vigu ilma ühtegi programmi käivitamata.
  3. Gray Box Testing ehk halli kasti testimine ehk kombinatsioon musta kasti ja valge kasti testimisest: teatakse, kuidas süsteem toimib, ning selle põhjal antakse sisendeid ning uuritakse sisendite põhjal tekkivaid väljundeid.[16] Halli kasti testimised kategoriseeritakse kaheksaks:
    1. Maatrikstestimine – süsteem uuritakse täielikult läbi ning hinnatakse iga osa teoreetilist riski.
    2. Mustertestimine – valede väljundite ja süsteemi tööprobleemide põhjal uuritakse tarkvara, et leida üles viga.
    3. Ortogonaalne massiivitestimine – kasutatakse suure hulga testandmete puhul, kui testolukordi on vähe.
    4. Tagasilanguslik testimine (Regression Testing) – pärastigat tarkvaralist muudatust viiakse läbi kontroll, et uurida, ega muudatus ei vähendanud süsteemi võimekust või kitsendanud funktsionaalsust.
    5. Olekumuutuse testimine – minimaalsete teadmistega süsteemi olekutest luuakse sisendid ja kontrollitakse, kas süsteem läheb õigetesse olekutesse.
    6. Otsustustabelitega testimine – luuakse reeglid ja arutluskäigud, mille põhjal luuakse otsustustabel, ning vastava tabeli põhjal luuakse sisendandmed ja uuritakse väljundandmeid.
    7. API (Application Programming Interface ehk rakendusliidese) testimine – testitakse programmi väliseid liideseid (exposed interfaces), andes sinna sisendeid ja kontrollides väljundeid.
    8. Andmevoo testimine – osaliste teadmistega süsteemi toimimisest luuakse sisendandmed ja jälgitakse andmete liikumist süsteemis.
  4. Integreeritud taustadiagnostika, mis testib süsteemi komponente süsteemi puhkeajal (idle-time).
  5. Toimingutega põimitud diagnostika, mis käitab diagnostilisi programme süsteemi normaalse toimimisega samaaegselt.
  1. Arvutis BIOS-i või UEFI käitatav Power-On Self-Test (POST), mis kontrollib riistvaralisi komponente enne operatsioonisüsteemi käivitamist.[17] POST jaotatakse seitsmeks alamprogrammiks:
    1. CPU and Register Test ehk keskprotsessori ja registrite test – kontrollib protsessori sisemisi protsesse ning kõiki protsessori registreid.
    2. Interrupt and Exception Test ehk katkestuse ja erandi test – kontrollib, luues katkestuse ja erandi tingimused ning oodates nende tuvastamist. Katkestuse testimiseks näiteks lubatakse taimeri katkestus, erandi testimiseks luuakse näiteks nulliga jagamise olukord.
    3. EPROM Checksum Test ehk EPROM (kustutatava-programmeeritava püsimälu) kontrollsumma test – viimased 2 baiti EPROM-is initsialiseeritakse nullideks ja laseb EPROM-il sinna kontrollsumma kirjutada. Testprogramm arvutab ka ise vastava kontrollsumma ning see peab ühtima EPROM-i arvutatud kontrollsummaga.
    4. RAM March Test ehk muutmälu marssimise test – kontrollib lugemise ja kirjutamise mälu plaadil, muuhulgas viib läbi testi Marching Ones ehk marssivad ühed: kõikidesse mälu asukohtadesse kirjutatakse nullid, seejärel hakatakse ükshaaval ühtesid kirjutama, iga kirjutamise järel kontrollides, kas kirjutamine õnnestus.
    5. DMA Controller Test ehk otsemälupöördumiste kontrolleri test.
    6. Device Tests ehk perifeeriaseadmete testid – olenevalt seadmest testitakse ühenduses olevaid perifeeriaseadmeid.
    7. Loop Back Test – seadme saatja (transmitter) ühendatakse sama seadme vastuvõtjasse (receiver), seejärel saadetakse väljundisse informatsioon ja oodatakse seda sisendisse tagasi.
  2. Arvutis kasutaja käitatavad diagnostikaprogrammid, tavaliselt operatsioonisüsteemi sees:
    1. Operatsioonisüsteemi sisseehitatud programmid, operatsioonisüsteemi Windows puhul näiteks programm Troubleshoot.[18]
    2. Juurdelisatavad programmid, näiteks HWiNFO ning CrystalDiskInfo.[19]
  3. Kodumasinates kasutatavad diagnostikaprogrammid igasuguste rikete ja töö kõrvalekallete tuvastamiseks, näiteks pesumasinate puhul.[20]
  4. Masinatööstuses (näiteks autotööstuses ja lennunduses) kasutamiseelsed diagnostilised töökindluse kontrollimised, samuti kasutamisest tingitud kulumistest tekkivate probleemide tuvastamine.[21]
  1. "Microwave - Error, Fault or Function Codes". products.geappliances.com. Vaadatud 28. aprillil 2024.
  2. "How To Check Hard Drive Health". CDW.com (inglise). Vaadatud 30. aprillil 2024.
  3. "What do diagnostic technicians do - Technical Topics" (Briti inglise). 8. juuli 2022. Vaadatud 30. aprillil 2024.
  4. "Should You Share Your Data With Tech Companies?". Consumer Reports (Ameerika inglise). 8. veebruar 2022. Vaadatud 30. aprillil 2024.
  5. "Diagnostic data in Microsoft 365 - Microsoft Support". support.microsoft.com. Vaadatud 30. aprillil 2024.
  6. DHB-MSFT (23. juuni 2023). "Configure Windows diagnostic data in your organization (Windows 10 and Windows 11) - Windows Privacy". learn.microsoft.com (Ameerika inglise). Vaadatud 30. aprillil 2024.
  7. Sheldon, Robert (august 2022). "POST (Power-On Self-Test)". TechTarget. Vaadatud 28. aprillil 2024.
  8. "Wayback Machine" (PDF). web.archive.org. Originaali arhiivikoopia seisuga 29. mai 2008. Vaadatud 28. aprillil 2024.{{netiviide}}: CS1 hooldus: robot: algse URL-i olek teadmata (link)
  9. "Testing References - The History of Software Testing". www.testingreferences.com. Vaadatud 28. aprillil 2024.
  10. "Harrier Failure Survival, Built-In Test Equipment (BITE) Unit :: Rochester Avionic Archives". rochesteravionicarchives.co.uk. Vaadatud 28. aprillil 2024.
  11. "BITE Monitor :: Rochester Avionic Archives". rochesteravionicarchives.co.uk. Vaadatud 29. aprillil 2024.
  12. "The Creation of the IBM PC". Ardent Tool of Capitalism. Vaadatud 30. aprillil 2024.
  13. Barney, Doug (11. mai 2023). "What is Hardware Monitoring: Tools and Examples - WhatsUp Gold". www.whatsupgold.com (inglise). Vaadatud 28. aprillil 2024.
  14. "What is Black Box Testing?". Check Point Software (Ameerika inglise). Vaadatud 28. aprillil 2024.
  15. "What Is White Box Testing | Types & Techniques for Code Coverage | Imperva". Learning Center (Ameerika inglise). Vaadatud 28. aprillil 2024.
  16. "Gray Box Testing - Software Testing". GeeksforGeeks (Ameerika inglise). 25. aprill 2019. Vaadatud 28. aprillil 2024.
  17. "Hardware Diagnostics and Power on Self Tests". www.eventhelix.com. Vaadatud 28. aprillil 2024.
  18. "How to Run Diagnostics on Windows". Lifewire (inglise). Vaadatud 28. aprillil 2024.
  19. Godara, Manuviraj (23. oktoober 2018). "15 Windows Diagnostics Tools to Check Your PC's Health". MUO (inglise). Vaadatud 28. aprillil 2024.
  20. "ElectraFix - A Guide to washing machines diagnostic modes | electraFix Appliance Repair". www.electrafixbc.ca. Vaadatud 30. aprillil 2024.
  21. "Diagnostics of protected vehicle electronics – Bosch SDA". Mobility Aftermarket United Kingdom and Ireland (inglise). Vaadatud 30. aprillil 2024.