Hvad er indlejret test i softwaretest?
⚡ Smart opsummering
Indlejret testning kontrollerer den funktionelle og ikke-funktionelle adfærd af software og hardware sammen, fordi de to i et indlejret system er tæt forbundet, og ingen af dem kan valideres korrekt alene.
Hvad er indlejrede systemer?
Embedded systemer er elektronisk styrede enheder, hvor software og hardware er tæt forbundet. Indlejrede systemer kan indeholde en række forskellige computerenheder. Disse er pc'er, der er indbygget i andre enheder for at udføre applikationsspecifikke funktioner. Slutbrugeren er normalt ikke engang klar over deres eksistens.
Indlejret test
Indlejret testning er en testproces til kontrol af funktionalitet og ikke-funktionelle egenskaber ved både software og hardware i et indlejret system og sikring af, at slutproduktet er fri for defekter. Hovedformålet med test af indlejret hardware og software er at verificere og validere, om slutproduktet af indlejret hardware og software opfylder kundens krav eller ej.
Test af indlejret software kontrollerer og sikrer, at den pågældende software er af god kvalitet og overholder alle de krav, den skal opfylde. Test af indlejret software er en fremragende metode til at garantere sikkerhed i kritiske applikationer som medicinsk udstyr, jernbaner, luftfart, køretøjsindustrien osv. Strenge og omhyggelige test er afgørende for at opnå softwarecertificering.
Sådan udføres Embedded Software Testing
Generelt tester du af fire grunde:
- For at finde fejl i software
- Hjælper med at reducere risikoen for både brugere og virksomheden
- Skær ned på udviklings- og vedligeholdelsesomkostninger
- For at forbedre ydeevnen
Ved indlejret testning udføres følgende aktiviteter:
- Softwaren leveres med nogle input.
- Et stykke software udføres.
- Softwarens tilstand observeres, og outputtet kontrolleres for forventede egenskaber, såsom om outputtet matcher det forventede resultat, overholdelse af kravene og fravær af systemnedbrud.
Indlejrede softwaretesttyper
Grundlæggende er der fem testniveauer, der kan anvendes på indlejret software.
Test af softwareenheder
Enhedsmodulet er enten en funktion eller en klasse. Enhedstestning udføres af udviklingsteamet, primært udvikleren, og udføres normalt i en peer-review-model. Testcases udvikles baseret på modulets specifikation.
Integrationstest
Integrationstest kan opdeles i to segmenter:
- Softwareintegrationstest
- Test af software-/hardwareintegration
Til sidst testes interaktionen mellem hardwaredomænet og softwarekomponenterne. Dette kan omfatte en undersøgelse af interaktionen mellem indbyggede perifere enheder og software.
Udvikling af indlejret software har en unik egenskab: det faktiske miljø, hvor softwaren kører, skabes generelt parallelt med softwaren. Dette forårsager ulemper ved testning, da omfattende testning ikke kan udføres under simulerede forhold.
Systemenhedstest
Modulet, der skal testes, er nu et komplet framework, der består af den komplette softwarekode plus alt realtidsoperativsystem (RTOS) og platformrelaterede dele såsom afbrydelser, opgavemekanismer, kommunikation osv. Point of Control-protokollen er ikke længere et kald til en funktion eller en metodekaldelse, men snarere en besked, der sendes eller modtages ved hjælp af RTOS-meddelelseskøerne.
Systemressourcer observeres for at evaluere systemets evne til at understøtte indlejret systemudførelse. For dette aspekt, grå boks testning er den foretrukne testmetode. Afhængigt af organisationen er systemenhedstestning enten udviklerens eller et dedikeret systemintegrationsteams opgave.
Systemintegrationstest
Modulet, der skal testes, starter med et sæt komponenter inden for en enkelt node. Kontrol- og observationspunkter (PCO'er) er en blanding af netværksrelaterede kommunikationsprotokoller og RTOS-hændelser, såsom netværksmeddelelser. Ud over at være en komponent kan en virtuel tester også fungere som en node.
Systemvalideringstest
Modulet, der skal testes, er et delsystem med en komplet implementering eller det komplette indlejrede system. Formålet med denne afsluttende test er at opfylde funktionelle krav til eksterne enheder. Bemærk, at en ekstern enhed kan være en person eller en enhed i et telekommunikationsnetværk eller begge dele.
Forskel: Indlejret test og softwaretest
Tabellen nedenfor sammenligner indlejret testning med konventionel software test.
| Software Testing | Indlejret test |
|---|---|
| Softwaretest er kun relateret til software. | Indlejret test er relateret til både software og hardware. |
| I gennemsnit er 90% af den test, der udføres i verden, udelukkende manuel sort kasse test. | Indlejret testning udføres på indlejrede systemer eller chips, og det kan være en black box eller hvid boks test. |
| Primære testområder er GUI-tjek, funktionalitet, validering og et vist niveau af databasetest. | De primære testområder er hardwarens opførsel i forhold til antallet af input, der gives til den. |
| Softwaretest udføres hovedsagelig på klient-server, web- og mobilbaserede applikationer. | Indlejret testning udføres generelt på hardwaren. |
| f.eks, Google Mail, Yahoo Mail, Android applikationer. | f.eks. maskiner inden for sundhedsvæsenet, mikrocontrollere, der anvendes i computere. |
Udfordringer: Embedded Software Testing
Nogle af de udfordringer, man kan støde på under test af indlejret software:
Hardware afhængighed
Hardwareafhængighed er blandt de største vanskeligheder, man står over for under test af indlejret software, på grund af begrænset adgang til hardware. Emulatorer og simulatorer repræsenterer dog muligvis ikke præcist den faktiske enheds opførsel og kan give en forkert fornemmelse af systemets ydeevne og applikationens brugervenlighed.
Open Source Software
Størstedelen af de indlejrede softwarekomponenter er af open source-natur, er ikke udviklet internt, og der findes ingen komplet testsuite til dem. Der findes en bred vifte af testkombinationer og resulterende scenarier.
Software vs. hardwarefejl
Et andet aspekt er, når software udvikles til nyoprettet hardware. Under denne proces kan en høj andel af hardwarefejl identificeres. Den fundne fejl er ikke begrænset til software. Den kan også være relateret til hardware.
Reproducerbare defekter
Fejl er sværere at reproducere eller genskabe i tilfælde af et indlejret system. Det tvinger den indlejrede testprocedure til at værdsætte enhver fejlforekomst væsentligt højere end i et standardtilfælde, og til at indsamle så mange data, som med rimelighed kan kræves for at finde den grundlæggende årsag til fejlen.
Løbende softwareopdateringer
Indlejrede systemer kræver regelmæssige softwareopdateringer som kernelopgraderinger, sikkerhedsrettelser, forskellige enhedsdrivere osv. Begrænsninger forbundet med softwareopdateringer gør det vanskeligt at identificere fejl. Derudover øger det betydningen af bygge- og implementeringsproceduren.
