Wat is ingebed testen bij softwaretesten?
โก Slimme samenvatting
Bij embedded testen wordt zowel het functionele als het niet-functionele gedrag van software en hardware gecontroleerd, omdat in een embedded systeem de twee nauw met elkaar verbonden zijn en geen van beide afzonderlijk goed gevalideerd kan worden.
Wat zijn embedded systemen?
Ingebouwde systemen Embedded systemen zijn elektronisch gestuurde apparaten waarbij software en hardware nauw met elkaar verbonden zijn. Ze kunnen verschillende computercomponenten bevatten. Dit zijn pc's die in andere apparaten zijn geรฏntegreerd om applicatiespecifieke functies uit te voeren. De eindgebruiker is zich meestal niet eens bewust van hun bestaan.
Ingesloten testen
Ingesloten testen is een testproces voor het controleren van de functionaliteit en niet-functioneel Het testen van ingebedde systemen omvat het controleren van de eigenschappen van zowel software als hardware, en het waarborgen dat het eindproduct vrij is van defecten. Het belangrijkste doel van ingebed testen is om te verifiรซren en te valideren of het eindproduct, bestaande uit ingebedde hardware en software, voldoet aan de eisen van de klant.
Het testen van embedded software controleert en waarborgt dat de betreffende software van goede kwaliteit is en voldoet aan alle gestelde eisen. Het testen van embedded software is een uitstekende manier om de veiligheid te garanderen in kritieke toepassingen zoals medische apparatuur, spoorwegen, luchtvaart, de auto-industrie, enzovoort. Strikte en zorgvuldige tests zijn cruciaal voor het verkrijgen 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 testen worden de volgende activiteiten uitgevoerd:
- De software wordt geleverd met een aantal invoerparameters.
- Een deel van de software wordt uitgevoerd.
- De softwarestatus wordt geobserveerd en de output wordt gecontroleerd op verwachte eigenschappen, zoals of de output overeenkomt met het verwachte resultaat, of deze voldoet aan de vereisten en of er geen systeemcrashes optreden.
Typen ingebedde softwaretests
In principe zijn er vijf testniveaus die op embedded software kunnen worden toegepast.
Testen van software-eenheden
Een unit-module is ofwel een functie ofwel een klasse. Unit-testen worden uitgevoerd door het ontwikkelteam, voornamelijk door de ontwikkelaar, en vinden meestal plaats volgens een peer-reviewmodel. Testgevallen worden ontwikkeld op basis van de specificatie van de module.
Integratietesten
Integratietesten kan worden ingedeeld in twee segmenten:
- Testen van software-integratie
- Integratietesten van software en hardware
Uiteindelijk wordt de interactie tussen de hardware en de softwarecomponenten getest. Dit kan onder meer het onderzoeken van de interactie tussen ingebouwde randapparatuur en software omvatten.
Bij de ontwikkeling van embedded software is er een uniek kenmerk: de daadwerkelijke omgeving waarin de software draait, wordt doorgaans parallel met de software gecreรซerd. Dit zorgt voor problemen bij het testen, omdat uitgebreide tests niet in een gesimuleerde omgeving kunnen worden uitgevoerd.
Testen van systeemeenheden
De module die nu getest moet worden, is een volledig framework dat bestaat uit de complete softwarecode plus alle real-time besturingssysteem (RTOS) en platformgerelateerde onderdelen zoals interrupts, taakmechanismen, communicatie, enzovoort. Het Point of Control-protocol is niet langer een aanroep naar een functie of een methode-aanroep, maar een bericht dat wordt verzonden of ontvangen via de berichtenwachtrijen van het RTOS.
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 geprefereerde testmethode. Afhankelijk van de organisatie is het uitvoeren van unit-testen van systemen de taak van de ontwikkelaar of van een speciaal systeemintegratieteam.
Systeemintegratietesten
De te testen module begint met een set componenten binnen รฉรฉn knooppunt. De Points of Control and Observations (PCO's) zijn een mix van netwerkgerelateerde communicatieprotocollen en RTOS-gebeurtenissen, zoals netwerkberichten. Naast een component kan een Virtual Tester ook de rol van een knooppunt vervullen.
Systeemvalidatietesten
De te testen module is een subsysteem met een volledige implementatie, of het complete embedded systeem. Het doel van deze eindtest is om te voldoen aan de functionele eisen van een externe entiteit. Een externe entiteit kan een persoon zijn, een apparaat in een telecommunicatienetwerk, of beide.
Verschil: ingebed testen en softwaretesten
De onderstaande tabel vergelijkt ingebedde tests met conventionele tests. software testen.
| Software testen | Ingesloten testen |
|---|---|
| Softwaretesten hebben alleen betrekking op software. | Embedded testen heeft betrekking op zowel software als hardware. |
| Gemiddeld wordt 90% van alle tests wereldwijd handmatig uitgevoerd. black box testen. | Embedded testen wordt uitgevoerd op embedded systemen of chips, en kan een black box-test zijn. witte doos testen. |
| Primaire testgebieden zijn GUI-controles, functionaliteit, validatie en een bepaald niveau van databasetests. | De belangrijkste testgebieden zijn het gedrag van de hardware bij verschillende aantallen ingangen. |
| Softwaretesten worden voornamelijk uitgevoerd op client-server-, web- en mobiele applicaties. | Het testen van ingebedde systemen gebeurt over het algemeen op de hardware zelf. |
| bv Google Mail, Yahoo Mail, Android toepassingen. | bijvoorbeeld apparaten in de gezondheidszorg, microcontrollers die in computers worden gebruikt. |
Uitdagingen: testen van ingebedde software
Enkele uitdagingen die men kan tegenkomen tijdens het testen van embedded software:
Hardware-afhankelijkheid
Hardwareafhankelijkheid is een van de grootste problemen bij het testen van embedded software, vanwege de beperkte toegang tot de hardware. Emulators en simulators geven echter mogelijk niet nauwkeurig 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
De meeste embedded softwarecomponenten zijn open source, worden niet intern ontwikkeld en er is geen complete testsuite voor beschikbaar. Dit leidt tot een breed scala aan testcombinaties en de daaruit voortvloeiende scenario's.
Software- versus hardwaredefecten
Een ander aspect is de ontwikkeling van software voor gloednieuwe hardware. Tijdens dit proces kunnen veel hardwarefouten worden vastgesteld. De gevonden fouten beperken zich niet alleen tot de software, maar kunnen ook betrekking hebben op de hardware zelf.
Reproduceerbare defecten
In een ingebed systeem zijn defecten moeilijker te reproduceren of na te bootsen. Daardoor moet bij het testen van ingebedde systemen elke defectmelding aanzienlijk zwaarder worden gewaardeerd dan in een standaard situatie, en moet er zoveel mogelijk data worden verzameld als redelijkerwijs nodig is om de oorzaak van het defect te achterhalen.
Continue software-updates
Ingebedde systemen vereisen regelmatige software-updates, zoals kernel-upgrades, beveiligingspatches, verschillende apparaatstuurprogramma's, enzovoort. De beperkingen die gepaard gaan met software-updates maken het lastig om bugs te identificeren. Bovendien verhoogt dit het belang van de bouw- en implementatieprocedure.
