Requirement: Hetgeen wat nodig is voor de software die je moet maken Testing: Het testen van je software is cruciaal
Agenda
- lesdoelen
- requirements Engineering
- Plaatsing binnen SDLC
- Testing
lesdoelen
Je leert requirements herkennen, wat de requirements zijn en hoe je tot de requirements kan komen. Je leert ook hoe je requirements kunt valideren.
Wat zijn requirements volgens jou?
Osiris: een cijfer registratie platform
Wat zou een software requirement zijn voor osiris?
- Dat je alleen je cijfers in kan zien
- Dat leeraren alleen zelf zijfers kan maken / leerlingen kunnen hun cijfers niet aanpassen
- Cijfers moeten opgeslagen kunnen worden
- Studenten moeten overzicht van alle vakken hebben
- Website moet live updaten
- Cijfers moeten in een database opgeslagen kunnen worden
Sommige van deze zijn functioneel, en sommige zijn wel functionele requirements
Requirements Engineering
Requirements engineering: Het defineren, documenteren en onderouden van requirements gedurentde de levenscyclus van de ontwikkeling van een (informatie)systeem. Hierbij kunnen veschillende belangen spelen vanuit meerdere stakeholders.
Requirements Opschrijven
De SMART-notatie
Requirements worden opgeschreven volgens de volgende principes:
Smart:
- Specifiek: Je moet de instructies specifiek opschrijven zodat een gebruikter het begrijpt.
- Meetbaar: Hoe snel iets moet gebeuren, kan soms niet meetbaar zijn (“Zo snel mogelijk”, kan 1 uur zijn, kan 2 minuten zijn)
- Testbaar: De software moet testbaar kunnen zijn om te kijken of het werkt
- Acceptabel: De requirements moeten wel acceptabel kunnen zijn
- Realistisch: De requirements moeten mogelijk zijn, te doen
- Tijdsgebonden: De requirements moeten binnen een bepaalde tijd behaald worden.
Vermijd vaagheid
Gebruik geen termen zoals “gebruiksvriendelijk” of “snel” zonder te specificeren wat dit preceis betekent. Elke requirement moet ondubbelzinnig zijn
Zorg voor traceerbaarheid
Koppel elke requirement aan specifieke bedrijfsdoelen of use cases. Dit zijn altijd de belangen van één of meerdere stakeholders. Dit maakt het eenvoudiger om te verifiëren en te volgen wie wat wil.
Voorbeeld
Functioneel of niet functioneel
“Het systeem moet middels een zoekopdracht naar een ISBN nummer een boek uit de collectie kunnen selecteren en weergeven”
Iets zoals “Als ik x doe, dan gebeurt dit” is functioneel “Het moet binnen 2 seconden gebeuren” is niet functioneel.
Proces van Requirements Engineering
Requirement Elicitation
Je gaat informatie over de requirements ophalen. Dit kan door bijvoorbeeld een meeting af te spreken met een stakeholder, of wat onderzoek te doen bij de stakeholders/gebruikers.
Requirements Analysis
Je gaat de requirements documenteren. Een stakeholder wilt een ding wel, maar een andere stakeholder wilt dat niet. Je kijkt naar tegenstrijdigheden, kijkt naar de belangens, en probeert het conflict op te lossen in bijvoorbeeld een meeting.
Requirements Specification
Je gaat de requirements vastleggen, en kijken naar de (acceptatie)criteria. Als je deze criteria hebt opgesteld, dan kan je de requirements tests opzetten.
Requirements Validation
/
Requirements Management
Je werkt de requirements bij afhankelijk van de meningen van stakeholders (soms gebeurt dit binnen de development cycle). Je documenteert dit en zorgt ervoor dat de requirements up to date blijven
Smart energy
In het algemeen worden 3 aspecten behandeld:
- Hoe gaat het nieuwe systeem er uit zien?
- wireframes. Wireframes zijn blanco layouts van de applicatie hoe je kan zien hoe het eruit gaat zien.
- Welke functionaliteiten / functies gaat het systeem bevatten?
- Use cases, scenario’s, specificaties. Je maakt een diagram van hoe de gebruikers/stakeholders met het systeem omgaan.
- Welke gegevens zijn van belang in het systeem?
- Entity Relationship Diagram (ERD). Bijvoorbeeld: een student of vak is een entiteit. Je gaat dan laten zien hoe deze data met elkaar omgaat (de relatie)
Belang an Requirements Engineering
-
Minder fouten in requirements en daardoor minder fouten na ingebruikname JE wilt duidelijkheid in de opdracht, dat het pakket voldoet aan de eisen van de klant
-
Sneller ontwikkeltraject en minder herstelwerk gedurende het traject Miscommunicatie zorgt voor problemen onder het ontwikkelen als iets niet naar wens is
Software Development Life Cycle(SDLC)
- Plan van aanpak
- Planning
- Functioneel ontwerp
- Analysis
- Technisch ontwerp
- Design
- Source code Implementation
- Test Plan
- Testing & integration
- Deployment plan
- Maintenance
Deze cirkel blijft door gaan. Je onderhoud je software en voegt er dingen aan toe of past dingen aan.
Testen is…
Testen:Systematisch controleren of een programma werkt zoals verwacht, door bugs op te sporen en de kwaliteit en betrouwbaarheid van de sotware waarborgen
Verschillende vormen van testen
Functionele testen
- Unit tests
- Integratietests
- Systeemtesten
- Acceptatietesten
- Regressietesten
Niet-fuctionele testen
- Belastbaarheid testen
- Stresstesten
- Penetratietesten
Testplan
Er komt een testplan voor de studenten vanuit school.
Zo’n document kan er zo uit te komen zien:
- Inleiding
- Testmethodologie(soorten tests)
- Hulpbronnen en omgeving
- testcases
- Rapportage en afronding