Mudelipõhine testimine

Mudelipõhine testimine on mudelipõhise disaini rakendus tarkvara või süsteemi testimise jaoks.
Mudeleid kasutatakse, et näidata, kuidas testitav süsteem (system under test) peaks käituma, või näitamaks testimise strateegiaid ja -keskkonda.

Mudel, mis näitab testitavat süsteemi, on tavaliselt abstraktne ja osaline väljendus soovitud süsteemi käitumisest. Tuletatud testjuhud (test cases) sellest mudelist on samal abstraktsuse tasemel olevad funktsionaalsed testjuhud. Sellised testjuhud moodustavad kokku abstraktse testkomplekti (abstract test suite). Abstraktset testkomplekti ei saa kasutada testitava süsteemi testimiseks, kuna nad on erinevatel abstraktsuse tasemetel. Käivitatav testkomplekt tuletatakse vastavast abstraktsest testkomplektist. Käivitatav testkomplekt suudab testitava süsteemiga suhelda. See saavutatakse abstraktsete testjuhtude vastavusse seadmisel mingite konkreetsete, sellele süsteemile mõeldud testjuhtudega. Mõned mudelipõhised testimiskeskkonnad sisaldavad piisaval hulgal informatsiooni, et genereerida käivitatavad testkomplektid automaatselt. Teistes keskkondades tuleb abstraktse testkomplekti elemendid viia vastavusse konkreetsete avaldiste või meetodi kutsetega tarkvaras.

Mudelipõhine testimine liigitub musta kasti testimiseks (black-box testing), kuna testkomplektid on tuletatud mudelitest, mitte lähtekoodist. 

Suuremate süsteemide mudelipõhine testimine on siiani arenev valdkond.

Mudelid
Tavaliselt ehitatakse mudelid enne või paralleelselt neile vastava süsteemiga, kuigi neid koostatakse ka juba valmis süsteemide jaoks. Tuntumad keeled testide genereerimiseks on UML, SysML, tuntumad programmeerimiskeeled, lõplikud automaadid ja matemaatilised formalismid.

Praktikas
Mudelipõhine testimine kuulub pigem tarkvara arenduse, kui testide kirjutamise, alla. Arendusmeeskond ehitab rakenduse, mida on võimalik testida, ja loob mudelid funktsioonidest kasutaja vaatevinklist. Sedasi pole vaja testjuhte tuletada ja seega kaob vajadus testjuhtude hoolduseks. See aga ei tähenda, et toodet hooldama ei peaks. Hooldama peab siinkohal mudeleid arendusprotsessi käigus, mis aitab luua parema kvaliteediga tooteid.

Mudelipõhise testimise protsess algab arendajate ja testijate koolitamisest ning õppida selle kohta on palju. Arendajad peavad aru saama testimisest ja testijad peavad õppima uue  kontseptsiooni traditsiooniliste meetodite kõrvale. Seejärel tuleb mudeliseerimine integreerida arendusprotsessi, mis võib osutuda väljakutseks, kuna nõuab muutust tavalisest mõtteviisist tarkvara arenduse kohta.

Viited

Tarkvara testimine