Vad är Embedded Testing in Software Testing?
Vad är inbyggda system?
Inbyggda system är de elektroniskt styrda enheterna där mjukvara och hårdvara är tätt kopplade. Inbyggda system kan innehålla en mängd olika datorenheter. Dessa är datorer som är inbyggda i andra enheter för att hantera applikationsspecifika funktioner. Slutanvändaren är vanligtvis inte ens medveten om sin existens.
Inbäddad testning
Inbäddad testning är en testprocess för att kontrollera funktionella och icke-funktionella attribut för både mjukvara och hårdvara i ett inbyggt system och säkerställa att slutprodukten är felfri. Huvudsyftet med Embedded-testning är att verifiera och validera om slutprodukten av inbäddad hårdvara och mjukvara uppfyller kundens krav eller inte.
Testning av inbyggd programvara kontrollerar och säkerställer att den berörda programvaran är av god kvalitet och uppfyller alla krav den ska uppfylla. Testning av inbyggd mjukvara är ett utmärkt tillvägagångssätt för att garantera säkerhet i kritiska applikationer som medicinsk utrustning, järnvägar, flyg, fordonsindustri, etc. Strikta och noggranna tester är avgörande för att bevilja programvarucertifiering.
Hur man utför testning av inbyggd programvara
I allmänhet testar du av fyra skäl:
- För att hitta buggar i programvara
- Hjälper till att minska risken för både användare och företaget
- Minska utvecklings- och underhållskostnaderna
- För att förbättra prestandan
I Embedded Testing utförs följande aktiviteter:
1. Programvaran är försedd med några ingångar.
2. En del av programvaran exekveras.
3. Programvarutillståndet observeras och utgångarna kontrolleras för förväntade egenskaper som om utgången matchar det förväntade resultatet, överensstämmelse med kraven och frånvaro av systemkrascher.
Testtyper för inbäddad programvara
I grund och botten finns det fem testnivåer som kan tillämpas på inbäddad programvara
Programvaruenhetstestning
Enhetsmodulen är antingen en funktion eller klass. Unit Testing utförs av utvecklingsteamet, i första hand utvecklaren och utförs vanligtvis i en peer-review-modell. Baserat på specifikationen av modulen testfall utvecklas.
Integrationstestning
Integrationstestning kan delas in i två segment:
- Integrationstestning av programvara
- Integrationstestning av mjukvara/hårdvara.
I slutändan testas interaktionen mellan hårdvarudomänen och mjukvarukomponenterna. Detta kan innefatta att undersöka interaktionen mellan inbyggd kringutrustning och programvara.
Inbäddad mjukvaruutveckling har en unik egenskap som fokuserar på den faktiska miljön där mjukvaran körs i allmänhet skapas parallellt med mjukvaran. Detta orsakar besvär för testning eftersom omfattande testning inte kan utföras i ett simulerat tillstånd.
Systemenhetstestning
Nu är modulen som ska testas ett fullständigt ramverk som består av komplett mjukvarukod dessutom allt realtidsoperativsystem (RTOS) och plattformsrelaterade delar som avbrott, uppgiftsmekanismer, kommunikation och så vidare. Point of Control-protokollet är inte längre ett anrop till en funktion eller en metodanrop, utan snarare ett meddelande som skickats/fåtts med användning av RTOS-meddelandeköerna.
Systemresurser observeras för att utvärdera systemets förmåga att stödja exekvering av inbäddade system. För denna aspekt, testning av grå låda är den föredragna testmetoden. Beroende på organisation är testning av systemenheter antingen utvecklarens eller ett dedikerat systemintegrationsteams skyldighet.
Systemintegrationstestning
Modulen som ska testas börjar från en uppsättning komponenter inom en enda nod. Points of Control and Observations (PCO) är en blandning av nätverksrelaterade kommunikationsprotokoll och RTOS, såsom nätverksmeddelanden och RTOS-händelser. Förutom en komponent kan en virtuell testare också spela rollen som en nod.
Systemvalideringstestning
Modulen som ska testas är ett delsystem med en komplett implementering eller det kompletta inbäddade systemet. Syftet med detta slutliga test är att uppfylla externa enheters funktionskrav. Observera att en extern enhet antingen är en person eller en enhet i ett telekomnätverk, eller båda.
Skillnad: Inbäddad testning och mjukvarutestning
Test av programvara | Inbäddad testning |
---|---|
Programvarutestning är endast relaterad till programvara. | Inbäddad testning är relaterad till både mjukvara och hårdvara. |
I genomsnitt är 90 % tester som görs i världen rent manuella black box-testningar. | Inbäddad testning görs på inbyggda system eller chips, det kan vara en svart låda eller vit låda. |
Primära områden för testning är GUI-kontroller, funktionalitet, validering och en viss nivå av databastestning. | Primära områden för testning är beteendet hos hårdvaran för nr. av insatser som har getts till den. |
Programvarutestning utförs huvudsakligen på klient-server, webb- och mobilbaserade applikationer. | Inbäddad testning utförs vanligtvis på hårdvaran. |
t.ex. Google Mail, Yahoo Mail, Android tillämpningar. | t.ex. Maskiner inom hälsovårdsdomänen, Mikrokontroller som används i datorer. |
Utmaningar: Testning av inbyggd programvara
Några av utmaningarna som man kan möta under testning av inbyggd programvara:
Hårdvaruberoende
Hårdvaruberoende är bland de största svårigheterna under testning av inbäddad mjukvara på grund av begränsad tillgång till hårdvara. Emulatorer och simulatorer kanske inte exakt representerar den faktiska enhetens beteende och kan ge en felaktig känsla av systemets prestanda och applikationens användbarhet.
Open Source Software
Majoriteten av de inbäddade programvarukomponenterna är till sin natur öppen källkod, inte skapade internt och det saknas ett komplett test tillgängligt för det. Det finns ett brett utbud av testkombinationer och resulterande scenarier.
Programvara kontra maskinvarufel
En annan aspekt är när mjukvara utvecklas för en nyskapad hårdvara, under denna process kan hög andel hårdvarudefekter identifieras. Den hittade defekten är helt enkelt inte begränsad till programvara. Det kan också vara relaterat till hårdvara.
Reproducerbara defekter
Defekter är svårare att reproducera/återskapa när det gäller det inbäddade systemet. Det tvingar den inbäddade testproceduren att värdera varje defekt som inträffar avsevärt högre än i ett standardfall, annat än att samla in så mycket data som förnuftigt kan krävas för att ändra systemet för att hitta grunden för defekten.
Kontinuerliga programuppdateringar
Inbyggda system kräver regelbundna mjukvaruuppdateringar som kärnuppgraderingen, säkerhetsfixar, olika enhetsdrivrutiner, etc. Restriktioner som identifieras med mjukvaruuppdateringarnas inverkan gör felidentifiering svår. Dessutom ökar det betydelsen av bygg- och distributionsprocedurer.
Sammanfattning
Det finns vissa svårigheter med att testa inbäddad mjukvarutestning som gör det svårare än vanlig mjukvarutestning. Den mest grundläggande frågan är det snäva beroendet av hårdvarumiljön som förbereds samtidigt med programvaran och som regelbundet krävs för att utföra tillförlitliga programvarutestning. Ibland är det till och med svårt att testa programvaran utan anpassade verktyg, vilket utan ansträngning gör att koncentrera sig på att testa i sena stadier exceptionellt lockande.
En av de viktigaste sakerna är att du bör tänka på är det faktum att du ofta bör välja automatiserad mjukvarutestning. Den inbäddade automatiserade testningen är en snabbare process som skulle ta några timmar att slutföra, och på så sätt löses problemet med din programvara.