Hva er innebygd testing i programvaretesting?
Hva er innebygde systemer?
Innebygde systemer er de elektronisk kontrollerte enhetene der programvare og maskinvare er tett koblet sammen. Innebygde systemer kan inneholde en rekke dataenheter. Dette er PC-er som er integrert i andre enheter for å betjene applikasjonsspesifikke funksjoner. Sluttbrukeren er vanligvis ikke engang klar over deres eksistens.
Innebygd testing
Innebygd testing er en testprosess for å sjekke funksjonelle og ikke-funksjonelle attributter til både programvare og maskinvare i et innebygd system og sikre at sluttproduktet er feilfritt. Hovedformålet med Embedded-testing er å verifisere og validere om sluttproduktet av innebygd maskinvare og programvare oppfyller kundens krav eller ikke.
Testing av innebygd programvare sjekker og sikrer at den aktuelle programvaren er av god kvalitet og overholder alle kravene den skal møte. Innebygd programvaretesting er en utmerket tilnærming for å garantere sikkerhet i kritiske applikasjoner som medisinsk utstyr, jernbaner, luftfart, kjøretøyindustri osv. Streng og nøye testing er avgjørende for å gi programvaresertifisering.
Slik utfører du testing av innebygd programvare
Generelt tester du av fire grunner:
- For å finne feil i programvare
- Bidrar til å redusere risiko for både brukere og bedriften
- Kutt ned utviklings- og vedlikeholdskostnader
- For å forbedre ytelsen
I Embedded Testing utføres følgende aktiviteter:
1. Programvaren er utstyrt med noen innganger.
2. En del av programvaren kjøres.
3. Programvaretilstanden blir observert, og utdataene blir sjekket for forventede egenskaper som om utgangen samsvarer med det forventede resultatet, samsvar med kravene og fravær av systemkrasj.
Testtyper for innebygd programvare
I bunn og grunn er det fem testnivåer som kan brukes på innebygd programvare
Programvareenhetstesting
Enhetsmodulen er enten en funksjon eller klasse. Enhetstesting utføres av utviklingsteamet, først og fremst utvikleren, og utføres vanligvis i en peer-review-modell. Basert på spesifikasjonen av modulen utvikles testcases.
Integrasjonstesting
Integrasjonstesting kan klassifiseres i to segmenter:
- Programvareintegrasjonstesting
- Integrasjonstesting av programvare/maskinvare.
Til slutt blir interaksjonen mellom maskinvaredomenet og programvarekomponentene testet. Dette kan inkludere å undersøke samspillet mellom innebygde perifere enheter og programvare.
Innebygd programvareutvikling har en unik egenskap som fokuserer på at det faktiske miljøet programvaren kjøres i, vanligvis lages parallelt med programvaren. Dette medfører ulemper for testing siden omfattende testing ikke kan utføres i simulert tilstand.
Systemenhetstesting
Nå er modulen som skal testes et fullstendig rammeverk som består av komplett programvarekode i tillegg alt sanntidsoperativsystem (RTOS) og plattformrelaterte deler som avbrudd, oppgavemekanismer, kommunikasjon og så videre. Point of Control-protokollen er ikke lenger et kall til en funksjon eller en metodeanrop, men snarere en melding sendt/mottatt ved bruk av RTOS-meldingskøene.
Systemressurser observeres for å evaluere systemets evne til å støtte kjøring av innebygde system. For dette aspektet, gråbokstesting er den foretrukne testmetoden. Avhengig av organisasjonen er testing av systemenheter enten utviklerens eller et dedikert systemintegrasjonsteams plikt.
Systemintegrasjonstesting
Modulen som skal testes starter fra et sett med komponenter i en enkelt node. Points of Control and Observations (PCOs) er en blanding av nettverksrelaterte kommunikasjonsprotokoller og RTOS, for eksempel nettverksmeldinger og RTOS-hendelser. I tillegg til en komponent, kan en virtuell tester også spille rollen som en node.
Systemvalideringstesting
Modulen som skal testes er et delsystem med en komplett implementering eller det komplette innebygde systemet. Målet med denne siste testen er å møte funksjonelle krav til eksterne enheter. Merk at en ekstern enhet enten er en person eller en enhet i et telenettverk, eller begge deler.
Forskjell: Innebygd testing og programvaretesting
Testing av programvare | Innebygd testing |
---|---|
Programvaretesting er kun relatert til programvare. | Innebygd testing er relatert til både programvare og maskinvare. |
I gjennomsnitt er 90 % testing utført i verden rent manuell black box-testing. | Innebygd testing gjøres på innebygde systemer eller brikker, det kan være en svart boks eller en hvit boks testing. |
Primære områder for testing er GUI-sjekker, funksjonalitet, validering og et visst nivå av databasetesting. | Primære testområder er oppførselen til maskinvaren for nr. av innspill gitt til den. |
Programvaretesting utføres hovedsakelig på klient-server, nett- og mobilbaserte applikasjoner. | Innebygd testing utføres vanligvis på maskinvaren. |
for eksempel Google Mail, Yahoo Mail, Android applikasjoner. | f.eks. Maskiner for helsetjenester, mikrokontrollere brukt i datamaskiner. |
Utfordringer: Testing av innebygd programvare
Noen av utfordringene man kan møte under testing av innebygd programvare:
Maskinvareavhengighet
Maskinvareavhengighet er blant hovedproblemene under testing av innebygd programvare på grunn av begrenset tilgang til maskinvare. Imidlertid kan det hende at emulatorer og simulatorer ikke nøyaktig representerer oppførselen til den faktiske enheten og kan gi en feil følelse av systemytelse og applikasjonens brukervennlighet.
Open Source Software
De fleste av de innebygde programvarekomponentene er åpen kildekode i naturen, ikke laget internt og fravær av fullstendig test tilgjengelig for det. Det finnes et bredt spekter av testkombinasjoner og resulterende scenarier.
Programvare kontra maskinvarefeil
Et annet aspekt er når programvare utvikles for nyskapt maskinvare, under denne prosessen kan høye forhold mellom maskinvaredefekter identifiseres. Den funnet feilen er bare ikke begrenset til programvare. Det kan også være relatert til maskinvare.
Reproduserbare defekter
Defekter er vanskeligere å reprodusere/gjenskape når det gjelder det innebygde systemet. Det håndhever den innebygde testprosedyren for å verdsette hver defektforekomst vesentlig høyere enn i et standardtilfelle, annet enn å samle inn så mye data som fornuftig kan være nødvendig for å endre systemet for å finne grunnlaget for defekten.
Kontinuerlige programvareoppdateringer
Innebygde systemer krever regelmessige programvareoppdateringer som kjerneoppgraderingen, sikkerhetsfikser, forskjellige enhetsdrivere osv. Begrensninger identifisert med programvareoppdateringenes påvirkning gjør feilidentifikasjon vanskelig. I tillegg øker det betydningen av bygge- og distribusjonsprosedyren.
Sammendrag
Det er noen vanskeligheter med å teste innebygd programvaretesting som gjør det vanskeligere enn vanlig programvaretesting. Det mest grunnleggende problemet er den tette avhengigheten av maskinvaremiljøet som er forberedt samtidig med programvaren, og som regelmessig kreves for å utføre pålitelig programvaretesting. Noen ganger er det til og med vanskelig å teste programvaren uten tilpassede verktøy, noe som uanstrengt gjør det svært fristende å konsentrere seg om testing i sene stadier.
Noe av det viktigste er at du bør tenke på er det faktum at du ofte bør velge automatisert programvaretesting. Den innebygde automatiserte testingen er en raskere prosess som vil ta noen timer å fullføre, og på denne måten løses problemet med programvaren din.