Wat is softwarekwaliteitsborging?

  • Software Quality Assurance (SQA) is het geheel van activiteiten om de kwaliteit van de te ontwikkelen software te waarborgen. Studies hebben aangetoond dat 98% van de projecten uiteindelijk op de markt mislukte vanwege de volgende redenen, zoals geschatte tijd, wijziging van de vereisten, hogere kosten dan verwacht of hoge onderhoudskosten. Het is dus erg belangrijk om rekening te houden met de verschillende parameters vóór de ontwikkeling van de software om het risico op fouten te minimaliseren.
  • Om het risico van falen van software in de markt te minimaliseren, kwam softwarekwaliteitsborging in beeld.
  • Het omvat een reeks activiteiten, processen, procedures en normen die geschikt zijn voor het project. Het omvat alle kwaliteitsnormen voor software, van het verzamelen van vereisten tot de ontwikkeling, release en onderhoud ervan.
  • SQA loopt parallel met de ontwikkelingslevenscyclus van software die regelmatig controleert of de software die wordt ontwikkeld in elke fase aan zijn normen moet voldoen, zodat de problemen in een vroeg stadium kunnen worden voorkomen in plaats van na de voltooiing van het project te worden afgehandeld.
  • SQA omvat audit, training, procesdefinitie en implementatie als haar belangrijkste activiteiten. Zodra het proces is gedefinieerd, begint SQA de zwakte erin te vinden en manieren om die zwaktes te corrigeren voor betere software.

Software Quality Assurance-activiteiten

Hieronder worden enkele activiteiten van Software Quality Assurance weergegeven.

1. Het ijkpunt instellen

SQA-team stelt de controlepunten in na specifieke tijdsintervallen om de voortgang, kwaliteit, prestaties van software te controleren en of het softwarekwaliteitswerk op tijd wordt uitgevoerd volgens het schema en de documenten.

2. Meet de impact van de verandering

Voor een defect gemeld door QA en opgelost door de ontwikkelaar, is het erg belangrijk om de defectfix opnieuw te testen en te controleren of het gefixeerde defect geen nieuwe defecten in de werkende software introduceert. Hiervoor worden teststatistieken onderhouden en geobserveerd door managers en ontwikkelaars om te controleren op nieuw gegenereerde defecten door de introductie van nieuwe functionaliteit of het oplossen van een defect.

3. Meerdere teststrategieën hebben

Men moet niet vertrouwen op een enkele testbenadering en strategie voor het testen van software. Meerdere teststrategieën moeten in software worden geïmplementeerd om het vanuit verschillende invalshoeken te testen en alle gebieden te bestrijken. Voor een e-commerce website moeten veiligheidstests, prestatietests, load-testen en database-testen allemaal worden gedaan om een ​​betere kwaliteit van de software te waarborgen.

4. Het bijhouden van records en rapporten

Het is belangrijk om alle records en documenten van de QA te bewaren en op tijd met belanghebbenden te delen. Testgevallen uitgevoerd, testcycli, vastgelegde fouten, vastgelegde fouten, gemaakte testgevallen, wijziging van de eisen van een klant voor een specifieke testcase, alles moet goed worden gedocumenteerd voor toekomstige referentie.

5. Beheer van goede relaties

Het managen van goede relaties tussen de testers en ontwikkelaars speelt een belangrijke rol in het project. Omdat de rol van ontwikkelaar en tester elkaar tegenspreken, maar dit niet op een persoonlijk niveau moet worden opgevat. Het hoofddoel van beide teams moet de levering zijn van projecten van goede kwaliteit met minimale faalrisico's.

6. SQA-beheerplan

Dit omvat het vinden van manieren hoe de SQA op de meest effectieve manier in het nieuwe project zal werken. Denk aan SQA-strategieën, software engineering-processen die kunnen worden geïmplementeerd volgens de projectvereisten en de individuele vaardigheden van teamleden.

Componenten van SQA-systeem

SQA-componenten kunnen worden onderverdeeld in 6 klassen:

1. Pre-projectcomponenten

Dit verzekert dat de inzet van het project duidelijk is gedefinieerd met betrekking tot de tijdschatting, verduidelijking van klantvereisten, totale budget van het project, evaluatie van ontwikkelingsrisico's, totaal personeel vereist voor dat specifieke project. Het verzekert ook dat ontwikkelings- en kwaliteitsplannen duidelijk zijn gedefinieerd.

2. Componenten van de levenscyclus van softwareprojecten

Dit onderdeel omvat de beoordeling, expertmeningen, softwaretests, softwareonderhoudsonderdelen. In de levenscyclus van projectontwikkeling omvat het componenten zoals beoordelingen, meningen van experts en het vinden van defecten in softwareontwerp en -programmering, terwijl het in de levenscyclus van softwareonderhoud gespecialiseerde onderhoudscomponenten en componenten van de ontwikkelingslevenscyclus omvat voor het verbeteren van onderhoudstaken.

3. Infrastructuurcomponenten voor foutpreventie en verbeteringen

Deze component omvat personeelstraining, certificering, configuratiebeheer, preventieve en corrigerende maatregelen om het aantal fouten in een software te verminderen op basis van de opgebouwde SQA-ervaring van de organisatie.

