software development
Wat zijn de methoden voor softwareontwikkeling en -test?
Testen is een essentieel onderdeel van het softwareontwikkelingsproces. Een robuust en stabiel softwareproduct kan worden geleverd met behulp van standaard testmethoden die helpen bij het voorspellen van de tijdlijn van het softwaresysteem.
Een softwaretoepassing kan nog complexer worden met een groot aantal platforms en apparaten. Wat nog belangrijker is, het is vereist om ervoor te zorgen dat ze voldoen aan de gespecificeerde vereisten en efficiënt kunnen worden geïnstalleerd en bediend op de machine van de gebruiker of niet.
Met de middelen van veiligheid compatibiliteit , en bruikbaarheid, moet een softwareproduct worden getest met behulp van de juiste testmethodologie.
In dit artikel we zullen in detail bespreken wat wordt bedoeld met testmethodologieën, hoe dit verschilt van teststrategieën en soorten softwaretestmethoden.
Wat je leert:
- Betekenis van testmethoden
- Testtechnieken
- Modellen in SDLC
- Verschil tussen testmethoden en teststrategieën
- Gevolgtrekking:
- Aanbevolen literatuur
Betekenis van testmethoden
Methodologieën kunnen worden beschouwd als de reeks testmechanismen die worden gebruikt in de levenscyclus van softwareontwikkeling, van unit-testen tot systeemtesten. Het selecteren van een geschikte testmethode wordt beschouwd als de kern van het testproces.
Testtechnieken
In principe zijn er 3 testmethoden die worden gebruikt om te testen. Dit zijn White Box-tests, Black Box-tests en Gray Box-testen Deze worden ook wel Testtechnieken Elk van de testtechnieken wordt hieronder beschreven voor een beter begrip.
# 1) White Box-testen:
White box-testtechniek wordt gebruikt om de programmastructuur en bedrijfslogica te onderzoeken, het valideert de code of het programma van een applicatie. Het wordt ook wel genoemd Clear Box Testen, Glass Box Testen of Open Box Testen
White Box-testtechnieken omvatten:
- Verklaring dekking: Onderzoekt alle programmeerinstructies.
- Branch dekking: Serie lopende tests om ervoor te zorgen dat alle takken zijn getest.
- Paddekking: Test alle mogelijke paden om elke verklaring en tak te dekken.
# 2) Black Box-testen:
Black Box-testmethode wordt gebruikt om de functionaliteit van een applicatie te testen op basis van de behoeftespecificatie. In tegenstelling tot White Box Testing richt het zich niet op de interne structuur / code van de applicatie.
Black Box-technieken omvatten:
- Boundary Value-analyse
- Equivalentiepartitionering (Equivalentieklasse-partitionering)
- Beslissingstabellen
- Domeintests
- Staatsmodellen
- Exploratory Testing (vereist minder voorbereiding en helpt ook om de defecten snel op te sporen).
# 3) Gray Box-testen:
Deze testmethode wordt uitgevoerd met minder informatie over de interne structuur van een applicatie. Over het algemeen wordt dit alleen uitgevoerd als Black Box Testing, maar voor sommige kritische toepassingsgebieden wordt White Box Testing gebruikt.
Modellen in SDLC
Het selecteren van de juiste testmethoden omvat ook het kiezen van een goed model in SDLC.
De modellen zijn inclusief:
- Waterval model
- In het model
- Agile model
- Spiraalvormig model
- RAD
Laten we elke softwareontwikkelingsmethode nader bekijken met een korte uitleg.
# 1) Watervalmodel
Waterval model is het basislevenscyclusmodel dat in 1970 door Winston Royce is ontwikkeld. Dit model vertegenwoordigt meerdere fasen of processen op een opeenvolgende manier die geleidelijk naar beneden stromen.
Deze benadering is handig wanneer de vereisten bekend zijn, de technologie bekend is en de middelen met de vereiste expertise beschikbaar zijn.
Watervalmodel wordt gedefinieerd door de volgende fasen:
- Vereisten verzamelen en analyseren: Leg alle vereisten vast en analyseer ze en zorg ervoor dat ze testbaar zijn of niet.
- Systeem ontwerp: Ontwerp en documenteer op basis van behoefteanalyse. Definieer de hardware- en softwarevereisten.
- Implementatie: Maak robuuste code voor componenten volgens het ontwerp en integreer ze.
- Systeemtesten: Geïntegreerde componenten vormen een heel systeem, deze fase wordt uitgevoerd om ervoor te zorgen dat het systeem werkt volgens de vereisten, waarbij de voortgang van het testen wordt gevolgd en gerapporteerd.
- Systeemimplementatie: Zorg ervoor dat als het systeem stabiel is zonder bugs, alle testcriteria waren
voldaan, zorg ervoor dat Omgeving instellen etc. - Systeem onderhoud: Zorgt ervoor dat de applicatie efficiënt werkt volgens de vereisten met de geschikte omgeving. Als er een defect wordt gevonden, moet dat worden opgelost en geïmplementeerd (bijgewerkt) in de omgeving.
Voordelen van watervalmodel:
- Eenvoudig en gemakkelijk te begrijpen.
- Eenvoudig te beheren omdat elke fase zijn eigen specifieke resultaten heeft.
- Overlapping van fasen wordt vermeden.
- Goed voor kleine projecten.
Nadelen van het watervalmodel:
- Toename van de hoeveelheid risico en onzekerheid.
- Eenmaal ingevoerd in de testfase, kan niets veranderen in de vorige fasen bijv Ontwerp en codering etc.
- Niet geschikt voor complexe en grote projecten.
- Niet geschikt als de eisen steeds veranderen.
# 2) In model
V-model is een uitbreiding van Watervalmodel waarbij de procesuitvoering plaatsvindt in een sequentiële stijl in V-Shape en ook bekend staat als Verificatie- en Validatiemodel. Bij deze benadering bestaat er een direct bijbehorende testfase in elke afzonderlijke fase van de ontwikkelingscyclus.
Het is bewezen dat het gunstig en kostenefficiënt is dan het watervalmodel, aangezien het testen wordt uitgevoerd in elke ontwikkelingsfase in plaats van aan het einde van de ontwikkelingscyclus.
V-model is ingedeeld in 3 fasen.
- Verificatiefase
- Coderingsfase
- Validatiefase
a) Verificatiefase
- Analyse van bedrijfsvereisten: Communiceer met de klant om hun verwachtingen en vereisten te begrijpen.
- Systeem ontwerp: Ontwerpcompleetsysteem en zijn componenten samen met de hardware- en softwarevereisten.
- Architectueel ontwerp: In deze fase worden architectonische specificaties vastgelegd. Dit wordt ook wel Design op hoog niveau genoemd.
- Module ontwerp: Dit staat ook bekend als Low-Level Design, Gedetailleerd intern ontwerp voor alle gespecificeerde systeemmodules.
b) Coderingsfase:
Deze fase bevat de daadwerkelijke coderingsfase in de ontwikkelingscyclus. Programmeertalen moeten worden gekozen op basis van het systeem en het architectonisch ontwerp dat is gespecificeerd in het technologieplatform van de vorige fase. Codering wordt uitgevoerd volgens de normen en richtlijnen die vooraf zijn gedefinieerd.
c) Validatiefase
- Testen van een eenheid: Uitgevoerd op een individuele module om de bugs in een vroeg stadium te elimineren.
- Integratietesten: Uitgevoerd om de communicatie tussen verschillende modules in het systeem te testen.
- Systeemtesten: Systeemtesten wordt uitgevoerd op een systeem als geheel.
- Acceptatietest: Dit hangt samen met de zakelijke vereisten. Het wordt uitgevoerd in een gebruikersomgeving vanuit het oogpunt van de gebruiker.
Voordelen van het V-model
- Eenvoudig, gemakkelijk te gebruiken en te begrijpen.
- Overlapping wordt vermeden omdat fasen een voor een worden uitgevoerd.
- Gemakkelijk te beheren en geschikt voor kleine projecten.
De nadelen van het V-model zijn min of meer vergelijkbaar met de nadelen van het Waterval-model.
# 3) Agile model
Agile model toont een iteratieve en incrementele benadering. Deze benadering verdeelt het product in kleine incrementele eenheden om iteraties te bieden. Vervolgens omvat elke iteratie stappen zoals planning, behoefteanalyse, ontwerp, codering, unit-testen, acceptatietesten enz.
Deze aanpak maakt ook continue interactie met de klant mogelijk voor hun feedback en correcties in de vereisten met regelmatige tussenpozen.
Het volgende diagram zal u helpen om de Agile Model-aanpak nauwkeuriger te begrijpen:
De volgende afbeelding toont de iteratiecyclus in Agile Model:
Voordelen van Agile-model:
- Een realistische benadering van softwareontwikkeling.
- Bevordert teamwork.
- Elimineert mismatch tussen vereisten en testcases.
- Snel en vereist een minimum aan middelen.
- Geschikt voor grote en langdurige projecten.
- Goed voor veranderende eisen.
- Makkelijk te beheren.
Nadelen van Agile-model:
- Niet geschikt voor complexe projecten.
- Vereist veel interactie met de klant, wat vertraging kan veroorzaken.
- Misleiding van vereisten kan leiden tot een onjuiste ontwikkeling van het softwareproduct.
- Verhoogd onderhoudbaarheidsrisico.
- Overdracht aan een ander team kan een behoorlijke uitdaging zijn.
# 4) Spiraalmodel
Het spiraalmodel omvat een iteratieve ontwikkelingsbenadering samen met de systematische benadering van het watervalmodel. Het is vergelijkbaar met het incrementele model en de nadruk op risicoanalyse.
Spiraalmodel heeft vier fasen:
- Planningsfase
- Risico analyse
- Technische fase
- Evaluatiefase
1) Planningsfase: In deze fase worden de vereisten verzameld en beoordeeld om de testcase af te ronden.
2) Risicoanalyse: Deze fase omvat het identificeren, bewaken en inschatten van managementrisico's. Vereisten worden geanalyseerd om de risico's te identificeren met behulp van technieken zoals brainstormen, walkthrough etc.
3) Technische fase: In deze fase wordt de software aan het eind ontwikkeld en getest.
4) Evaluatiefase: Dit is de laatste fase waarin een klant de output van een project evalueert en feedback geeft voor de volgende spiraal of goedkeuring.
Picturale weergave van Spiral Model:
Wanneer Spiral-model gebruiken:
- Voor projecten met een hoog risico.
- Als de vereisten complex zijn.
- Als een project groot is.
- Zorg voor voldoende tijd om feedback van gebruikers te krijgen voor de volgende spiraal.
- Vereist aanzienlijke veranderingen vanwege onderzoek en verkenning.
- Gebruikers zijn niet zeker van hun behoeften.
Voordelen van Spiraalvormig Model:
- Vermijden van risico's omdat het een grote hoeveelheid risicoanalyse vereist.
- Snelle ontwikkeling.
- Veranderingen in vereisten worden gemakkelijk opgevangen.
- Vereisten kunnen nauwkeuriger worden verworven.
Nadelen van het spiraalmodel:
- Complex beheer.
- Niet geschikt voor kleine projecten.
- Kan betrekking hebben op nee. van spiralen (onbepaald).
- Duur.
- Vereist een grote hoeveelheid risicoanalyse en expertise voor het succes van hun project.
# 5) RAD-model
Rapid Application Development (RAD) is een soort incrementeel model. Bij deze benadering worden componenten parallel ontwikkeld.
Dit is een snelle aanpak en het kan de klant een snel product geven om feedback te geven.
De fasen in RAD zijn als volgt:
- Bedrijfsmodellering: Identificeert vitale informatie en de stroom tussen verschillende zakelijke kanalen.
- Datamodellering: Informatie die in de vorige fase is verzameld, wordt gebruikt om gegevensobjecten te definiëren die nodig zijn voor het bedrijf.
- Procesmodellering: Gegevensobjecten worden geconverteerd om zakelijke doelstellingen en informatiestromen te verkrijgen.
- Applicatie generatie: In deze fase worden automatiseringstools gebruikt om het procesmodel om te zetten in daadwerkelijke code.
- Testen en omzet: Test alle componenten van een systeem, waardoor de totale testtijd wordt verkort.
Voordelen van RAD-model:
- De voortgang kan worden gemeten.
- Verkort de ontwikkeltijd.
- Verhoogde herbruikbaarheid.
- Snelle eerste beoordelingen.
- Verbetert de feedback van klanten.
Nadelen van het RAD-model:
- Vereist hooggeschoolde middelen.
- Hoge kostenraming.
- Niet van toepassing op goedkopere projecten.
- Hoge afhankelijkheid van modelvaardigheden.
- Met RAD kan alleen een modulair systeem worden gebouwd.
Verschil tussen testmethoden en teststrategieën
Het antwoord hierop is niet zo ingewikkeld, want er is een eenvoudig verschil tussen beide.
Testmethoden zijn de methoden of benaderingen van testen die van unit-testen tot systeemtesten omvatten.
Strategieën testen is een overzicht van de belangrijkste problemen die zich voordoen in het testproces en waarmee rekening moet worden gehouden door de projectmanager, een team van ontwikkelaars en testers.
De hierboven besproken Software Testing Methods worden gebruikt om te implementeren n aantal teststrategieën.
Sommigen van hen zijn hieronder opgesomd:
1) Eenheidstest:
- Richt zich op zeer kleine functionele eenheden.
- De eenvoudigste manier om de isolatie van de kleinste eenheden te controleren.
- Over het algemeen uitgevoerd door ontwikkelaars.
2) Integratietesten:
beste externe desktopsoftware voor Windows
- Dit is de volgende stap die aan de kant van de ontwikkelaar moet worden uitgevoerd.
- Voorzie in een mechanisme om interactie, onderlinge werking en communicatie tussen de verschillende softwaremodules te testen
3) Functioneel testen:
Het wordt gebruikt om de functionaliteiten van een softwaresysteem te controleren, d.w.z. uitvoer naar de gegeven invoer.
4) Regressietesten:
Controleert of de bugfixing op de ene plaats heeft plaatsgevonden, zodat de complexe functionaliteiten geen verandering in een ander kerngebied veroorzaken.
5) Systeemtesten:
- Alle geïntegreerde modules testen als een collectief systeem.
- Combineert meerdere functies tot end-to-end-scenario's.
6) Prestatietesten:
Test de prestaties van de applicatie in kritieke situaties, zoals het overzetten van grote bestanden, gelijktijdige toegang van gebruikers tot het systeem, configuratiefouten enz.
7) Acceptatietesten
- Over het algemeen Eindniveau van testen waarbij het softwareproduct door testers wordt onderzocht als gebruikersperspectief
- Het resultaat van deze stap is subjectief en duurt even om het exacte probleem te vinden
Gevolgtrekking:
Het kiezen van een goede testmethodologie is de actie of reeks acties die de kern vormt van het testproces. Dit kan zelfs een veelzijdige activiteit zijn die verandert volgens de zakelijke vereisten en tijdlijn van het softwareproduct.
Men kan echter één of zelfs meerdere softwareontwikkelings- en testmethoden kiezen om een flexibeler en efficiënter eindproduct te hebben dat voldoet aan de behoeften en verwachtingen van de klant binnen de gewenste of kortere tijdslimiet.
Laat ons uw mening / suggesties weten in de opmerkingen hieronder.
Aanbevolen literatuur
- Beste softwaretesttools 2021 [QA Test Automation Tools]
- Software testen QA Assistant Job
- Software Testing-cursus: bij welk Software Testing Institute moet ik meedoen?
- Softwaretests kiezen als uw carrière
- Softwaretest Schrijver van technische inhoud Freelancer-baan
- Enkele interessante sollicitatievragen voor het testen van software
- Feedback en recensies over softwaretestcursussen
- Hulp bij het testen van software Affiliate-programma!