Vianetsintä

Vianetsintä (myös vianpaikannus) on ongelman ratkaisun eräs muoto. Se on systemaattista hakua tarkoituksena saada ratkaistua itse ongelma.
Vianetsintä on usein eliminointiprosessi, jossa eliminoidaan potentiaalisia aiheuttajia. Vianetsintää käytetään lukuisilla aloilla, esimerkkinä järjestelmien hallinta ja elektroniikka.

Vianetsintä tuottaa yleensä indikaation tai diagnoosin järjestelmässä olevasta ongelmasta.
Ongelma kuvataan aluksi virheellisen toiminnan oireena. Vianetsintä on prosessi, jossa määritellään oireille syyt eli aiheuttajat. Tätä kutsutaan syy-seuraus-analyysiksi, missä oire on siis seuraus.

Systeemi kuvataan odotetun tai aiotun käyttäytymisen mukaan termeinä.
Järjestelmään tulevien tapahtumien tai tulotietojen (input) oletetaan tuottavan tiettyjä tuloksia tai lähtötietoja (output).
Mikä tahansa odottamaton, varsinainen ei-toivottu käyttäytyminen on oire, jolloin vianpaikannus on prosessi, joka eristää erityiset syyt normaalikäyttäytymisestä. Usein oireena on pelkästään se, että mitään havaintoa ei voida tehdä (esimerkiksi näytölle tai tulostimelle ei ilmesty mitään tietoa).

Vianpaikannuksen eri näkökulmia 

Usein keskustelu vianpaikannuksesta, sekä koulutus formaalin vianpaikannuksen menetelmistä on sovellusalakohtaista. 
Vika saattaa usein liittyä muutoksiin, tai monen asian samanaikaisuuteen. Siksi vianpaikannus vaatii kriittistä ajattelua. 
Yleensä kannattaa etsiä ratkaisua aluksi todennäköisimmästä lähteestä.

Vianpaikantaja voisi etsiä vikaa vaihtamalla komponentteja systemaattisesti yksi kerrallaan, mutta tämä periaate ilman olettamuksia vian syistä johtaa usein liian työlääseen ratkaisuun.

Sen sijaan tehokas vianpaikannus alkaa selkeällä tilannearviolla oletetusta käyttäytymisestä ja havaituista oireista.
Vianpaikantaja muodostaa hypoteeseja syistä ja suorittaa testejä ja väliarvioita edetessään tietämyksensä tai tarkistuslistan mukaan. Testit voivat aluksi kohdistua helpoimpiin syihin ja sitten esimerkiksi haarukointiperiaatteella perättäin olevien riippuvuuksien selvittämiseen: otetaan näyte keskeltä ja jos sieltä löytyi virheellinen tulos alun ja puolivälin keskeltä seuraava näyte jne.

Yksinkertaisimpia järjestelmiä voidaan kuvata riippuvuuksien mukaisina puina tai listoina niiden komponenttien tai alijärjestelmien mukaan. Monimutkaisemissa järjestelmissä on sen sijaan myös kiertäviä riippuvuuksia ja takaisinkytkentöjä. Sellaisia järjestelmiä ei siten voida haarukoimalla varmistaa.

Usein vianpaikannus kannattaa aloittaa tutusta tilasta, kuten tietokoneen kylmäkäynnistys (boot). Kognitiivinen kävely on hyvä toinen menetelmä tai dokumenttien tutkiminen. 

Vianetsintä voidaan kuvata systemaattisen tarkastuslistan muodossa, vianetsintäproseduurina, vuokaaviona tai taulukkona, johon on koottu ongelman aiheuttaja. Vianpaikannuksen menetelmien kehittäminen etukäteen mahdollistaa tehokkaan eliminoinnin ja töiden organisoinnin. Vianpaikannusmenetelmät voidaan viedä tietokoneelle mm. taulukkomuodossa.

Oireiden tuottaminen uudelleen näkyville 
Eräs vianpaikannuksen ydinajatuksia on tuottaa ongelma uudelleen näkyville, jotta vika voitaisiin eristää ja ratkaista. Usein se vaatii paljonkin resursseja saada oire halutulla tavalla esille.

Kun oire on saatu esille, voidaan käyttää systemaattisia menetelmiä syyn tai syiden eristämiseksi. Päättelyn avulla yleensä päästään korjaamaan vika tai korvaamaan viallaiset komponentit ehjillä.

Epäsäännölliset oireet 
Vaikeimpia vianpaikannustilanteita ovat ne, joissa oireet esiintyvät vain silloin tällöin eli satunnaisesti. Esimerkiksi elektroniikassa komponentit saattavat ajoittain lämmitä liikaa, jolloin vianpaikannuksessa kannattaa käyttää kuumennusta tai jäähdytystä tarpeen mukaan.

Tietokoneohjelmissa kriittiset ajoitukset aiheuttavat usein ajoittaisia oireita, joita on vaikea tuottaa halutulla tavalla esille.

Ajoittaisen vian eli häiriön määrittely: 
Steven Littin mukaan
Ajoittainen vika on vika, joka esiintyy epäsäännöllisesti tai epäloogisesti.

Joskus vianpaikantajien on käytettävä tilastollisia menetelmiä tai erityiskeinoja lisätäkseen oireen esiintymisen todennäköisyyttä tai voidakseen ratkaista mikä olisi lopullinen paikannustapa. Vaikka vika näyttää joskus kokonaan kadonneen, ei siltikään ole varmuutta, että lopullinen aiheuttaja olisi löytynyt ja ongelma olisi poistunut.

Monikertaisten ongelmien tapaukset 
Sellaiset tapaukset, joissa vain yksi komponentti tai osa on pettänyt, ja joissa oireet voidaan tuottaa esille riittävän hyvin, ovat suhteellisen helppoja ratkaista.

Jos virheitä onkin useita, saattaa tuloksena syntyä useita erilaisia ongelmia. Tämä tulee usein esille vikasietoisissa järjestelmissä tai järjestelmissä, joissa on sisäänrakennettua varmistuslogiikkaa. Piirteet, joissa varmistuksia lisätään, saattavat myös pettää. Jos ongelmia on useita, saattaa koko järjestelmä lakata toimimasta varmistuksista riippumatta.

Yksinkertaisimmissakin järjestelmissä saattaa olla useampia kuin yksi vika. Joskus väärän komponentin korvaaminen viallisella komponentilla aiheuttaa vain lisää vikoja, vaikka entisiä pitäisikin saada vähemmäksi.

Usein vika liittyy likaantumiseen tai epävireisyydestä. Silloin vianpaikannuksessa tarvittaisiinkin säätö- tai viritystoimintoja viallisen komponentin korjaamisen sijasta.

Aiheesta muualla 
 Litt: Ajoittaisen vian määrittely 

Ongelmanratkaisu