Wat is betrouwbaarheidstesten? Soorten en een voorbeeld.

โšก Slimme samenvatting

Betrouwbaarheidstesten bepalen of software gedurende een bepaalde periode onder vastgestelde omstandigheden zonder storingen functioneert. Het combineert modellering, meting en verbetering om te bepalen hoe waarschijnlijk het is dat het systeem blijft werken.

  • ๐Ÿ“ Kerndefinitie: De waarschijnlijkheid van een storingsvrije werking gedurende een bepaalde tijd in een bepaalde omgeving.
  • ๐Ÿ”„ drie stappen: Modelleren voorspelt de betrouwbaarheid, meten kwantificeert deze en verbeteringen worden doorgevoerd op basis van het resultaat.
  • ๐Ÿ“Š Vier metrische groepen: Product-, projectmanagement-, proces- en fout- en faalstatistieken.
  • โ€‹ Belangrijkste maatregelen: MTBF, MTTF en MTTR drukken de betrouwbaarheid uit in tijd in plaats van in het aantal defecten.
  • ๐Ÿงช Methodekeuze: Test-hertesten, parallelle vormen en beslissingsconsistentie controleren elk een ander aspect.
  • ๐Ÿ’ฐ Businesscase: Storingen in het veld kosten veel meer dan hetzelfde defect dat tijdens tests wordt ontdekt.

Wat is betrouwbaarheidstesten?

Wat is betrouwbaarheidstesten?

Betrouwbaarheidstesten is een softwaretestproces dat controleert of de software een foutloze werking kan uitvoeren in een bepaalde omgeving gedurende een bepaalde tijdsperiode. Het doel van betrouwbaarheidstesten is om te verzekeren dat het softwareproduct bugvrij en betrouwbaar genoeg is voor het verwachte doel.

Betrouwbaarheid betekent โ€˜hetzelfde opleverenโ€™, met andere woorden: het woord โ€˜betrouwbaarโ€™ betekent dat iets betrouwbaar is en dat het elke keer hetzelfde resultaat zal opleveren. Hetzelfde geldt voor het testen van de betrouwbaarheid.

Betrouwbaarheidstestvoorbeeld

De kans dat een pc in een winkel acht uur lang draait zonder vast te lopen, is 99%. Dit wordt betrouwbaarheid genoemd.

Betrouwbaarheidstesten kunnen worden onderverdeeld in drie segmenten:

  • Modellering
  • maat
  • Verbetering

De volgende formule wordt gebruikt om de kans op falen te berekenen.

Probability = Number of failing cases/ Total number of cases under consideration

Betrouwbaarheidstestvoorbeeld

Factoren die de betrouwbaarheid van software beรฏnvloeden

  1. Het aantal fouten in de software
  2. De manier waarop gebruikers het systeem bedienen

Betrouwbaarheidstesten zijn een van de sleutels tot betere softwarekwaliteit. Deze tests helpen bij het ontdekken van veel problemen in het softwareontwerp en de functionaliteit.

Het belangrijkste doel van betrouwbaarheidstesten is om te controleren of de software voldoet aan de eis van klantbetrouwbaarheid.

Betrouwbaarheidstesten worden op verschillende niveaus uitgevoerd. Complexe systemen worden getest op het niveau van de eenheid, assemblage, subsysteem en systeem.

Waarom betrouwbaarheidstesten uitvoeren?

Betrouwbaarheidstests worden uitgevoerd om de softwareprestaties onder de gegeven omstandigheden te testen.

Het doel achter het uitvoeren van betrouwbaarheidstesten is:

  1. Om de structuur van herhaalde mislukkingen te vinden.
  2. Om het aantal optredende fouten te vinden, is de opgegeven hoeveelheid tijd nodig.
  3. Om de belangrijkste oorzaak van falen te ontdekken.
  4. Uitvoeren Performance Testing van verschillende modules van softwareapplicaties na het verhelpen van een defect.

Ook na de release van het product kunnen we de kans op het optreden van defecten minimaliseren en daarmee de betrouwbaarheid van de software verbeteren. Enkele van de hulpmiddelen die hiervoor nuttig zijn, zijn: Trendanalyse, Orthogonaal Defect Classificatie en formele methoden, enz.

Soorten betrouwbaarheidstesten

Het testen van de softwarebetrouwbaarheid omvat het testen van functies, load Testenen Regressie Testing

Functietesten: -

Bij de aanbevolen tests worden de functies van de software gecontroleerd. Deze tests worden in de volgende stappen uitgevoerd:

  • Elke bewerking in de software wordt minimaal รฉรฉn keer uitgevoerd.
  • De interactie tussen de twee bewerkingen is verminderd.
  • Er moet gecontroleerd worden of elke bewerking correct wordt uitgevoerd.