4. Beheer SQA-componenten

Deze klasse omvat metrieken van softwarekwaliteit, kosten van softwarekwaliteit, inclusief beheersing van onderhouds- en ontwikkelingsactiviteiten en de introductie van managementbetrokkenheid om het risico van kwaliteit, planning en budget in het project te verminderen.

5. Componenten van standaardisatie, certificering en SQA-systeembeoordeling

Het hoofddoel van deze klasse is het gebruik van professionele internationale kennis die helpt bij de coördinatie tussen de verschillende kwaliteitssystemen van de organisatie op professioneel niveau.

6. Organiseren voor SQA Human Components

Deze basis omvat managers, testers en andere SQA-beoefenaars die geïnteresseerd zijn in SQA. Het hoofddoel is het ondersteunen en initiëren van de SQA-activiteiten, het opsporen van de hiaten / afwijkingen daarin en het voorstellen van verbeteringen daarvoor.

Normen voor softwarekwaliteitsborging

Verschillende organisaties, nationale en internationale instituten zijn betrokken bij de ontwikkeling van SQA-normen. De onderstaande zijn de belangrijkste organisaties en instituten die erbij betrokken zijn:

  1. IEEE
  2. PUNT
  3. ISO
  4. ANSI
  5. EIA
  6. IEC

SQA-normen zijn in principe onderverdeeld in twee categorieën:

1. Software Quality Assurance Standard die bekend staat als Quality Management Standards.

Voorbeeld: ISO 9000-3, CMM (Capability Maturity Model).

Ze richten zich op de infrastructuur van de organisatie, het SQA-systeem, de vereisten en laten de keuze van hulpmiddelen en testmethoden over aan een organisatie. Hun standaarddoel is "wat" te bereiken. Het zorgt ervoor dat organisaties een acceptabele softwarekwaliteit bereiken.

2. Software Project Development Process-standaarden die bekend staan ​​als Project Process Standards.

Voorbeeld: ISO / IEC 12207 IEEEStd 1012-1998.

Ze richten zich op methoden die moeten worden geïmplementeerd bij de ontwikkeling en het onderhoud van software. Het richt zich op 'hoe' te presteren. Het omvat vereisten voor ontwerpdocumentatie, te nemen stappen, uit te voeren softwaretests en problemen met ontwerpbeoordeling en -beoordeling.

SQA-technieken

Er zijn verschillende SQA-technieken. Sommigen van hen worden hieronder vermeld:

1. Herziening

Bij de beoordeling wordt een bijeenkomst gehouden door zowel interne als externe belanghebbenden om het hele project te beoordelen, die de hele software analyseert en, indien er een probleem wordt gevonden, onderscheid maakt tussen testen, ontwikkeling, vereisten of een ontwerp. Het hoofddoel is het meten van de kwaliteit van software en zorg ervoor dat deze voldoet aan de verwachtingen van de klant of niet.

2. Auditing

In Auditing worden het hele werkproduct en alle gegevens geïnspecteerd door belanghebbenden om te controleren of het de standaardprocessen volgt of niet.

3. Functioneel testen

Bij het functionele testen wordt de functionaliteit van de gehele software getest of deze functioneert zoals verwacht of niet. Het controleert "wat het systeem werkt" zonder te weten "hoe het systeem werkt". Het is als het testen in een zwarte doos van een toepassing waarbij de gebruiker de verwachte uitvoer kent zonder te weten hoe deze wordt geproduceerd.

4. Standaardisatie

Het zorgt ervoor dat alles in de software gestandaardiseerd moet worden, dat wil zeggen dat het alle normen volgt, ofwel de normen in documentatie, ontwikkeling, kwaliteitscontrole. Het vermindert de dubbelzinnigheid en verbetert daarmee de kwaliteit van software.

5. Code-inspectie

Code-inspectie is een van de meest formele soorten beoordelingen met als hoofddoel het vinden van defecten in de code en het signaleren van problemen in de code-inspectie wordt geleid door een getrainde moderator in plaats van de auteur van de code. Meeting heeft juiste entry- en exitcriteria. Gebruikers moeten voor de vergadering volledige voorbereiding nodig hebben om volledige kennis van documenten te hebben en alles voordat ze hun punten ter sprake brengen.

6. Doorloop

Software-walkthrough is een soort informeel proces en meestal wordt het door de auteur geïnitieerd om het document of de code te lezen en schrijven de peer-leden hun suggesties of fouten erin op en dienen deze in. Het is niet formeel gedocumenteerd zoals Inspectie en moderator is niet nodig in de vergadering. Het belangrijkste doel is om de status van tot op heden voltooide code te kennen en suggesties van collega's te verzamelen voor een betere softwarekwaliteit.

7. Stresstesten

Stresstests worden uitgevoerd om te controleren hoe het systeem onder zware belasting werkt. Dit testen speelt een belangrijke rol in de softwarekwaliteit, net als in e-commercetoepassingen, stress- en belastingstests worden correct uitgevoerd om de capaciteit van de software te testen (hoeveel maximaal aantal gebruikers tegelijkertijd toegang hebben tot een toepassing).

