Kopioi artikkelin PDF-versio

Tietoliikenneohjelmistojen testauksen automatisointi

Protokollatestaus uudelle vuosituhannelle

aloitus

Tietoliikenneohjelmistojen testauksessa käytettävän TTCN-kielen suosio kasvaa maailmalla valmiiden testiaineistojen ja kieltä tukevien työkalujen ansiosta. Uusimmilla työkaluilla TTCN-kieli tulkitaan kehitysympäristössä ilman aikaa vieviä välivaiheita. Samoin siirtyminen kohdeympäristön testaukseen on joustavaa.

Testauksen merkitys tuotteen laadun varmistamisessa on kiistämätön. Testauksen tavoitteena on varmistaa testattavan ohjelmiston tai laitteen oikea toiminta. Tietoliikenneohjelmistojen kehityksessä vaatimukset testaukselle ovat tavallisia ohjelmistoja suuremmat näiden ohjelmistojen koon, monimutkaisuuden ja käytettävyysvaatimusten seurauksena. Kun testaus muodostuu yksikkö-, integrointi-, järjestelmä- ja toiminnallisuuden testauksesta, testauksen osuus saattaa olla yli puolet tällaisen ohjelmiston kehityspanoksesta. Testauksen automatisoinnilla voidaan manuaalisen työn määrää yrittää vähentää ja testaukseen kuluvaa aikaa lyhentää.

Tietoliikenneohjelmistojen testaus perustuu ISO 9646 -standardisarjaan. Tämä määrittelee metodologian tietoliikenneprotokollien yhdenmukaisuustestaukselle, joka luo pohjan tietoliikennelaitteiden tyyppihyväksynnälle. Sarjan kolmas osa, ISO 9646-3, sisältää Tree and Tabular Combined Notation (TTCN) -testiaineistojen määrittelykielen. ISO 9646 ja TTCN ovat valmistajien, tutkijoiden, testilaboratorioiden ja asiakkaiden yhteisesti käyttämiä ja hyväksymiä. Yleisesti hyväksytty menetelmä mahdollistaa vakioitujen asiantuntijapalveluiden tarjonnan.

Valmiita testitapauksia löytyy ATM-protokollien testaukseen ATM Forumilta ja ETSI:ltä muun muassa ATM-, DECT-, GSM-, ISDN- ja V5.1/V5.2-protokollien testaukseen. Useat yritykset toteuttavat itse TTCN-kielisiä testiaineistoja myös sellaisille protokollille, joiden testiaineistoja ei ole muuten saatavilla tai laajentavat yleisesti saatavia testiaineistoja näiden aineistojen kattavuuden parantamiseksi. Testiaineistoa, joka on kuvattu TTCN:llä, voi käyttää myös dokumentointiin. ISO 9646 -pohjainen testaussuunnitelma, testiaineisto ja testiraportti kertovat selkeästi, miten ohjelmisto tai laite on testattu.

Testaus työasemaympäristössä

TTCN on alunperin suunniteltu tietoliikenneprotokollien yhdenmukaisuustestaukseen, jonka perusteella sitä käytetään myös tyyppihyväksyntätestauksessa. Kielen monipuolisuuden vuoksi sitä voidaan soveltaa myös ohjelmiston kehitysaikana (moduuli-, integrointi- ja järjestelmätestaus). Työasemaympäristö antaa mahdollisuuden testata järjestelmää mahdollisimman aikaisessa vaiheessa ja mahdollistaa erilaisten ohjelmointityökalujen, kuten debuggerin, muistinkäytön tarkastajan ja profilointityökalun, käytön testauksen aikana. TTCN:n käyttö jättää selkeän mallin myöhäisempään regressiotestaukseen. Kielen soveltamista on rajoittanut eniten tieto- ja taitokynnys sekä joustavien kaupallisesti saatavilla olevien ohjelmien puute.

Open Environment Software Oy on toteuttanut työasemaympäristössä toimivan OpenTTCN-protokollatesterin. Testeri on käyttövalmis ohjelma, jota voidaan käyttää ohjelmistonkehittäjien ja testaajien toimesta työasemaverkossa. OpenTTCN:n kehitykseen lähdettiin yrityksen perustamista seuraavana vuonna 1994, kun huomattiin protokollatestaukseen kaupallisesti tarjottavien tuotteiden vähäisyys verrattuna testauksen huomattavan suureen osuuteen tuotekehityksessä (jopa yli 50% ajasta).