Belastingtesten: -

Normaal gesproken zal de software aan het begin van het proces beter presteren, en daarna zal deze achteruit gaan. Er worden belastingtests uitgevoerd om de prestaties van de software onder de maximale werkbelasting te controleren.

Regressietest: -

Regressietesten worden voornamelijk gebruikt om te controleren of er nieuwe bugs zijn geรฏntroduceerd als gevolg van het repareren van eerdere bugs. Regressietesten worden uitgevoerd na elke wijziging of update van de softwarefuncties en hun functionaliteiten.

Hoe voer je betrouwbaarheidstesten uit?

Betrouwbaarheidstesten zijn kostbaar in vergelijking met andere soorten testen. Een goede planning en beheer zijn dus vereist bij het uitvoeren van betrouwbaarheidstests. Denk hierbij aan het uit te voeren testproces, gegevens voor de testomgeving, testschema, testpunten etc.

Om te beginnen met betrouwbaarheidstesten moet de tester de volgende zaken blijven volgen:

  • Stel betrouwbaarheidsdoelstellingen vast
  • Operationeel profiel ontwikkelen
  • Testen plannen en uitvoeren
  • Gebruik testresultaten om beslissingen te nemen

Zoals we eerder hebben besproken, zijn er drie categorieรซn waarin we betrouwbaarheidstesten kunnen uitvoeren: Modelleren, meten en verbeteren.

De belangrijkste parameters die betrokken zijn bij het testen van betrouwbaarheid zijn: -

  • Waarschijnlijkheid van storingsvrije werking
  • Duur van de storingsvrije werking
  • De omgeving waarin het wordt uitgevoerd

Stap 1) Modellering

Software Modeling Technique kan worden onderverdeeld in twee subcategorieรซn:

1. Voorspellingsmodellering

2. Schattingsmodellering

  • Betekenisvolle resultaten kunnen worden verkregen door geschikte modellen toe te passen.
  • Aannames en abstracEr kunnen aanpassingen worden gedaan om de problemen te vereenvoudigen, en geen enkel model is geschikt voor alle situaties. De belangrijkste verschillen tussen de twee modellen zijn:
Problemen Voorspellingsmodellen Schattingsmodellen
Gegevensreferentie Er wordt gebruik gemaakt van historische gegevens Er wordt gebruik gemaakt van actuele gegevens uit de softwareontwikkeling.
Bij gebruik in de ontwikkelingscyclus Het wordt meestal gemaakt vรณรณr de ontwikkelings- of testfase. Meestal wordt het later in de softwareontwikkelingscyclus gebruikt.
Tijdsbestek Het zal de betrouwbaarheid in de toekomst voorspellen. Het zal de betrouwbaarheid voor de huidige tijd of in de toekomst voorspellen.

Stap 2) Meting

De betrouwbaarheid van software kan niet direct worden gemeten; daarom worden andere gerelateerde factoren in aanmerking genomen om de betrouwbaarheid van software te schatten. De huidige praktijken van Software Reliability Measurement zijn onderverdeeld in vier categorieรซn: -

Meting 1: Productstatistieken

Productstatistieken zijn de combinatie van 4 soorten statistieken:

  • Softwaregrootte: โ€“ Lijn van Code (LOC) is een intuรฏtieve eerste benadering om de omvang van de software te meten. Alleen de broncode wordt in deze metriek meegerekend; commentaren en andere niet-uitvoerbare instructies worden niet meegeteld.
  • Functiepunt Metrisch:- Functie Pont Metric is de methode voor het meten van de functionaliteit van Softwareontwikkeling. Het houdt rekening met het aantal inputs, outputs, masterbestanden, enz. Het meet de functionaliteit die aan de gebruiker wordt geleverd en is onafhankelijk van de programmeertaal.
  • Ingewikkeldheid is direct gerelateerd aan softwarebetrouwbaarheid, dus het weergeven van complexiteit is belangrijk. De complexiteitsgerichte metriek bepaalt de complexiteit van de besturingsstructuur van een programma door de code te vereenvoudigen tot een grafische weergave.
  • Testdekkingsstatistieken: - Het is een manier om fouten en betrouwbaarheid in te schatten door softwareproducttests uit te voeren. Softwarebetrouwbaarheid betekent dat het de functie is om te bepalen of het systeem volledig is geverifieerd en getest.