8. Ontwerpinspectie

Ontwerpinspectie wordt gedaan om de verschillende softwaregebieden te controleren met behulp van de checklist, zoals functioneel en interface-ontwerp, conventies, algemene vereisten en ontwerp, traceerbaarheid van vereisten, logica, koppeling en samenhang.

Voordelen van SQA

Laten we de voordelen van SQA bespreken.

1. Verhoogt het vertrouwen van de klant

Een goede kwaliteitscontrole op verschillende niveaus van software zoals beoordeling, inspectie, auditing, enz. En met de betrokkenheid van zowel interne als externe belanghebbenden verhoogt het vertrouwen van klanten bij het indienen van de wekelijkse rapporten van het defect en de vereiste meetwaarden helpt ook veel bij het verzekeren van de klant dat het werk op tijd wordt gedaan.

2. SQA bespaart geld

Defecten die in het vroege stadium worden gevonden, hetzij in het verzamelen van vereisten, code, testen, zijn eenvoudig en kosteneffectief. Juiste SQA op verschillende niveaus helpt dit risico te verminderen, omdat maximale defecten in een vroeg stadium zijn ontdekt en opgelost en dus geld bespaart om de defecte software nadat deze aan de klant is gepresenteerd, wat de reputatie van het bedrijf, gebruikers en klanten kan kosten.

3. Verhoog de klanttevredenheid

Tijdige betrokkenheid van de klant bij softwareontwikkeling en -tests verhoogt de klanttevredenheid dat de kwaliteitssoftware wordt ontwikkeld en volgens de vereisten en het nemen van suggesties tussendoor verhoogt de klanttevredenheid.

4. Bevordert productiviteit en efficiëntie

Wanneer ontwikkeling en testen parallel worden uitgevoerd, kunnen defecten die vroeg worden gevonden net nadat de ontwikkeling van een enkele module is gedaan en tijdig door ontwikkelaars is opgelost, iedereen in staat stellen om in alle rust en op een productievere manier te werken in plaats van te worden belast met meerdere bugs tegelijk na de voltooiing van de hele software.

5. Voorkomt onvoorziene noodsituaties

Bij het ontwikkelen van bedrijfssoftware zijn de belangen ook erg hoog. Omdat de software veel gevoelige gegevens van klanten verwerkt, moet het werken zoals verwacht zonder black-outs, corruptie of communicatieproblemen. De software moet zeer rigoureus worden getest, zodat deze naar verwachting werkt.

6. Vermindert eindtijd clientconflicten

Later zijn er veel gevallen van onenigheid van de klant en organisaties gevonden met betrekking tot de wijziging in de vereisten, de tijd en het budget die in het begin zijn vastgesteld, resulterend in de annulering van het project, geldverlies en een slechte indruk van het bedrijf in de markt (verlies van klant als het zou een slechte reputatie creëren). In SQA staat alles vast in het begin van het project en wordt het goed gedocumenteerd zonder enige dubbelzinnigheid, zodat er geen conflicten zouden ontstaan

Nadelen van SQA

Laten we de nadelen van SQA bespreken.

1. Soms moeilijk te implementeren

Aangezien SQA alle activiteiten en acties definieert die bij elke stap van de softwareontwikkeling op een zeer gedetailleerde manier moeten worden genomen, wordt het soms moeilijk om elke afzonderlijke activiteit en elk proces in ontwikkeling te implementeren. De persoon weet dus dat het nuttig zou zijn, maar het concentreren op elke stap in detail wordt moeilijk wanneer in grote teams wordt gewerkt.

2. Tijdrovend

De implementatie van elke actie in SQA kost veel tijd en kost soms meer tijd aan documentatie en vergaderingen dan aan het daadwerkelijk ontwikkelen en testen van software.

3. Hoge kosten

Door de implementatie van SQA, hoewel de kosten van het repareren van de bugs in de latere stadia kunnen worden verlaagd door ze te vinden en alleen in het begin te repareren, maar voor de kleine projecten met het lage budget is het erg moeilijk om SQA te implementeren omdat het aantal middelen toeneemt in het project doet hetzelfde met het budget van een project. Voor een klein project veroorzaakt het inhuren van het hele team van QA en het implementeren van SQA een drastische verhoging van de kosten van een project.

Conclusie

SQA is een overkoepelende activiteit die het hele project gedurende de software-levenscyclus bestrijkt, van het verzamelen van vereisten tot het onderhoud van het project. Het omvat alle activiteiten en processen in verschillende stadia van software-ontwikkeling om ervoor te zorgen dat de geleverde software van hoge kwaliteit en minimaal risico is, zodat deze in de markt kan slagen en aan de verwachtingen van de klant en de klant kan voldoen.

Aanbevolen artikelen

Dit is een gids voor Software Quality Assurance. Hier bespreken we de activiteiten, componenten, voordelen en nadelen van SQA. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Softwaretestprincipes
  2. Software testen levenscyclus
  3. Agile Software
  4. Kwaliteitsborging versus kwaliteitscontrole
  5. Black Box-testtechnieken