Opfører dit system sig som forventet?

Tema: Fra manuelle brugertest over automatiseret test til modelverifikation. I dag eksisterer der forskellige måder at sikre et systems robusthed og korrekthed.

Artikel top billede

(Foto: SH Søren Holm)

Når man tester et system, gør man det blandt andet for at sikre, at det opfører sig som forventet og at det kan håndtere uventede situationer.

Kan systemet eksempelvis håndtere danske tegn som æ, ø og å?

Brian Nielsen, lektor i datalogi fra Aalborg Universitet, har specialiseret sig i test og har blandt andet siddet med i programkomiteen for den netop overståede konference om softwaretest "Software testing, Verification and Validation",

Fra klassisk test til modelverifikation

På den internationale softwaretest-konference som blev afholdt for andet år i træk, så forskere og udviklere nærmere på en række teknikker til at sikre veltestet og velfungerende software.

Teknikkerne spænder fra manuelle testcases til matematisk bevisførelse for et programs korrekthed.

"Der er den klassisk manuelle test, hvor en række testcases beskrives. Her kan man manuelt udføre en række scenarier skridt for skridt for at se, om systemet opfører sig som forventet," siger Brian Nielsen.

Den slags manuelle test kan automatiseres ved at anvende et program, der kan afvikle test-cases.

"Man kan opnå et niveau af automatisering, ved at skrive eller anvende et program, der kan afvikle test-cases. Det giver så en automatisk testafvikling. Der kan også være tale om et capture-replay, hvor alle tastetryk optages, så det kan afspilles senere," siger Brian Nielsen.

På komponent-/metodeniveau kan udviklerne også anvende automatiserede test - unit-test - der sikrer, at de enkelte komponenter/metoder lever op til den forventede funktionalitet.

De automatiserede test og unit-test er i dag teknikker som i udpræget grad anvendes i almindelig systemudvikling.

Modelbaseret test

Ved at specificere kravene til et system på en bestemt måde, er det muligt at få softwareværktøjer til automatisk at udtrække testcases fra de beskrevne krav.

"Her syntetiseres test ud fra en højniveaubeskrivelse af kravene til et system, så der sker en automatisk dannelse af testcases. Det stiller selvfølgelig krav til, hvordan kravene er specificeret. I starten er kravene som regel specificeret som uformelle krav i et word-dokument.

Det skal laves om til en formel model, der beskriver hvad de lovlige handlinger er i systemet. Her anvender man typisk varianter af tilstandsmaskiner som UML-statecharts. Hvis man beskriver hvordan systemet skal reagere på input ved hjælp af UML-statecharts, så kan værktøjer automatisk generere test-cases på den bagggrund," forklarer Brian Nielsen.

De automatisk genererede test-cases kan så efterfølgende automatisk blive afviklet.

Ifølge Brian Nielsen er den slags modelbaseret test lige begyndt at blive anvendt i industrien.

Man kan gå skridtet videre og begynde at verificere om modellen for systemet er korrekt.

Verifikation af model erstatter ikke test

Hvis man har en model af et system - en formel beskrivelse af systemkravene - har man mulighed for at undersøge om modellen er korrekt inden man begynder at kode.

"Man kan foretage modelverifikation inden implementering. Her checker man, om modellen overholder kravene, så det er mere verifikation end test. Når man laver model-checking, analyserer man modellen for programmet. Det nærmer sig et matematisk bevis for at modellen er korrekt," siger Brian Nielsen, der betegner verifikation og test som komplementære teknikker

Derfor er det strengt nødvendigt at teste koden - modelimplementeringen - selvom man har foretaget en grundig modelverifikation.

"Modelverifikation er ikke garanti for, at selve koden kørende på noget specifikt hardware rent faktisk fungerer. Det skal testes. Jeg tror aldrig, at man kommer udenom at skulle afvikle en vis mængde test på et kørende system på det fysiske system. Her er der jo tale om at sikre, at en konkret afvikling af det konkrete software på konkret hardware opfører sig som forventet," siger Brian Nielsen.

Modelverifikation er ikke særlig udbredt i industrien i dag, men ifølge Brian Nielsen er der en stigende interesse for det.

Test kan ikke undgås

Man kan fristes til at tro, at de mange muligheder for at teste og verificere software og modeller vil give mulighed for at opnå fejlfri software, men det vil være en fejlkonklusion.

"Fejlfri systemer er at tage munden for fuld. Men teknikkerne giver mulighed for at opnå en bedre pris og kvalitet," siger Brian Nielsen,

Læses lige nu
    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    It-løsninger | København Ø

    Automatisering med Copilot & Agentic AI

    Høst viden og erfaringer fra andre om, hvordan Copilot og Agentic AI i praksis kan skabe værdi og fleksibilitet i din organisation.

    Sikkerhed | Online

    Erfaringer fra frontlinjen: Sådan ændrer trusselsbilledet sig

    Kort og fokuseret digitalt event: Erfaren frontkæmper fra den digitale sikkerhedsverden giver dig overblik og konkrete anbefalinger til det aktuelle trusselsbillede.

    Andre events | Valby

    CIO Challenges: Teknologi, transformation og ledelse der flytter forretningen

    Hvordan moderniseres en it-platform uden legacy? Hvordan skaber man nye AI‑ og cloud‑drevne forretningsmodeller – uden at miste medarbejdere eller brugere undervejs? På CIO Challenges 2025 får du hands‑on erfaringer fra fire danske CIO’er, der...

    Se alle vores events inden for it

    Netcompany A/S

    IT Manager

    Københavnsområdet

    Netcompany A/S

    Test Consultant

    Nordjylland

    Forsvarsministeriets Materiel- og Indkøbsstyrelse

    Kickstart din karriere og bliv IT-supporterelev hos Haderslev Kaserne

    Sydjylland

    Navnenyt fra it-Danmark

    IT Confidence A/S har pr. 1. oktober 2025 ansat Henrik Thøgersen som it-konsulent med fokus på salg. Han skal især beskæftige sig med rådgivende salg, account management og udvikling af kundeporteføljer på tværs af it-drift, sikkerhed og cloud-løsninger. Han kommer fra en stilling som freelancer i eget firma og client manager hos IT Relation og IT-Afdelingen A/S. Han er uddannet elektromekaniker. Han har tidligere beskæftiget sig med salg af it-løsninger, account management, it-drift og rådgivning samt undervisning og ledelse. Nyt job

    Henrik Thøgersen

    IT Confidence A/S

    IT Confidence A/S har pr. 1. oktober 2025 ansat Johan Léfelius som it-konsulent. Han skal især beskæftige sig med med support, drift og vedligeholdelse af kunders it-miljøer samt udvikling af sikre og stabile løsninger. Han kommer fra en stilling som kundeservicemedarbejder hos Telia Company Danmark A/S. Han er uddannet (under uddannelse) som datatekniker med speciale i infrastruktur. Han har tidligere beskæftiget sig med kundeservice, salg og teknisk support. Nyt job

    Johan Léfelius

    IT Confidence A/S

    Netip A/S har pr. 15. september 2025 ansat Jimmi Overgaard som Key Account Manager ved netIP's kontor i Viborg. Han kommer fra en stilling som Sales Executive hos Globalconnect A/S. Nyt job

    Jimmi Overgaard

    Netip A/S

    Netip A/S har pr. 19. august 2025 ansat Marck Stadel Klaris som Datateknikerelev ved netIP's kontor i Herning. Nyt job