En ny plattform for testing av komplekse distribuerte programvaresystemer
Et nytt verktøy temmer ikke bare kompleksiteten ved å teste store distribuerte systemer, men gjør det på en måte som reduserer kostnadene uten å ofre kvaliteten. Potensialet for storstilte distribuerte programvaresystemer er enormt. Ved å dele programvarekomponenter på flere datamaskiner, er slike systemer feiltolerante, elastiske og kostnadseffektive. De kan også forbedre effektiviteten og ytelsen til et bredt spekter av dataoppgaver. Til tross for dette potensialet, forblir tilbudet av store, sammenkoblede systemer ganske lite etterspurt. Dette fordi det ofte er store kostnader forbundet ved å validere slike programvaresystemer samt komplekse testprosesser.
“Hver gang utviklere ønsker å validere ikke-funksjonelle funksjoner, må de først lage komplekse testarkitekturer, som inkluderer tilpasning av skymekanismer og administrering av testing og skalerbarhet,” sier Francisco Gortázar Bellas, professor ved Rey Juan Carlos universitetet. Som om dette ikke var komplisert nok, blir ting ytterligere komplisert av
behovet for å reprodusere virkelige operasjonelle forhold.
Redusere og forenkle
Med sikte på å forenkle og effektivisere valideringsprosessen, satte det EU-finansierte ELASTEST-prosjektet seg for å gi utviklingslag de verktøyene de trenger for å raskt kunne levere mangelfull programvare. ElasTest-verktøyet ble designet for ikke bare å temme kompleksiteten ved å teste store distribuerte systemer, men også for å redusere kostnadene samtidig som kvaliteten opprettholdes.
For å oppnå dette, fokuserte forskere på tre hovedmål: å redusere tiden til markedet, redusere feilen for lokalisering av feilen og forenkle testprosessen.
Når det gjelder å redusere tiden til markedet, tilbyr ElasTest en rekke tjenester som kan brukes ‘ut-av-boksen’ gjennom veldokumenterte REST API-er. Disse tjenestene kan brukes enkeltvis eller via forskjellige kombinasjoner. Alle har verktøy på forespørsel som kan utnyttes fra testkoden. Disse inkluderer nettlesere, Internet of Things (IoT) enheter, sikkerhetskontroller, overvåking og dataanalyse.
For å redusere tiden det tar å lokalisere en feil, gir verktøyet brukeren visualiseringer og analyseverktøy. “Med loganalyse, oppgavefokusert rapportering og loggesammenligning hjelper denne funksjonen brukeren til å finne den nålen i en høystakk,” forklarer Gortázar.
ElasTest kan også bidra til å forenkle prosessen med å sette opp og kjøre tester ved å bruke et domenespesifikt språk som samsvarer med Jenkins kontinuerlige integrasjonsserver, en av de mest populære kontinuerlige integrasjonsserver-modellene på markedet.
“I en verden der skyen blir en vare og tjenester distribueres, kan et verktøy som ElasTest gjøre en stor forskjell når vi vurderer komplekse applikasjoner,” legger Gortázar til. Verktøyet er validert i forskjellige bruksdomener, inkludert web, 5G, sanntidskommunikasjon og IoT.
Dedikert fokus
Selv om prosjektet måtte gjøre flere justeringer underveis, for eksempel å tilby løsninger for både automatisk og manuell testing, vaklet det aldri fra kjernefokuset: integrering av forskjellige komponenter ved bruk av beste praksis i kontinuerlig integrering og levering.
“Vårt dedikerte fokus er det som gjorde at vi kan komme videre i et konstant tempo og samtidig minimere risikoen,” sier Gortázar. “Dette er hemmeligheten bak suksessen vår – en suksess som er godt dokumentert av våre betydelige formidlingsaktiviteter.”
Disse formidlingsaktivitetene inkluderte publisering av 15 ElasTest-programvareutgivelser og en rekke artikler i, eller presentert på, 34 forskjellige tidsskrifter og konferanser – inkludert International Conference on Software Engineering
(ICSE). Prosjektet deltok også på noen av bransjens viktigste testkonferanser.
Oversetting og tilrettelegging av Michael Undseth-Gyllenberg. © Europa Unionen, 2020 – Kilde: CORDIS, cordis.europa.eu.