Tekoälyä hyödyntävän järjestelmän testaamisen haasteet
Collander, Katariina (2021)
Collander, Katariina
2021
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-03-03
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202103012318
https://urn.fi/URN:NBN:fi:tuni-202103012318
Tiivistelmä
Tekoälyn käytön yleistyttyä ja sen vastuun kasvettua tekoälyn testaaminen on noussut tärkeäksi tutkimusaiheeksi. Tekoälyn testaamisen ala ei ole vielä vakiintunut. Alalle kaivataan yhteisiä menetelmiä ja enemmän vertailevaa tutkimusta. Tässä työssä perehdytään tekoälyä käyttävän järjestelmän testaamisen haasteisiin. Työn tavoite on selvittää, mitkä ovat testaamisen merkittävimmät haasteet sekä mitä ratkaisuja haasteisiin on esitetty.
Tässä työssä tekoälyn testaamisella tarkoitetaan sellaisen järjestelmän ohjelmistotestausta, jossa on tekoälykomponentti. Järjestelmän testaaminen tehdään testiaineistolla, joka on samankaltaista kuin tekoälyn opetusaineisto. Testatessa pyritään saamaan tietoa esimerkiksi järjestelmän oikeellisuudesta, varmuudesta ja tehokkuudesta.
Työ on toteutettu kaksivaiheisena systemaattisena kirjallisuuskatsauksena. Ensimmäisessä osassa pyrittiin saamaan yleiskuva tekoälyn testaamisen tutkimuksen tilasta ja todeta testaamisen merkittävimmät haasteet. Kirjallisuuskatsauksen toisen osan tavoitteena oli löytää aineistoja, joissa keskityttiin selkeästi yhteen havaituista haasteista. Ensimmäisessä osassa löydettiin 6 aineistoa, jotka ovat yleiskatsauksia tekoälyn testaamisesta. Niiden pohjalta havaittiin kolme merkittävää haastetta. Merkittävimmät havaitut haasteet ovat testioraakkelin puuttuminen, merkittävän testiaineiston generointi sekä merkittävien testimetriikoiden määrittely.
Ensimmäinen havaittu haaste on oraakkelittomuus. Tekoälyllä ei ole testioraakkelia, sillä oikea tulos voi vaihdella, eikä oikeaa tulosta välttämättä tiedetä. Testioraakkelin puuttuminen tekee tekoälyn testaamisesta haastavaa, sillä testiaineiston tuottamien tuloksien oikeellisuutta ei voida varmistaa. Haastetta on pyritty ratkaisemaan metamorfisella oraakkelilla ja muilla pseudo-oraakkeleilla. Toinen tekoälyn testaamiseen liittyvä haaste on realististen ja hyödyllisten testien generointi tehokkaasti. Testiaineistoa voi tuottaa esimerkiksi generoimalla kilpailevia testitapauksia (engl. Adversarial tests) sekä konkreettisella ja symbolisella analysoinnilla (engl. Concolic testing). Testiaineiston tuottamiseen liittyy myös testiaineiston valitseminen ja priorisointi, jota voidaan tehdä esimerkiksi neuronikattavuuden perusteella. Viimeinen havaittu haaste on merkittävien testimetriikoiden määrittely. Neuroverkoille on esitetty metriikaksi erilaisia strukturaalisia kattavuuksia niin kuin neuronikattavuus. Testaamisen laatua voidaan mitata myös esimerkiksi yllätysriittävyydellä ja mutaatiotestaamisella.
Kirjallisuuskatsauksen perusteella havaittiin, että useita tekoälyn testaamiseen käytettyjä tekniikoita, kuten metamorfista testausta ja kilpailevia testejä, kritisoidaan niiden tuottamien testien epärealistisuudesta, joka vähentää niiden informatiivisuutta. Lisäksi esitettyjä testimetriikoita, esimerkiksi neuronikattavuutta, on kritisoitu, sillä niiden hyödyllisyyttä ei ole pystytty todistamaan.
Tässä työssä tekoälyn testaamisella tarkoitetaan sellaisen järjestelmän ohjelmistotestausta, jossa on tekoälykomponentti. Järjestelmän testaaminen tehdään testiaineistolla, joka on samankaltaista kuin tekoälyn opetusaineisto. Testatessa pyritään saamaan tietoa esimerkiksi järjestelmän oikeellisuudesta, varmuudesta ja tehokkuudesta.
Työ on toteutettu kaksivaiheisena systemaattisena kirjallisuuskatsauksena. Ensimmäisessä osassa pyrittiin saamaan yleiskuva tekoälyn testaamisen tutkimuksen tilasta ja todeta testaamisen merkittävimmät haasteet. Kirjallisuuskatsauksen toisen osan tavoitteena oli löytää aineistoja, joissa keskityttiin selkeästi yhteen havaituista haasteista. Ensimmäisessä osassa löydettiin 6 aineistoa, jotka ovat yleiskatsauksia tekoälyn testaamisesta. Niiden pohjalta havaittiin kolme merkittävää haastetta. Merkittävimmät havaitut haasteet ovat testioraakkelin puuttuminen, merkittävän testiaineiston generointi sekä merkittävien testimetriikoiden määrittely.
Ensimmäinen havaittu haaste on oraakkelittomuus. Tekoälyllä ei ole testioraakkelia, sillä oikea tulos voi vaihdella, eikä oikeaa tulosta välttämättä tiedetä. Testioraakkelin puuttuminen tekee tekoälyn testaamisesta haastavaa, sillä testiaineiston tuottamien tuloksien oikeellisuutta ei voida varmistaa. Haastetta on pyritty ratkaisemaan metamorfisella oraakkelilla ja muilla pseudo-oraakkeleilla. Toinen tekoälyn testaamiseen liittyvä haaste on realististen ja hyödyllisten testien generointi tehokkaasti. Testiaineistoa voi tuottaa esimerkiksi generoimalla kilpailevia testitapauksia (engl. Adversarial tests) sekä konkreettisella ja symbolisella analysoinnilla (engl. Concolic testing). Testiaineiston tuottamiseen liittyy myös testiaineiston valitseminen ja priorisointi, jota voidaan tehdä esimerkiksi neuronikattavuuden perusteella. Viimeinen havaittu haaste on merkittävien testimetriikoiden määrittely. Neuroverkoille on esitetty metriikaksi erilaisia strukturaalisia kattavuuksia niin kuin neuronikattavuus. Testaamisen laatua voidaan mitata myös esimerkiksi yllätysriittävyydellä ja mutaatiotestaamisella.
Kirjallisuuskatsauksen perusteella havaittiin, että useita tekoälyn testaamiseen käytettyjä tekniikoita, kuten metamorfista testausta ja kilpailevia testejä, kritisoidaan niiden tuottamien testien epärealistisuudesta, joka vähentää niiden informatiivisuutta. Lisäksi esitettyjä testimetriikoita, esimerkiksi neuronikattavuutta, on kritisoitu, sillä niiden hyödyllisyyttä ei ole pystytty todistamaan.
Kokoelmat
- Kandidaatintutkielmat [8315]