Betrouwbaarheidstesten
Betrouwbaarheidstesten is een softwaretestproces dat controleert of de software gedurende een bepaalde periode in een bepaalde omgeving een foutloze bewerking kan uitvoeren. Het doel van betrouwbaarheidstests is om ervoor te zorgen dat het softwareproduct vrij van fouten 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 betrouwbaarheidstests.
In deze tutorial leer je-
- Wat is betrouwbaarheidstesten?
- Betrouwbaarheidstest Voorbeeld
- Factoren die de betrouwbaarheid van software beïnvloeden
- Waarom betrouwbaarheidsonderzoeken doen
- Soorten betrouwbaarheidstests
- Betrouwbaarheidstests uitvoeren
- Voorbeeldmethoden voor betrouwbaarheidsonderzoek
- Betrouwbaarheidstesttools
Betrouwbaarheidstest Voorbeeld
De kans dat een pc in een winkel acht uur lang actief is zonder te crashen, is 99%; dit wordt betrouwbaarheid genoemd.
Betrouwbaarheidstesten kunnen worden onderverdeeld in drie segmenten,
- Modellering
- Meting
- Verbetering
De volgende formule is voor het berekenen van de faalkans.
Waarschijnlijkheid = aantal falende gevallen / totaal aantal behandelde gevallen
Factoren die de betrouwbaarheid van software beïnvloeden
- Het aantal fouten in de software
- De manier waarop gebruikers het systeem bedienen
- Betrouwbaarheidstests 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 zullen op verschillende niveaus worden uitgevoerd. Complexe systemen worden getest op unit-, montage-, subsysteem- en systeemniveau.
Waarom betrouwbaarheidsonderzoeken doen
Betrouwbaarheidstests worden uitgevoerd om de softwareprestaties onder de gegeven omstandigheden te testen.
Het doel van het uitvoeren van betrouwbaarheidstests is:
- Om de structuur van herhalende mislukkingen te vinden.
- Om het aantal optredende storingen te vinden, is de opgegeven hoeveelheid tijd.
- Om de hoofdoorzaak van mislukking te ontdekken
- Om prestatietests uit te voeren van verschillende modules van softwareapplicatie 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 softwarebetrouwbaarheid verbeteren. Enkele van de hulpmiddelen die hiervoor nuttig zijn, zijn: trendanalyse, classificatie van orthogonale defecten en formele methoden, enz.
Soorten betrouwbaarheidstests
Software betrouwbaarheidstesten omvatten functietesten, belastingtesten en regressietesten
Functietesten: -
Aanbevolen tests controleren de functie van de software en worden uitgevoerd in de volgende stappen: -
- Elke bewerking in de software wordt minstens één keer uitgevoerd.
- De interactie tussen de twee bewerkingen wordt verminderd.
- Elke operatie moet worden gecontroleerd op de juiste uitvoering.
Belastingstest: -
Meestal presteert de software aan het begin van het proces beter en daarna gaat het achteruit. Load Testing wordt uitgevoerd om de prestaties van de software onder maximale werkbelasting te controleren.
Regressietest: -
Regressietesten worden voornamelijk gebruikt om te controleren of er nieuwe bugs zijn geïntroduceerd vanwege het verhelpen van eerdere bugs. Regressietesten worden uitgevoerd na elke wijziging of update van de softwarefuncties en hun functionaliteiten.
Betrouwbaarheidstests uitvoeren
Betrouwbaarheidstests zijn duur in vergelijking met andere soorten tests. Dus een goede planning en beheer is vereist tijdens het uitvoeren van betrouwbaarheidstests. Dit omvat het te implementeren testproces, gegevens voor testomgeving, testschema, testpunten, etc.
Om te beginnen met het testen van de betrouwbaarheid, moet de tester dingen blijven volgen,
- Stel betrouwbaarheidsdoelen vast
- Ontwikkel operationeel profiel
- Plan en voer testen uit
- Gebruik testresultaten om beslissingen te nemen
Zoals we eerder hebben besproken, zijn er drie categorieën waarin we de betrouwbaarheidstest kunnen uitvoeren: modellering, meting en verbetering .
De belangrijkste parameters die betrokken zijn bij betrouwbaarheidstests zijn: -
- Waarschijnlijkheid van een storingsvrije werking
- Duur van de storingsvrije werking
- De omgeving waarin het wordt uitgevoerd
Stap 1) Modelleren
Softwaremodelleringstechniek kan worden onderverdeeld in twee subcategorieën:
1. Voorspellingsmodellering
2. Schattingsmodellering
- Door geschikte modellen toe te passen, kunnen zinvolle resultaten worden verkregen.
- Veronderstellingen en abstracties kunnen worden gemaakt om de problemen te vereenvoudigen en geen enkel model is geschikt voor alle situaties.
De belangrijkste verschillen tussen twee modellen zijn: -
Problemen | Voorspellingsmodellen | Schattingsmodellen |
---|---|---|
Gegevensreferentie | Het maakt gebruik van historische gegevens | Het maakt gebruik van actuele gegevens van de softwareontwikkeling. |
Bij gebruik in ontwikkelingscyclus | Het wordt meestal gemaakt vóór de ontwikkelings- of testfasen. | Het wordt meestal gebruikt in de latere fase van de levenscyclus van softwareontwikkeling. |
Tijdsspanne | Het zal de betrouwbaarheid in de toekomst voorspellen. | Het zal de betrouwbaarheid voor de huidige tijd of in de toekomst voorspellen. |
Stap 2) Meting
Softwarebetrouwbaarheid kan niet direct worden gemeten en daarom worden andere gerelateerde factoren in overweging genomen om de softwarebetrouwbaarheid te schatten. De huidige praktijken van het meten van softwarebetrouwbaarheid zijn onderverdeeld in vier categorieën: -
1. Productstatistieken: -
Productstatistieken zijn de combinatie van 4 soorten statistieken:
- Softwaregrootte : - Line of Code (LOC) is een intuïtieve eerste benadering voor het meten van de grootte van de software. Alleen de broncode wordt in deze metriek geteld en de opmerkingen en andere niet-uitvoerbare instructies worden niet meegeteld.
- Functiepunt Metrisch : - Functie Pont Metrisch is de methode om de functionaliteit van de softwareontwikkeling te meten. 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.
- Complexiteit : - Het is direct gerelateerd aan softwarebetrouwbaarheid, dus het vertegenwoordigen van complexiteit is belangrijk. Complexiteitsgeoriënteerde metriek is een methode om de complexiteit van de besturingsstructuur van een programma te bepalen, door de code te vereenvoudigen tot een grafische weergave.
- Testdekkingsstatistieken : - Het is een manier om fouten en betrouwbaarheid in te schatten door de volledige test van softwareproducten uit te voeren. Softwarebetrouwbaarheid betekent dat het de functie is om te bepalen dat het systeem volledig is geverifieerd en getest.
2. Metrics voor projectmanagement
- Onderzoekers hebben ingezien dat goed management kan leiden tot betere producten.
- Een goed management kan een hogere betrouwbaarheid bereiken door gebruik te maken van een beter ontwikkelingsproces, risicobeheerproces, configuratiebeheerproces, enz.
3. Processtatistieken
De kwaliteit van het product is direct gerelateerd aan het proces. De processtatistieken kunnen worden gebruikt om de betrouwbaarheid en kwaliteit van software in te schatten, te bewaken en te verbeteren.
4. Metrische gegevens over fouten en storingen
Fault and Failure Metrics worden voornamelijk gebruikt om te controleren of het systeem volledig storingsvrij is. Zowel de soorten fouten die tijdens het testproces (dat wil zeggen vóór levering) zijn ontdekt, als de door gebruikers na levering gerapporteerde fouten worden verzameld, samengevat en geanalyseerd om dit doel te bereiken.
Softwarebetrouwbaarheid wordt gemeten in termen van gemiddelde tijd tussen storingen (MTBF) . MTBF bestaat uit
- Mean to failure (MTTF): het is het tijdsverschil tussen twee opeenvolgende storingen
- Mean time to repair (MTTR): dit is de tijd die nodig is om de storing op te lossen.
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 zijn opgetreden in de applicatie of het systeem, of anders de kenmerken van de software. Afhankelijk van de complexiteit van de softwaremodule zal ook de manier van verbeteren verschillen. Twee belangrijke beperkingen, tijd en budget, die de inspanningen zullen beperken, worden gestoken in de verbetering van de betrouwbaarheid van de software.
Voorbeeldmethoden voor betrouwbaarheidsonderzoek
Testen op betrouwbaarheid gaat over het oefenen van een applicatie, zodat fouten worden ontdekt en verwijderd voordat het systeem wordt geïmplementeerd.
Er zijn hoofdzakelijk drie benaderingen die worden gebruikt voor betrouwbaarheidstests
- Test-hertest betrouwbaarheid
- Betrouwbaarheid van parallelle vormen
- Beslissingsconsistentie
Hieronder hebben we geprobeerd dit allemaal uit te leggen met een voorbeeld.
Test-hertest betrouwbaarheid
Om de betrouwbaarheid van de test-hertest te schatten, voert een enkele groep examinandi een testproces uit met een tussenpoos van slechts een paar dagen of weken. De tijd moet zo kort zijn dat de vaardigheden van de examinandus in het gebied kunnen worden beoordeeld. De relatie tussen de scores van de examinandus van twee verschillende administraties wordt geschat door middel van statistische correlatie. Dit type betrouwbaarheid laat zien in hoeverre een test in staat is om in de loop van de tijd stabiele, consistente scores te produceren.
Betrouwbaarheid van parallelle vormen
Veel examens hebben meerdere formaten vraagpapieren, deze parallelle examenvormen bieden zekerheid. De betrouwbaarheid van parallelle vormen wordt geschat door beide vormen van het examen af te nemen aan dezelfde groep proefpersonen. De scores van de onderzochte personen op de twee testformulieren worden gecorreleerd om te bepalen hoe vergelijkbaar de twee testformulieren werken. Deze schatting van de betrouwbaarheid is een maatstaf van hoe consistente scores van de onderzochte personen kunnen worden verwacht op alle testformulieren.
Beslissingsconsistentie
Na het doen van test-hertestbetrouwbaarheid en parallelle vormbetrouwbaarheid, krijgen we het resultaat van de geslaagde of niet-geslaagd examens. Het is de betrouwbaarheid van deze classificatiebeslissing die wordt ingeschat in de betrouwbaarheid van de beslissingsconsistentie.
Belang van betrouwbaarheidstests
Een grondige beoordeling van de betrouwbaarheid is vereist om de prestaties van softwareproducten en -processen te verbeteren. Het testen van de betrouwbaarheid van de software zal de softwarebeheerders en beoefenaars in grote mate helpen.
Om de betrouwbaarheid van de software te controleren door middel van testen: -
- Een groot aantal testcases moet gedurende een langere periode worden uitgevoerd om erachter te komen hoe lang de software zonder fouten kan worden uitgevoerd.
- De distributie van testcases moet overeenkomen met het feitelijke of geplande operationele profiel van de software. Hoe vaker een functie van de software wordt uitgevoerd, hoe groter het percentage testgevallen dat aan die functie of subset zou moeten worden toegewezen.
Betrouwbaarheidstesttools
Enkele van de testtools voor betrouwbaarheid die worden gebruikt voor softwarebetrouwbaarheid zijn:
1. WEIBULL ++: - Betrouwbaarheid Levensgegevensanalyse
2. RGA: - Betrouwbaarheidsgroei-analyse
3. RCM: -betrouwbaarheidsgericht onderhoud
Overzicht:
Betrouwbaarheidstesten is het belangrijkste onderdeel van een betrouwbaarheidstechnisch programma. Meer correct, het is de ziel van het programma voor betrouwbaarheidstechniek.
Bovendien zijn betrouwbaarheidstests voornamelijk bedoeld om bepaalde storingsmodi en andere problemen tijdens het testen van software aan het licht te brengen.
In Software Engineering kan Reliability Testing worden onderverdeeld in drie segmenten,
- Modellering
- Meting
- Verbetering
Factoren die de betrouwbaarheid van software beïnvloeden
- Het aantal fouten in de software
- De manier waarop gebruikers het systeem bedienen