Wat is ingebedde tests bij softwaretests?

Inhoudsopgave:

Anonim

In deze tutorial leer je

  • Wat zijn embedded systemen?
  • Wat is ingebed testen?
  • Typen voor het testen van ingebouwde software
  • Verschil: ingebedde tests en softwaretests
  • Uitdagingen: ingebedde softwaretests

Wat zijn embedded systemen?

Embedded systemen zijn de elektronisch gestuurde apparaten waarbij software en hardware nauw met elkaar zijn verbonden. Ingebouwde systemen kunnen verschillende computerapparatuur bevatten. Dit zijn pc's die in andere apparaten zijn geïntegreerd om toepassingsspecifieke functies uit te voeren. De eindgebruiker is zich meestal niet eens bewust van hun bestaan.

Ingebouwde tests

Embedded Testing is een testproces om functionele en niet-functionele attributen van zowel software als hardware in een embedded systeem te controleren en ervoor te zorgen dat het eindproduct defectvrij is. Het belangrijkste doel van ingebedde testen is om te verifiëren en valideren of het eindproduct van ingebedde hardware en software voldoet aan de eisen van de klant of niet.

Embedded Software-tests controleren en zorgen ervoor dat de betreffende software van goede kwaliteit is en voldoet aan alle vereisten waaraan deze zou moeten voldoen. Embedded software testing is een uitstekende aanpak om de veiligheid te garanderen in kritische toepassingen zoals medische apparatuur, spoorwegen, luchtvaart, auto-industrie, etc. Strikte en zorgvuldige testen zijn cruciaal voor het toekennen van softwarecertificering.

Embedded Software Testing uitvoeren

Over het algemeen test u om vier redenen:

  • Om bugs in software te vinden
  • Helpt risico's 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 outputs worden gecontroleerd op verwachte eigenschappen, zoals of de output overeenkomt met het verwachte resultaat, conformiteit met de vereisten en de afwezigheid van systeemcrashes.

Typen voor het testen van ingebouwde software

In wezen zijn er vijf testniveaus die kunnen worden toegepast op embedded software

Testen van software-eenheden

De eenheidsmodule is een functie of klasse. Unit Testing wordt uitgevoerd door het ontwikkelteam, voornamelijk de ontwikkelaar, en wordt meestal uitgevoerd in een peer-review-model. Op basis van de specificatie van de module worden testcases ontwikkeld.

Integratietesten

Integratietesten kunnen in twee segmenten worden ingedeeld:

  1. Testen van software-integratie
  2. Testen van software / hardware-integratie.

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 software-ontwikkeling heeft een unieke eigenschap die zich richt op de daadwerkelijke omgeving waarin de software wordt uitgevoerd, en wordt doorgaans parallel met de software gecreëerd. Dit veroorzaakt ongemak bij het testen, aangezien uitgebreide testen niet kunnen worden uitgevoerd in een gesimuleerde toestand.

Systeemeenheid testen

Nu is de te testen module een volledig raamwerk dat bestaat uit volledige softwarecode en daarnaast alle realtime besturingssystemen (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 te beoordelen of het systeem in staat is om de uitvoering van ingebedde systemen te ondersteunen. Voor dit aspect is grey-box-testen de favoriete testmethode. Afhankelijk van de organisatie is het testen van systeemeenheden de taak van de ontwikkelaar of een speciaal systeemintegratieteam.

Systeemintegratietesten

De te testen module begint met een set componenten binnen een enkel knooppunt. 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 virtuele tester ook de rol van een knooppunt spelen.

Systeemvalidatietesten

De te testen module is een subsysteem met een complete implementatie of het complete embedded systeem. Het doel van deze eindtest is om te voldoen aan de functionele vereisten van externe entiteiten. Merk op dat een externe entiteit ofwel een persoon is, of een apparaat in een telecomnetwerk, of beide.

Verschil: ingebedde tests en softwaretests

Software testen Ingebouwde tests
Softwaretests hebben alleen betrekking op software. Embedded testing heeft betrekking op zowel software als hardware.
Gemiddeld is 90% van de uitgevoerde tests in de wereld puur handmatige black box-tests. Embedded testen worden gedaan op embedded systemen of chips, het kan een black box of white box testen 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 inputs die eraan zijn gegeven.
Softwaretests worden voornamelijk uitgevoerd op client-server-, web- en mobiele applicaties. Embedded testen worden over het algemeen uitgevoerd op de hardware.
bijvoorbeeld Google Mail, Yahoo Mail, Android-applicaties. bijv. machines van het domein van de gezondheidszorg, microcontrollers die in computers worden gebruikt.

Uitdagingen: ingebedde softwaretests

Enkele van de uitdagingen waarmee u te maken kunt krijgen tijdens het testen van embedded software:

Afhankelijkheid van hardware

Hardwareafhankelijkheid is een van de grootste problemen waarmee u te maken krijgt tijdens het testen van embedded 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 is geen volledige test voor beschikbaar. Er is een breed scala aan testcombinaties en resulterende scenario's.

Software- versus hardwarefouten

Een ander aspect is dat wanneer software wordt ontwikkeld voor vers gemaakte hardware, tijdens dit proces een hoog percentage hardwarefouten kan worden vastgesteld. Het gevonden defect is gewoon niet beperkt tot software. Het kan ook verband houden met hardware.

Reproduceerbare defecten

Defecten zijn moeilijker te reproduceren / opnieuw te creëren in het geval van het embedded systeem. Dat dwingt de ingebedde testprocedure af om elk voorval van een defect aanzienlijk hoger te waarderen dan in een standaardgeval, behalve om zoveel mogelijk gegevens te verzamelen als verstandig zou kunnen zijn om het systeem te wijzigen om de basis van het defect te vinden.

Continue software-updates

Geïntegreerde systemen vereisen regelmatige software-updates zoals de kernel-upgrade, beveiligingsreparaties, verschillende apparaatstuurprogramma's, enz. Beperkingen die worden geïdentificeerd met de invloed van software-updates, maken het identificeren van bugs moeilijk. Bovendien vergroot het het belang van de bouw- en implementatieprocedure.

Overzicht

Er zijn enkele problemen bij het testen van ingebedde softwaretests die het moeilijker maken dan het regelmatig testen van software. Het meest fundamentele probleem is de sterke afhankelijkheid van de hardware-omgeving die gelijktijdig met de software wordt voorbereid en die regelmatig nodig is om betrouwbare softwaretests uit te voeren. Soms is het zelfs moeilijk om de software te testen zonder aangepaste tools, wat het moeiteloos concentreren op testen in een laat stadium buitengewoon verleidelijk maakt.

Een van de belangrijkste dingen waar u aan moet denken, is dat u vaak moet kiezen voor geautomatiseerde softwaretests. Het ingebedde geautomatiseerde testen is een sneller proces dat enkele uren in beslag zou nemen, en op deze manier is het probleem van uw software opgelost.