Kernpraktijken die de softwarekwaliteit beïnvloeden

Kernpraktijken die de softwarekwaliteit beïnvloeden

Software Quality Assurance (SQA) wordt gedefinieerd als een goed geplande en systematische benadering om de kwaliteit van software te evalueren. Het controleert de naleving van softwareproductnormen, -processen en -procedures. SQA omvat het systematische proces om ervoor te zorgen dat normen en procedures worden vastgesteld en ook worden gevolgd gedurende de levenscyclus en testcyclus van de softwareontwikkeling.

De belangrijkste focus van testen is om de bugs in het systeem zo vroeg mogelijk te identificeren, omdat het vroegtijdig oplossen van de defecten goedkoper is. Zoals blijkt uit de cijfers van een onderzoek, worden bugs die na de release worden gevonden, duurder om op te lossen en hebben ze ook invloed op het vertrouwen van de eindgebruiker in de toepassing.

Uit een onderzoek van IBM blijkt dat het 100 keer duurder is om defecten te herstellen die worden gevonden nadat de applicatie is uitgebracht

  • Samenvattend: kwaliteitsborging van software is belangrijk omdat het het volgende mogelijk maakt:
  • Zorg ervoor dat het project aan de eisen voldoet
  • Voorkom, detecteer en herstel defecten in een vroeg stadium
  • Minimaliseer projectrisico's
  • Verhoog de productbetrouwbaarheid
  • Verbeter de ervaring van de eindgebruiker
  • Testen en normconformiteit
  • Releasebeheer en Release Control
  • Lagere ontwikkelingskosten
  • Lagere onderhoudskosten

Voordelen van testen

  • Kortere time-to-market
  • Van hoge kwaliteit
  • State of the art testmiddelen
  • Flexibele middelen
  • Focus op strategische prioriteiten

SQA-activiteiten vinden plaats in elke fase van de ontwikkelingscyclus. De fasen zijn onderverdeeld in gebieden van het verzamelen van vereisten, systeemontwerp en codering en testen en uiteindelijk vrijgeven.

  1. Verificatie - Het proces van het evalueren van een systeem of onderdeel om te bepalen of de producten van een bepaalde ontwikkelingsfase voldoen aan de voorwaarden die aan het begin van die fase worden gesteld.
  2. Validatie - Het proces van het evalueren van een systeem of onderdeel tijdens of aan het einde van het ontwikkelingsproces om te bepalen of het aan specifieke vereisten voldoet

Tijdens de vereistenanalyse, ontwerp- en coderingsfasen van applicatieontwikkeling moeten de outputs van elke fase worden gemeten, bewaakt en beheerd, zodat elke output kan worden geverifieerd aan de hand van de vooraf gedefinieerde exitcriteria. Wanneer de uiteindelijke applicatie de coderings- en integratiefasen heeft voltooid, moet deze worden gevalideerd tegen de oorspronkelijke applicatievereisten en door het senior management worden afgetekend als geslaagd voor validatietests. In elke fase van deze applicatieontwikkeling moeten de inspanningen tijdens de ontwikkeling waar mogelijk worden verbeterd om de kwaliteit te verbeteren en concurrerend te blijven.

Het verschil tussen verificatie, validatie en meting van softwarekwaliteit

Een effectieve verificatie-inspanning moet aantonen dat alle eisen correct zijn uitgevoerd, dit wordt gedaan door de eisen te toetsen aan de productlevering. Deze tests kunnen opnieuw worden uitgevoerd om dezelfde resultaten te bereiken als het systeem op een later tijdstip wordt gewijzigd.

Verificatie toont aan dat een product voldoet aan de gespecificeerde vereisten op vooraf gedefinieerde mijlpalen tijdens de ontwikkelingscyclus. Validatie controleert of het systeem aan de eisen van de klant voldoet aan het einde van de ontwikkelingscyclus.

Validatie is het proces waarbij het eindproduct wordt geëvalueerd om te controleren of de applicatie voldoet aan de verwachtingen en eisen van de klant. Het is een dynamisch mechanisme voor het valideren en testen van het eigenlijke product. De validatietesten maken gebruik van methoden zoals black box (functionele) testen, grey box testen en white box (structurele) testen, etc.

De kwaliteit van de software die in elk proces of model wordt geproduceerd, wordt beschreven in termen van het aantal defecten dat wordt gemaakt. De meest voorkomende statistieken voor defecten zijn doorgaans:

  • Totaal aantal testgevallen
  • Aantal testcases geslaagd
  • Aantal mislukte testgevallen
  • Aantal geblokkeerde testcases
  • Aantal gevonden defecten
  • Aantal geaccepteerde defecten
  • Aantal afgekeurde defecten
  • Aantal uitgestelde defecten
  • Aantal kritieke defecten
  • Aantal geplande testuren
  • Aantal daadwerkelijke testuren
  • Aantal gevonden bugs na levering

De verschillende activiteiten van Quality Assurance zijn als volgt:

  1. Behoud van de kwaliteit van het project volgens de specificaties en zakelijke vereisten.
  2. Defectpreventie en formele methoden voor andere defectpreventietechnieken.
  3. Vermindering van defecten.
  4. Inspectie, formele en informele beoordelingen: directe foutdetectie en verwijdering zonder het projectscenario uit te voeren.
  5. Testen van het project op het observeren van fouten en het verwijderen van bugs.
  6. Risico-identificatie.
  7. Opsporingstechnieken en -methoden voor defecten.
  8. Fouttolerantie van software.
  9. Afsluitende opmerkingen en bijhouden van rapporten.

Waarom de kwaliteitsborging van de software erg belangrijk is

  1. Gebruikersperspectief : Kwaliteitsborging van de softwareapplicatie is goed om de applicatie vanuit het perspectief van de eindgebruiker te bekijken en een scenario te creëren dat hiervan afhankelijk is.
  2. Defect in testfase : het is goed om de problemen in een vroeg stadium op te sporen en op te lossen voordat de klant ze bijvoorbeeld in de productie aantreft.
  3. Projectrisico : QA aan het begin van een project speelt een sleutelrol bij het verminderen van de risico's die zijn geïdentificeerd tijdens de specificatiefasen.
  4. Betrouwbaarheid : vergroot het vertrouwen van eindgebruikers wanneer ze merken dat de applicatie werkt volgens hun verwachtingen. Zelfs een negatief scenario als gevolg van een volledige mislukking verhoogt het vertrouwen van de eindgebruiker en maakt de applicatie intelligent.
  5. Vergemakkelijkt de eindgebruiker : het helpt de eindgebruiker om zakelijke taken uit te voeren zonder enige technische kennis van de applicatie. Gemakkelijk te begrijpen applicaties hebben meer gebruikers dan traditionele applicaties.
  6. Preventie van beveiligingsinbreuken : het helpt softwareontwikkelaars om de gebruikersgegevens in de productieomgeving te beschermen en elk datalek in de testomgeving te detecteren.
  7. Load Understanding : Het helpt om de applicatie te begrijpen die onder simulatie werkt en om de problemen op te lossen na inzicht in de werkelijke belasting van het systeem in de productieomgeving.
  8. Automatisering : het testen van de software met als doel de testinspanningen te verminderen, sneller en op een meer betaalbare manier capaciteit te leveren. Het helpt bij het bouwen van software van betere kwaliteit met minder moeite.