Wat is ingebed testen bij softwaretesten?
Wat zijn embedded systemen?
Embedded systemen zijn de elektronisch aangestuurde apparaten waarbij software en hardware nauw met elkaar verbonden zijn. Embedded systemen kunnen een verscheidenheid aan computerapparaten bevatten. Dit zijn pc's die in andere apparaten zijn opgenomen om applicatiespecifieke functies te bedienen. De eindgebruiker is zich er meestal niet eens van bewust dat ze bestaan.
Ingesloten testen
Ingesloten testen is een testproces om functionele en niet-functionele kenmerken van zowel software als hardware in een ingebed systeem te controleren en ervoor te zorgen dat het eindproduct vrij van gebreken is. Het belangrijkste doel van Embedded testen is het verifiëren en valideren of het eindproduct van embedded hardware en software voldoet aan de eisen van de klant of niet.
Embedded Software testen controleert en zorgt ervoor dat de betreffende software van goede kwaliteit is en voldoet aan alle eisen waaraan deze moet voldoen. Het testen van embedded software is een uitstekende aanpak om de veiligheid te garanderen in kritische toepassingen zoals medische apparatuur, spoorwegen, luchtvaart, voertuigindustrie, etc. Strikt en zorgvuldig testen is cruciaal voor het verlenen van softwarecertificering.
Hoe u geïntegreerde softwaretests uitvoert
Over het algemeen test je om vier redenen:
- Om fouten in software te vinden
- Helpt het risico voor zowel gebruikers als het bedrijf te verminderen
- Verlaag de ontwikkelings- en onderhoudskosten
- Om de prestaties te verbeteren
Bij Embedded Testing worden de volgende activiteiten uitgevoerd:
1. De software is voorzien van enkele ingangen.
2. Een stukje van de software wordt uitgevoerd.
3. De softwarestatus wordt geobserveerd en de uitvoer wordt gecontroleerd op verwachte eigenschappen, zoals of de uitvoer overeenkomt met het verwachte resultaat, conformiteit met de vereisten en de afwezigheid van systeemcrashes.
Typen ingebedde softwaretests
Fundamenteel zijn er vijf testniveaus die kunnen worden toegepast op embedded software
Testen van software-eenheden
De unitmodule is een functie of klasse. Unittesten worden uitgevoerd door het ontwikkelteam, voornamelijk de ontwikkelaar, en worden meestal uitgevoerd in een peer-reviewmodel. Op basis van de specificatie van de module worden testcases ontwikkeld.
Integratietesten
Integratietesten kunnen in twee segmenten worden ingedeeld:
- Testen van software-integratie
- Software-/hardware-integratietesten.
Uiteindelijk wordt de interactie tussen het hardwaredomein en de softwarecomponenten getest. Dit kan het onderzoeken van de interactie tussen ingebouwde randapparatuur en software omvatten.
Embedded softwareontwikkeling heeft een uniek kenmerk dat zich richt op de daadwerkelijke omgeving waarin de software wordt uitgevoerd en doorgaans parallel met de software wordt gecreëerd. Dit veroorzaakt ongemak bij het testen, aangezien uitgebreide testen niet in een gesimuleerde toestand kunnen worden uitgevoerd.
Testen van systeemeenheden
Nu is de te testen module een volledig raamwerk dat bovendien uit volledige softwarecode bestaat real-time besturingssysteem (RTOS) en platformgerelateerde stukken zoals interrupts, taakmechanismen, communicatie enzovoort. Het Point of Control-protocol is niet langer een aanroep van een functie of een methode-aanroep, maar eerder een bericht dat wordt verzonden/ontvangen met behulp van de RTOS-berichtenwachtrijen.
Systeembronnen worden geobserveerd om het vermogen van het systeem om de uitvoering van ingebedde systemen te ondersteunen te evalueren. Voor dit aspect is grijze-doos-testen is de favoriete testmethode. Afhankelijk van de organisatie is het testen van systeemeenheden de taak van de ontwikkelaar of van een speciaal systeemintegratieteam.
Systeemintegratietesten
De te testen module begint met een set componenten binnen een enkele node. De Points of Control and Observations (PCO's) zijn een mix van netwerkgerelateerde communicatieprotocollen en RTOS, zoals netwerkberichten en RTOS-gebeurtenissen. Naast een component kan een Virtual Tester ook de rol van een node spelen.
Systeemvalidatietesten
De te testen module is een subsysteem met een volledige implementatie of het volledige embedded systeem. Het doel van deze laatste test is om te voldoen aan de functionele vereisten van externe entiteiten. Houd er rekening mee dat een externe entiteit een persoon is, of een apparaat in een telecomnetwerk, of beide.
Verschil: ingebed testen en softwaretesten
Software testen | Ingesloten testen |
---|---|
Softwaretesten hebben alleen betrekking op software. | Embedded testen heeft betrekking op zowel software als hardware. |
Gemiddeld zijn 90% van de tests die wereldwijd worden uitgevoerd, handmatige black box-tests. | Embedded testing wordt uitgevoerd op embedded systemen of chips. Het kan een black box of white box testing zijn. |
Primaire testgebieden zijn GUI-controles, functionaliteit, validatie en een bepaald niveau van databasetests. | Primaire testgebieden zijn het gedrag van de hardware voor de nr. van de input die eraan wordt gegeven. |
Softwaretesten worden voornamelijk uitgevoerd op client-server-, web- en mobiele applicaties. | Ingebouwde tests die doorgaans op de hardware worden uitgevoerd. |
bijvoorbeeld Googlen Mail, Yahoo Mail, Android toepassingen. | bijv. Machines in de gezondheidszorg, microcontrollers die in computers worden gebruikt. |
Uitdagingen: testen van ingebedde software
Enkele van de uitdagingen waarmee u te maken kunt krijgen tijdens het testen van embedded software:
Hardware-afhankelijkheid
Hardwareafhankelijkheid is een van de grootste problemen waarmee u te maken krijgt tijdens het testen van ingebedde software vanwege de beperkte toegang tot hardware. Emulators en simulators geven echter mogelijk niet precies het gedrag van het daadwerkelijke apparaat weer en kunnen een verkeerd beeld geven van de systeemprestaties en de bruikbaarheid van de applicatie.
Open source software
Het merendeel van de embedded softwarecomponenten is open source van aard, niet intern gemaakt en er zijn geen volledige tests voor beschikbaar. Er is een breed scala aan testcombinaties en daaruit voortvloeiende scenario's.
Software- versus hardwaredefecten
Een ander aspect is dat wanneer software wordt ontwikkeld voor vers gemaakte hardware, tijdens dit proces een groot aantal hardwaredefecten kan worden geïdentificeerd. Het gevonden defect beperkt zich niet alleen tot software. Het kan ook met hardware te maken hebben.
Reproduceerbare defecten
Defecten zijn moeilijker te reproduceren/herscheppen in het geval van het ingebedde systeem. Dat dwingt de ingebedde testprocedure om elke defectvoorkomend substantieel hoger te waarderen dan in een standaardgeval, anders dan om zoveel mogelijk gegevens te verzamelen als redelijkerwijs nodig zou kunnen zijn om het systeem te wijzigen om de basis van het defect te vinden.
Continue software-updates
Embedded systems vereisen regelmatige software-updates zoals de kernel-upgrade, beveiligingsfixes, verschillende apparaatstuurprogramma's, etc. Beperkingen die worden geïdentificeerd met de software-updates beïnvloeden het identificeren van bugs. Bovendien verhoogt het de betekenis van de build- en implementatieprocedure.
Samenvatting
Er zijn enkele moeilijkheden bij het testen van embedded software die het moeilijker maken dan reguliere softwaretesten. Het meest fundamentele probleem is de sterke afhankelijkheid van de hardwareomgeving die gelijktijdig met de software wordt voorbereid en die regelmatig nodig is om betrouwbare softwaretesten uit te voeren. Soms is het zelfs moeilijk om de software te testen zonder aangepaste tools, wat het moeiteloos buitengewoon aantrekkelijk maakt om je in de late stadia te concentreren op testen.
Een van de belangrijkste dingen waar u over na moet denken is het feit dat u vaak moet kiezen voor geautomatiseerde softwaretests. De embedded geautomatiseerde test is een sneller proces dat enkele uren in beslag zou nemen om te voltooien, en op deze manier wordt het probleem van uw software opgelost.