Software Verification and Validation

Lecturer (Coordinator):
Sira Vegas
svegas@fi.upm.es
Lecturer:
Natalia Juristo
natalia@fi.upm.es

Semester

First semester

Credits

4 ECTS

Outline

We have all suffered the consequences of a software system failure at some time. These failures are the result of software complexity which means that software defects are highly likely to persist after it has been built.

How can we guarantee that the software system under construction will work properly? What's more, how can we guarantee that this system will satisfy customer needs?

This subject tries to answer these questions. To do this, it focuses on one of the most important software development activities: verification and validation. It covers the basic aspects of this activity.

Learning Goals

  • Be acquainted with the basic concepts of validation and verification
  • Be acquainted with which products and aspects are validated and verified in software development
  • Be acquainted with the validation and verification process
  • Know how to apply the static and dynamic evaluation techniques covered by the subject
  • Be acquainted with the contents of a verification and validation plan

Syllabus

  1. Introduction
    1. Introduction to V&V
    2. V&V and the software development process
    3. V&Vand the software development products
  2. Dynamic evaluation: software testing
    1. Introduction to software testing
    2. Testing levels
    3. The testing process
    4. Software verification and validation plan
    5. Testing tools

Recommended Reading

  • B. Beizer: "Software Testing Techniques", 2nd edition. 1990
  • G. J. Myers: "The Art of Software Testing", 2nd edition. Wiley. 2004.
  • P. C. Jorgensen: "Software Testing. A Craftsman’s Approach". CRC Press, 1995.
  • C. Kaner, J. Falk, H. Q. Nguyen: "Testing Computer Software". Wiley, 1999.
  • W. E. Perry: "Effective methods for software testing". 3rd edition. Wiley. 2006.
  • S.L. Pfleeger: "Ingeniería de software: teoría y práctica". 2nd edition. Prentice Hall. 2002.
  • IEEE standards: [IEEE-1012, 1998], [IEEE-1008, 1987] [IEEE-829, 1998] [IEEE-1044, 1993] [IEEE-1044.1, 1995]

Prerequisites

  • Students should have basic C and Java programming knowledge.

Assessment Method

Student grades will be calculated based on their performance in all the assigned tasks:

  • Exercise applying white box testing techniques to a program (15% of grade)
  • Exercise applying black box testing techniques to a program (15% of grade)
  • Assignment performing testing on a software system (60% of the score)

The subject grade will take into account student class participation and attitude during the lectures and regarding the course in general (10%).

Tuition language

English

Lecture Theatre

A-6206

Subject-Specific Competences

Code, description and proficiency level for each subject-specific competence
Code Competence Proficiency Level
CEM1 Examination of the state of the art to identify research problems related to the design, construction, use and evaluation of complex software-intensive sociotechnical systems A
CEM4 Analysis and evaluation of several software-based systems construction and management engineering paradigms and approaches C
CEM5 Contribution of solutions to open problems related to software verification and validation applications and methods, techniques and tools A

Learning Outcomes

Code, description and proficiency level for each subject learning outcome
Code Learning Outcome Associated competences Proficiency level
RA-AV-41 Effective application of software verification and validation techniques CEM1, CEM5 A
RA-AV-42 Selection of the best software verification/validation technique for a particular project CEM1, CEM4, CEM5 C

Learning Guide

Learning Guide: Software Verification and Validation