OpenTTCN-testeri koostuu käyttöliittymästä ja testien ajoympäristöstä. Testien ajoympäristö on ohjelma, joka tulkkaa sille annetun TTCN.MP-kielisen testiaineiston ja ajaa halutut testitapaukset. Testeri on siten valmis testiaineiston ajoon ilman testiaineistosta tapahtuvaa koodin generointia, joihin muut vastaavat työkalut perustuvat. Tämä mahdollistaa uusien testitapausten käyttöönoton ilman aikaavievieviä välivaiheita. Tällainen ominaisuus on tarpeellinen mm. uusia testiaineistoja kehitettäessä, kun juuri valmistuneita testitapauksia ajetaan ns. referenssitoteutusta vasten.

OpenTTCN:n rakenne

Testeri on saatu itsenäiseksi ohjelmaksi erottamalla siitä testiaineiston informaalisti tai implisiittisesti kuvatut osat omiksi palvelimikseen, joiden kanssa ajoympäristö keskustelee OMG:n CORBA-standardin mukaisen ORB:n avulla (katso OMG, CORBA, IDL ja ORB). Näiden palvelinten rajapinnat on määritelty IDL-kielen avulla ja OpenTTCN tarjoaa C++- ja Java-kieliset kirjastot helpottamaan näiden rajapintojen käyttöä. Tällaisia testeristä erillisiä osia ovat liitännät testattavaan järjestelmään ja luonnollisella kielellä määritellyt testiaineistokohtaiset operaatiot. Testeri käyttää IDL-rajapintoja myös käyttöliittymän ja ajoympäristön välissä sekä lokin tulostukseen. Näiden rajapintojen avulla ajoympäristö voidaan helposti integroida esimerkiksi kolmannen osapuolen protokollatesteriin.

OpenTTCN-ajoympäristö liitetään testattavaan järjestelmään (SUT, System Under Test) fyysisen tai virtuaalisen (ohjelmistolla toteutetun) siirtotien avulla. Tämä liitäntä toteutetaan testiaineistokohtaisten N-1 -palvelinten avulla, jotka liittyvät testeriin ORB:n avulla (katso Point of Control and Observation). Kukin palvelin vastaa vastaa testiaineistossa kuvattua PCO (Point of Control and Observation) -oliota. Testeri ei rajoita siihen integroitavien laitteistoliitäntöjen määrää tai laatua. Liitäntöjen lukumäärä voikin riippua testauskonfiguraatiosta.

CORBA ORB:n soveltaminen testerissä antaa mahdollisuuden hajauttaa laitteistoliitäntä mukaan lukien N-1 -palvelin eri tietokoneeseen kuin missä itse testeri sijaitsee, mikä helpottaa fyysisesti hajautettujen testikonfiguraatioiden toteuttamista. Tätä ominaisuutta tarvitaan ns. Network Integration Testing (NIT) -testauksessa. Näin voidaan käyttää hyväksi myös kunkin ympäristön vahvuuksia ja mahdollisesti vain joihinkin ympäristöön saatavia liitäntäkortteja.

Aiheesta enemmän

ATM Forum, ATM-testiaineistoja:www.atmforum.org/

ETSI, tietoliikenneprotokollien testiaineistoja: http://www.etsi.org/

EURESCOM, NIT-testiaineistoja: http://www.eurescom.de/

IFIP IWTCS 99, testausseminaari: http://hsnlab.ttt.bme.hu/iwtcs99.html

OES, OpenTTCN-tester: http://www.oes.fi/

OMG, CORBA-standardi: http://www.omg.org/

Telelogic, TTCN-editori: http://www.telelogic.se/

Da Vinci, TTCN-selain: http://www.davinci-communications.com/


TTCN, Tree and Tabular Combined Notation

Tree and Tabular Combined Notation (TTCN) on formaali testiaineistojen kuvauskieli. Kieli on määritelty ISO 9646-3 -standardissa, joka julkaistiin ensimmäisen kerran vuonna 1992. TTCN on osa laajempaa tietoliikenneprotokollien yhdenmukaisuustestausta käsittelevää ISO 9646 -standardisarjaa. Uusin versio standardista on julkaistu 1998 ja siitä käytetään myös nimeä TTCN Ed. 2. Jo tähän versioon on tehty useita korjauksia, ja korjattua versiota kutsutaan nimellä TTCN Ed. 2+. TTCN-kielen kolmannen version määrittely on jo meneillään ETSI:ssä. Tuleva kolmosversio ei ole yhteensopiva edellisen version kanssa. Tämän takia mm. UMTS-yhdenmukaisuustestien standardoinnissa ollaan päätymässä TTCN Ed. 2+ -version käyttöön.

TTCN perustuu musta-laatikko testaukseen, jossa testattavan ohjelmiston toimintaa seurataan tai siihen vaikutetaan ulkopuolelta tietämättä yksityiskohtia ohjelmiston toteutuksesta. Ohjelmiston toimintaa seurataan ja siihen vaikutetaan kohdasta, jota kutsutaan nimellä PCO (Point of Control and Observation). Tämän pisteen kautta kulkee primitiivejä testeriltä N-1 -palvelimen kautta IUT:lle ja päinvastoin. N-1 -palvelin toteutttaa yhden PCO:n ja sisältää koodausfunktiot ja liitännän fyysiselle tai virtuaaliselle (ohjelmistolla toteutetulle) siirtotielle.

TTCN-kielellä on kaksi muotoa, TTCN.GR (graphical) -muoto, jota käytetään editoreissa ja TTCN.MP (machnine processable) -muoto, jota käytetään työkalujen välisenä tiedostoformaattina. TTCN-kieli sisältää nimensä mukaisesti yksittäisten testitapausten kuvauksen puumaisten testisekvenssien avulla (Tree) sekä näissä käytettävien viestien arvojen ja tyyppien kuvauksen taulukoiden avulla (Tabular). Näiden lisäksi kieli sisältää mahdollisuuden ASN.1-kielen käyttöön viestien kuvauksessa.

Testisekvenssien kuvaus sisältää sekä lähetettävien viestien kuvauksen arvoineen että näihin odotettavat vasteet. Testisekvenssit rakentuvat testitapahtumista, joita ovat mm. Send, Receive, Timeout, Otherwise ja Repeat. Testitapahtumiin voi liittyä sijoituslauseita ja ajastinoperaatioita. Vasteiden kuvauksessa voidaan käyttää monipuolista "villien korttien" joukkoa (mm. listat ja arvoalueet sekä arvojen puuttuminen, ym.) Kun myös vasteet on kuvattu testiaineistossa, testitapaus voidaan suorittaa automaattisesti ja testin lopputulos voidaan ilmaista yksinkertaisen PASS, FAIL, INCONCLUSIVE tuloksen muodossa.

Uusi TTCN Ed. 2 tukee testiaineistojen uudelleenkäyttöä ja helpottaa rinnakkaisten testimallien käyttöä. Tämä uusi versio mahdollistaa testiaineistojen uudelleenkäytön ja helpottaa niiden ylläpitoa, kun testiaineistot suunnitellaan komponenteista (Modular TTCN). Tämä versio sisältää myös menetelmän rinnakkaisten testikomponenttien kuvaukseen (Concurrent TTCN). Näiden avulla voidaan testaustapahtuma kuvata rinnakkaisesti. Tällä helpotetaan mm. välitysjärjestelmien testiaineistojen toteutusta.


Taustat

Kirjoittajat: DI Panu Puro on testausjärjestelmien asiantuntija Open Environment Software Oy:ssä. Vesa-Matti Puro on Open Environment Software Oy:n toimitusjohtaja

Yhteystieto: pmp@oes.fi

Tutkimushanke: OpenTTCN yhteistyössä Calypso-projektin kanssa.

Yhteistyössä: Calypso-projektissa ovat mukana HPY, Nokia, Open Environment Software, More Magic Software, Sonera, TKK ja VTT.

Teknologiaohjelma: TLX