Meting 2: Projectmanagementstatistieken

  • Onderzoekers hebben zich gerealiseerd dat goed management kan resulteren in betere producten.
  • Goed management kan een hogere betrouwbaarheid bereiken door gebruik te maken van betere processen voor ontwikkeling, risicobeheer en configuratiebeheer.

Meting 3: Processtatistieken

De kwaliteit van het product houdt rechtstreeks verband met het proces. Procesmetrieken kunnen worden gebruikt om de betrouwbaarheid en kwaliteit van software te schatten, monitoren en verbeteren.

Meting 4: Fout- en storingsstatistieken

Fault and Failure Metrics worden voornamelijk gebruikt om te controleren of het systeem volledig storingsvrij is. Zowel de typen storingen die tijdens het testproces (d.w.z. vรณรณr levering) zijn gevonden als de storingen die door gebruikers na levering zijn gemeld, worden verzameld, samengevat en geanalyseerd om dit doel te bereiken.

De betrouwbaarheid van software wordt gemeten in termen van de gemiddelde tijd tussen storingen (MTBF). MTBF bestaat uit

  • Mean to Failure (MTTF): Het is het tijdsverschil tussen twee opeenvolgende mislukkingen.
  • Mean Time to Repair (MTTR): Dit is de tijd die nodig is om de storing te verhelpen.
MTBF = MTTF + MTTR

Betrouwbaarheid voor goede software is een getal tussen 0 en 1.

De betrouwbaarheid neemt toe wanneer fouten of bugs uit het programma worden verwijderd.

Stap 3) Verbetering

Verbetering hangt volledig af van de problemen die zich in de applicatie of het systeem hebben voorgedaan, of anders de kenmerken van de software. Afhankelijk van de complexiteit van de softwaremodule, zal de manier van verbetering ook verschillen. Twee belangrijke beperkingen, tijd en budget, zullen de inspanningen beperken die worden geleverd om de betrouwbaarheid van software te verbeteren.

Voorbeeldmethoden voor het testen van de betrouwbaarheid

Bij het testen op betrouwbaarheid wordt een applicatie getest om fouten te ontdekken en te verhelpen voordat het systeem wordt geรฏmplementeerd.

Er worden hoofdzakelijk drie benaderingen gebruikt voor het testen van betrouwbaarheid

  • Test-hertest betrouwbaarheid
  • Betrouwbaarheid van parallelle formulieren
  • Beslissingsconsistentie

Hieronder probeerden we dit allemaal uit te leggen met een voorbeeld.

Test-hertest betrouwbaarheid

Test-hertest betrouwbaarheid

Om de test-hertestbetrouwbaarheid te schatten, zal een enkele groep examenkandidaten het testproces met een tussenpoos van een paar dagen of weken uitvoeren. De tijd moet kort genoeg zijn zodat de vaardigheden van de examinandus op dit gebied kunnen worden beoordeeld. De relatie tussen de scores van de proefpersoon van twee verschillende administraties wordt geschat door middel van statistische correlatie. Dit type betrouwbaarheid laat zien in hoeverre een test in de loop van de tijd stabiele, consistente scores kan opleveren.

Betrouwbaarheid van parallelle formulieren

Betrouwbaarheid van parallelle formulieren

Veel examens hebben meerdere formaten van vraagpapieren, deze parallelle examenvormen bieden veiligheid. De betrouwbaarheid van parallelle formulieren wordt geschat door beide examenvormen aan dezelfde groep examinandi te verstrekken. De scores van de examinandus op de twee testformulieren worden gecorreleerd om te bepalen hoe vergelijkbaar de twee testformulieren functioneren. Deze betrouwbaarheidsschatting is een maatstaf voor hoe consistent de scores van examinandi over testformulieren heen kunnen worden verwacht.

Beslissingsconsistentie

Nadat we Test-Hertest Betrouwbaarheid en Parallelle Vorm Betrouwbaarheid hebben gedaan, krijgen we het resultaat van de examenkandidaten die wel of niet slagen. De betrouwbaarheid van deze classificatiebeslissing wordt geschat in de betrouwbaarheid van de beslissingsconsistentie.

Belang van betrouwbaarheidstesten

Een grondige beoordeling van de betrouwbaarheid is vereist om de prestaties van softwareproducten en -processen te verbeteren. Het testen van de betrouwbaarheid van software zal softwarebeheerders en praktijkmensen in grote mate helpen.

Om de betrouwbaarheid van de software te controleren via testen: -

  1. Er moet een groot aantal testgevallen gedurende een langere periode worden uitgevoerd om te bepalen hoe lang de software zonder fouten zal werken.
  2. De distributie van testcases moet overeenkomen met het werkelijke of geplande operationele profiel van de software. Hoe vaker een functie van de software wordt uitgevoerd, hoe groter het percentage testcases dat aan die functie of subset moet worden toegewezen.

