I den här handledningen lär du dig
- Vad är inbyggda system?
- Vad är inbäddad testning?
- Inbäddade programvarutestningstyper
- Skillnad: Inbyggd testning och programvarutestning
- Utmaningar: Inbyggd programvarutestning
Vad är inbyggda system?
Inbäddade system är de elektroniskt styrda enheterna där mjukvara och hårdvara är tätt kopplade. Inbäddade system kan innehålla en mängd olika datorenheter. Dessa är datorer som ingår 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 programvara och hårdvara i ett inbäddat system och se till att slutprodukten är felfri. Huvudsyftet med inbäddad testning är att verifiera och validera om den slutliga produkten av inbäddad hårdvara och programvara uppfyller kundens krav eller inte.
Inbyggd programvarutestning kontrollerar och säkerställer att den berörda programvaran är av god kvalitet och uppfyller alla krav som den ska uppfylla. Inbyggd mjukvarutestning är ett utmärkt tillvägagångssätt för att garantera säkerhet i kritiska applikationer som medicinsk utrustning, järnvägar, luftfart, fordonsindustri etc. Strikt och noggrann testning är avgörande för att bevilja programvarucertificering.
Hur man utför Embedded Software Testing
I allmänhet testar du av fyra skäl:
- Att hitta fel i programvaran
- Hjälper till att minska risken för både användare och företaget
- Sänk ned utveckling och underhållskostnader
- För att förbättra prestanda
I Embedded Testing utförs följande aktiviteter:
1. Programvaran är försedd med vissa ingångar.
2. En bit av programvaran körs.
3. Programvarutillståndet observeras och utgångarna kontrolleras med avseende på förväntade egenskaper som om utdata matchar det förväntade resultatet, överensstämmelse med kraven och frånvaron av systemkrascher.
Inbäddade programvarutestningstyper
Grundläggande finns det fem testnivåer som kan tillämpas på inbäddad programvara
Testning av programvaruenhet
Enhetsmodulen är antingen en funktion eller klass. Enhetstestning utförs av utvecklingsteamet, främst utvecklaren och utförs vanligtvis i en peer-review-modell. Baserat på specifikationen för modulen utvecklas testfall.
Integrationstestning
Integrationstestning kan klassificeras i två segment:
- Testning av programvaruintegration
- Testning av integrering av programvara / hårdvara.
I slutändan testas interaktionen mellan hårdvarudomänen och mjukvarukomponenterna. Detta kan innefatta att undersöka interaktionen mellan inbyggda kringutrustning och programvara.
Inbyggd mjukvaruutveckling har en unik egenskap som fokuserar på den verkliga miljön, i vilken programvaran körs, genereras generellt parallellt med programvaran. Detta orsakar besvär för testning eftersom omfattande testning inte kan utföras i simulerat tillstånd.
Systemenhetstestning
Nu är modulen som ska testas ett fullständigt ramverk som består av komplett mjukvarukod samt alla realtidsoperativsystem (RTOS) och plattformsrelaterade delar som avbrott, uppgiftsmekanismer, kommunikation och så vidare. Point of Control-protokollet är inte längre ett samtal till en funktion eller en metodinfordran, utan snarare ett meddelande som skickats / fått med RTOS-meddelandeköerna.
Systemresurser observeras för att utvärdera systemets förmåga att stödja inbyggd systemkörning. För denna aspekt är testning av grå rutor den föredragna testmetoden. Beroende på organisation är test 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. Punkterna för kontroll och observationer (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 fullständig implementering eller det fullständiga inbäddade systemet. Målet med detta slutliga test är att uppfylla externa enheters funktionella krav. Observera att en extern enhet antingen är en person eller en enhet i ett telenät eller båda.
Skillnad: Inbyggd testning och programvarutestning
Programvarutestning | Inbäddad testning |
---|---|
Programvarutestning är endast relaterad till programvara. | Inbäddad testning är relaterad till både programvara och hårdvara. |
I genomsnitt är 90% testning gjord i världen rent manuell testning av svart låda. | Inbäddad testning görs på inbäddade system eller marker det kan vara en svart låda eller vit låda testning. |
Primära testområden är GUI-kontroller, funktionalitet, validering och viss nivå av databastestning. | Primära testområden är maskinvarans beteende för nr. av ingångar som ges till den. |
Programvarutestning utförs huvudsakligen på klientserver-, webb- och mobilbaserade applikationer. | Inbäddad testning utförs vanligtvis på hårdvaran. |
t.ex. Google Mail, Yahoo Mail, Android-applikationer. | t.ex. maskiner för vårddomän, mikrokontroller som används i datorer. |
Utmaningar: Inbyggd programvarutestning
Några av de utmaningar som man kan möta under inbyggd programvarutestning:
Hårdvaruberoende
Hårdvaruberoende är bland de största svårigheterna vid inbäddad programvarutestning på grund av begränsad tillgång till hårdvara. Emulatorer och simulatorer representerar kanske inte exakt beteendet hos den faktiska enheten och kan ge en felaktig känsla av systemprestanda och applikationsanvändbarhet.
Open Source-programvara
Majoriteten av de inbäddade programvarukomponenterna har öppen källkod, skapas inte internt och avsaknad av fullständigt test är tillgängligt för den. Det finns ett brett utbud av testkombinationer och resulterande scenarier.
Mjukvara mot hårdvarufel
En annan aspekt är när programvara utvecklas för en nyskapad hårdvara, under denna process kan ett högt förhållande av maskinvarufel identifieras. Den hittade defekten är bara 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 det inbäddade testförfarandet att värdera varje defekthändelse väsentligt högre än i ett standardfall, förutom att samla in så mycket data som på ett förnuftigt sätt kan krävas för att ändra systemet för att hitta grunden för defekten.
Kontinuerliga programuppdateringar
Inbäddade system kräver regelbundna programuppdateringar som kärnuppgradering, säkerhetsfixar, olika enhetsdrivrutiner etc. Begränsningar som identifierats med påverkan av programuppdateringar försvårar felidentifiering. Dessutom ökar det betydelsen av bygg- och distributionsproceduren.
Sammanfattning
Det finns vissa svårigheter att testa inbäddad programvarutestning som gör det svårare än vanlig programvarutestning. Den mest grundläggande frågan är det starka beroende av hårdvarumiljön som förbereds samtidigt med programvaran och som regelbundet krävs för att utföra pålitlig programvarutestning. Ibland är det till och med svårt att testa programvaran utan anpassade verktyg, vilket gör det enkelt att koncentrera sig på testning i sena stadier exceptionellt lockande.
En av de viktigaste sakerna är att du bör tänka på är att du ofta bör välja automatiserad programvarutestning. Den inbäddade automatiserade testningen är en snabbare process som tar några timmar att slutföra, och på detta sätt löses problemet med din programvara.