Automaattiset ohjelmakoodintarkastusmenetelmät


Autoria(s): Liikala, Matti
Data(s)

11/04/2016

11/04/2016

11/04/2016

Resumo

Automaattinen koodintarkastus on tehokas ja nopea tapa havaita virheitä ohjelmakoodissa. Erilaisia menetelmiä on kehitetty jo pitkään ja lähestymistapoja on monia. Tavoitteena kaikilla menetelmillä on löytää koodista mahdollisimman suuri osa ohjelmassa olevista virheistä pienellä työmäärällä. Tässä tutkielmassa tutustutaan koodin analyysiin, sekä erilaisiin automaattisiin koodintarkastusmenetelmiin. Jokaista menetelmää tarkastellaan eri näkökulmista ja tutustutaan niiden vahvuuksiin ja heikkouksiin. Lopuksi tehdään katsaus näihin menetelmiin käytännön kautta. Koodintarkastus alkaa analysoinnista, joka voidaan suorittaa joko staattisesti lähdekoodia tarkastamalla tai dynaamisesti, eli koodin suorituksen myötä. Staattisia tarkastustyökaluja löytyy useimmista ohjelmointiympäristöistä jo valmiiksi integroituna. Nämä ilmoittavat ohjelmoijalle virheistä jo koodia kirjoitettaessa. Perinteiset virheentarkastukset ja hieman monimutkaisemmat muodolliset menetelmät ovat hyviä esimerkkejä staattisesta analyysistä. Dynaaminen analyysi taas alkaa suorituksesta ja oikeiden syötteiden valitsemisesta. Analyysillä pyritään käymään läpi kaikki virheille potentiaaliset suorituspolut. Dynaamisesta analyysista saadaan staattisesta analyysistä eriäviä tuloksia, kuten esimerkiksi resurssien kulutus, silmukoiden kompleksisuus ja ohjelman suorat virheet, esimerkiksi nollalla jakamiset, tyhjät osoitukset ja muistivuodot. Itse ohjelmakoodin tarkastusmenetelmiä löytyy lukuisia, joista monet osoittautuvat erittäin lupaaviksi. Abstrakti tulkinta on hyvin yleinen lähestymistapa ohjelmakoodin tarkastukselle. Tässä tulkinnassa pyritään luomaan kaikki mahdolliset suorituspolut, ja määrittelemään päätyykö yksikään polku virhetilaan. Erilaisia abstrakteja tulkintoja ovat esimerkiksi mallien louhinta ja deduktiivinen koodintarkastaminen. Tässä tutkielmassa tutustutaan koodin analyysiin, sekä erilaisiin automaattisiin koodintarkastusmenetelmiin. Jokaista menetelmää tarkastellaan eri näkökulmista ja tutustutaan niiden vahvuuksiin ja heikkouksiin. Lopuksi tehdään katsaus näihin menetelmiin käytännön kautta.

Identificador

http://www.doria.fi/handle/10024/122850

Idioma(s)

fi