Betrouwbaarheidstesttools

Enkele Betrouwbaarheidstesttools gebruikt voor softwarebetrouwbaarheid zijn:

1. WEIBULL++: - Betrouwbaarheid Levensduur Data-analyse

2. RGA: - Betrouwbaarheidsgroeianalyse

3. RCM: Betrouwbaarheidsgericht onderhoud

Hoe deze test past binnen de familie van prestatietests.

Prestatietesten is een overkoepelende term. De onderstaande varianten verschillen alleen in de vorm van de toegepaste belasting en de duur ervan, waardoor ze vaak met elkaar worden verward.

Testtype Belastingspatroon Vraag het beantwoordt
Load testen Verwachte piekbelasting, korte duur Voldoet het systeem aan de doelstellingen bij normale piekbelasting?
Stress testen Verhoogd tot boven de capaciteit tot het faalt Waar gaat het mis, en verloopt het falen op een elegante manier?
Spike-testen Plotselinge, extreme stijging, gevolgd door terugtrekking. Kan het een verkeersschok overleven en ervan herstellen?
Uithoudingsvermogen testen Normale belasting gedurende vele uren aangehouden Neemt de prestatie in de loop der tijd af?
Soak testen Langdurige belasting gedurende een langere periode Zijn er geheugenlekken of is er sprake van uitputting van de systeembronnen?
Stabiliteitstesten Variรซrende belasting onder verschillende omstandigheden Blijft het systeem betrouwbaar bij veranderende omstandigheden?
Volume testen Normale gebruikers, zeer grote hoeveelheden data Kan het de groei van de database aan?

Duurzaamheidstesten en weektesten worden vaak als synoniemen beschouwd. In de volksmond worden ze als volgt omschreven: beide tests houden een constante belasting gedurende een lange periode vol. Waar teams wel onderscheid maken tussen beide, richt duurtesten zich op de vraag of de responstijden toenemen, terwijl duurtesten zich richten op het resourceverbruik, zoals geheugen, bestandsdescriptors en verbindingspools. Het uitvoeren van รฉรฉn test levert meestal bewijs voor beide.

Betrouwbaarheidstesten: Belangrijkste conclusies

Betrouwbaarheidstesten zijn een belangrijk onderdeel van een betrouwbaarheidsengineeringprogramma. Correcter gezegd: het is de ziel van een betrouwbaarheidsengineeringprogramma. Bovendien zijn betrouwbaarheidstests vooral bedoeld om bepaalde foutmodi en andere problemen tijdens het testen van software aan het licht te brengen.

In Software EngineeringBetrouwbaarheidstesten kunnen worden onderverdeeld in drie segmenten:

  • Modellering
  • maat
  • Verbetering

Factoren die de betrouwbaarheid van software beรฏnvloeden

  • Het aantal fouten in de software
  • De manier waarop gebruikers het systeem bedienen

Veelgestelde vragen

Betrouwbaarheidstesten meten de waarschijnlijkheid van een storingsvrije werking gedurende een bepaalde periode, uitgedrukt in statistische waarden. Stabiliteitstesten controleren of het systeem blijft functioneren onder wisselende omstandigheden, zonder noodzakelijkerwijs een storingspercentage te kwantificeren.

MTBF is de gemiddelde tijd tussen storingen voor een repareerbaar systeem. MTTF is de gemiddelde tijd tot een storing voor een niet-repareerbaar systeem. MTTR is de gemiddelde tijd tot reparatie nadat een storing is opgetreden.

Ja. Bij versnelde tests wordt een zwaarder gebruiksprofiel gehanteerd dan in de productieomgeving, waarna het resultaat wordt gemodelleerd naar normale omstandigheden. Het model is een schatting en moet daarom worden gevalideerd aan de hand van praktijkgegevens.

AI-modellen voorspellen welke componenten het meest storingsgevoelig zijn op basis van defectgeschiedenis, codewijzigingen en complexiteit, waardoor teams hun betrouwbaarheidsinspanningen kunnen concentreren op de plekken waar storingen daadwerkelijk waarschijnlijk zijn.

Tot op zekere hoogte. Modellen die getraind zijn op historische incidentgegevens schatten de faalkans per component in, maar de voorspelling is slechts zo goed als de operationele gegevens die eraan ten grondslag liggen en mag nooit metingen vervangen.

Vat dit bericht samen met: