Bot_tag.jpg


Chatbotin ohjelmallisella testauksella varmistetaan että botti toimii kuten pitää. Testausta suoritetaan sekä kuiskaajan että kehittäjän toimesta, ja julkaisun yhteydessä.

Botfrontin testaustoiminnallisuudet ovat helppokäyttöisiä sekä reaaliaikaisia ja siksi ne soveltuvat hyvin kehityksen aikaiseen testaukseen. Botfrontissa suoritetut testit kuitenkin vaativat että koko infra on pystyssä (kaikki kontit). Botfrontin dokumentaatiosta saa hyvät ohjeet kuinka testejä voi luoda: https://botfront.io/docs/rasa/testing/ ja https://botfront.io/docs/rasa/nlu/evaluation/.

Testausprosessin vaiheet

  1. Testaus Botfrontissa kehityksen aikana
    • Luodaan testit
    • Ajetaan testit
    • Validoidaan testitulokset
    • Exportoidaan projekti
  2. Testaus koneellisesti
    • Käynnistetään testit Rasa-kontissa Python-skriptillä.

Dialogipolkujen testaus

Dialogipolkujen testauksen vaiheet:

  1. Testaus Botfrontissa kehityksen aikana
    • Luodaan testit (kts. ohjeet Botfrontin dokumentaatiosta)
      • Testitapaukset luodaan tägäämällä käydyt keskustelut testitapaukseksi.
      • Testitapaus ilmestyy dialogiluetteloon nimellä "test_xxx".
    • Ajetaan testit
      • Train -valikosta voidaan käynnistää testit joko kaikille kielille tai vain valitulle kielelle.
    • Validoidaan testitulokset
      • Korjataan dialogit jos niissä ilmenee testien perusteella jotain ongelmia.
      • Korjataan testit jos niissä on virheitä.
      • Ajetaan testit uudestaan ja varmistetaan että kaikki menee läpi (Botfront tulostaa ruudulle koonnin tuloksista).
    • Exportoidaan projekti
      • Kun botin kehitysversio halutaan julkaista, exportoidaan projektin tiedostot jolloin luodut testit siirtyy omassa kansiossa "tests" osana projektia.
  2. Testaus koneellisesti
    • Käynnistetään testit Rasa-kontissa hakemiston juuressa. Oletuksena ajetaan kaikki testitapaukset jos projektissa on monikielisyys tuettu.
      • python -m testing.run_story_tests
        • argumentilla --language voidaan kuitenkin valita tietyt kielet joita testataan, esimerkiksi suoritettaessa suomen- ja englannin kielellä olevat testitapaukset:
          • python -m testing.run_story_tests --language fi en
      • Oletuksena on että Rasa-kontissa on
        • treenattu malli app/models -kansiossa.
        • testikansio (. /tests) jossa exportoidut testit luettavissa koneellisesti.
        • testaus-skripti omassa kansiossa (./testing).
    • Testien ajo ja validointi tapahtuu automaattisesti.
      • Oletuksena on että kaikkien story-testien täytyy mennä läpi.
      • Jos virheitä tulee, skripti nostaa virheen esille.

Intenttien testaus

Rasan intentaatiotestaus ei tue monikielisyyttä. Tämän vuoksi Rasan lähdekoodiin täytyy lisätä kielisyys joka tukee testausprosessia jossa testataan intentit eri kielillä.

Kuva: Dialogipolkujen testausprosessin teknisen toteutuksen periaate. Testit kehitetään Botfrontissa joko kehittäjän tai kuiskaajan toimesta jolloin ne tallentuu Mongo-tietokantaan. Testit ovat osa projetktia ja siirtyvät siten exportin yhteydessä joko isäntäserverille tai versionhallintaan josta ne kopioidaan Rasa-konttiin buildin yhteydessä.

  • No labels