INF9290 – Software verification and validation
Course content
The validation and verification of software systems is a major issue in the IT industry. The objective of this course is to train future computer scientists and engineers in the fundamental concepts on which state-of-the-art software testing techniques are based. In addition, other important aspects related to software quality are addressed, though in a more superficial manner: quality assurance, safety, fault tolerance, reliability assessment. Though the orientation of the course is practical in nature, the goal is to focus on fundamental and rigorous principles that the students can benefit from for the many years to come, regardless of the evolution of technology.
The course consists of general software testing principles; White-box testing based on code analysis; Black-box, specification-based testing; Testing object-oriented programs; Inspections and reviews; Safety analysis; Statistical testing and reliability analysis; Fault tolerance; Defensive programming.
Learning outcome
After having completed this course, the students will be able to apply main stream testing techniques, understand their main strengths and weaknesses, and determine when they are appropriate. In addition, the students will have acquired basic knowledge of concepts related to safety and reliability analyses, fault tolerance, and defensive programming.
In addition, each PhD student will be given an extended curriculum within the field/research area of the course. The syllabus must be approved by the lecturer so that the student can be admitted to the final exam.
Admission
PhD candidates from the University of Oslo should apply for classes and register for examinations through Studentweb.
If a course has limited intake capacity, priority will be given to PhD candidates who follow an individual education plan where this particular course is included. Some national researchers’ schools may have specific rules for ranking applicants for courses with limited intake capacity.
PhD candidates who have been admitted to another higher education institution must apply for a position as a visiting student within a given deadline.
Prerequisites
Recommended previous knowledge
General software engineering essentials and basic statistics. Students should be familiar with at least one programming language, and preferably an object-oriented language such as C++ or Java.
INF1000 – Introduction to object-oriented programming (continued), INF1010 – Object oriented programming (continued), INF1050 – Systems Development (continued) and INF2100 – Programming project (continued).
Teaching
Two hours of lectures per week.
Examination
A graded mark will be awarded based on a student project.
Grading scale
Grades are awarded on a scale from A to F, where A is the best grade and F is a fail. Read more about the grading system.
Resit an examination
This subject does not offer new examination in the beginning of the subsequent term for candidates who withdraw during an ordinary examination or fail an ordinary examination. For general information about new examination, see /studier/admin/eksamen/sykdom-utsatt/mn/index.html and www.matnat.uio.no/english/studies/examination/repeat.html
General exam information at the Faculty of Mathematics and Natural Sciences
Other
Note that the first lecture is mandatory.