SluitenHelpPrint
Switch to English
Cursus: INFOB3STV
INFOB3STV
Software testing en verificatie
Cursus informatie
CursuscodeINFOB3STV
Studiepunten (EC)7,5
Cursusdoelen
Na afronding van de cursus moeten studenten het volgende kunnen: 
  • demonstreren dat ze kennis hebben van basis concepten, theorieën, en technieken van software testen (zoals: test-dekking, white box testen, black box testen, control en data flow gebaseerd testen, partitie testen, combinatorisch testen).
  • deze technieken, op zijn minst sommige van de technieken, in de praktijk toepassen.
  • unit testen en systeem testen doen op een niet triviaal project.
  • demonstreren dat ze in staat zijn om een programma formeel te specificeren.
  • demonstreren dat ze ook kennis hebben van basis concepten, theorieën, en technieken. van programma verificatie (Hoare logic, wlp calculus).
  • demonstreren dat ze in staat zijn om een formeel bewijs van minstens een eenvoudig programma op te stellen.
Toetsing
2 projecten, 1 opdracht, 1 midtentamen, 1 eindtentamen.

Eindcijfer = 0.3 * (gemiddelde van projecten) + 0.2 * opdracht + 0.5 * (gemiddelde van tentamens)

Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens een 4 zijn.
Inhoud
Testing is noodzakelijk om te garanderen dat onze software betrouwbaar is.
Echter, software wordt steeds complexer. Testing wordt ook erg duur, omdat er te veel mogelijke executies zijn die getest moeten worden. We zouden dus keuzes moeten maken.
In dit vak gaan we een aantal kern concepten, theorieën en technieken leren, zoals partitie-gebaseerd of control-flow-gebaseerd, om testing als een doelgericht en systematisch proces te beschrijven en uit te voeren.
Ook zal er aandacht gegeven worden aan het testen van computer games. In sommige toepassingsgebieden is het echter belangrijk om het risico van fouten zo min mogelijk te houden (denk aan de elektronica van je auto’s).
We gaan dus ook een programmeerlogica leren, waarmee we een programma correct kunnen bewijzen, zonder dat wij het programma hoeven te testen. De methode is volledig: een correct aangetoond programma voldoet echt aan zijn specificatie.

Thema's:
  • Verschillende concepten van test-dekking.
  • Testing levels (unit, integratie, systeem, akseptatie).
  • Testing technieken (property-based, partitie, syntax-driven, record-and-replay, mutatie).
  • Specificeren van programma's.
  • Hoare logic (basic statements, lussen, programma-aanroep, exception, weakest pre-condition, non-determinisme, objecten).

Werkvorm
Hoorcollege, werkcollege, project.

Literatuur
Paul Ammann and Jeff Offutt, "Introduction to Software Testing" Cambridge University Press, Cambridge, UK, ISBN 0-52188-038-1, 2008.
- collegedictaat
 

 

SluitenHelpPrint
Switch to English