IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Softwaretest og verifikation 
Kursusnavn (engelsk):Software Test and Verification 
Semester:Efterår 2003 
Udbydes under:cand.it., internet- og softwareteknologi (int) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:20 
Maks. antal deltagere:42 
Formelle forudsætninger:You are supposed to be able to develop object oriented programs in Java of a size corresponding to roughly 1000 lines of codes.


The prerequisites may for instance be obtained through the programming course OOP at IT-C. Further experience with programming is an advantage but not a prerequisite. 

Læringsmål:The aim of the course is to give a conceptual basis for the understanding of Software Test and Verification and to make the participants able to apply the underlying theories and tools in practice.


Errors in software are irritating, costly and potentially dangerous. We all encounter problems with software errors, for instance as the frequent need to update software to patch errors, and the annoying computer viruses that are able to spread due to software errors.


In the course we shall look at various techniques to find errors. These will range from disciplined manual approaches to computer-based automatic and semi-automatic tools. 

Fagligt indhold:Having successfully completed the course the student will be able to:


  • Explain how to use code inspection (e.g., The Cleanroom Method) to improve code quality and explain the benefits and limitations of code inspection.
  • Perform Unit Testing (e.g., JUnit) on medium-sized programs.
  • Use Pre- and Postconditions and Invariants (Design By Contract) to verify minor programs. Explain the theoretical basis for invariants, their benefits and limitations.
  • Explain the use of Automata Theory and Concurrency in testing and verifying finite-state systems.
  • Use Temporal logics (CTL and LTL) to express temporal properties.
  • Use Run-Time Verification (Java PathFinder) for testing medium-sized programs.
  • Explain and use (Symbolic) Model Checking (Binary Decision Diagrams and SMV).
 
Læringsaktiviteter:

Lectures, smaller mandatory exercises, theory and exercises. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Ekstern censur

Ved starten af den mundtlige eksamination
trækkes et af de på forhånd udleverede spørgsmål.
Eksaminanden må fra sine
noter opskrive en kort disposition på tavlen og går derefter i gang med at
besvare spørgsmålet. Eksaminationen afsluttes med yderligere spørgsmål fra
eksaminator og censor i relation til det præsenterede emne og øvrige dele af
pensum.

Inklusiv evaluering afsættes der 30 minutter pr. eksaminand.

 
Litteratur udover forskningsartikler:The books: "Toward Zero-Defect Programming" by Allan M. Stavely, Addison-Wesley, 1999 and "Model Checking" by Ed Clarke, Orna Grumberg, and Doron Peled, MIT Press, 1999. Further articles, online material and notes to be supplied later.