Computer Science 587 – Spring 2011

Software Verification and Validation

 

Instructor:                    Bob Lingard

Office:                          JD 4417

Office Phone:              677-3825

Email Address:            rlingard@csun.edu

Web URL:                   http://www.ecs.csun.edu/~rlingard

Office Hours:               Tuesday 12:30 – 1:30 PM, Thursday 5:00 – 6:00 PM, and by appointment

Prerequisite:                Comp 380/L (Introduction to Software Engineering)

Text:                            Software Verification and Validation for Practitioners and Managers,

                                                2nd Edition, by Steven R. Rakitin

Ticket# 17093             Meets Thursday 7:00 – 9:45 PM in JD3520

 

Course Description

 

An in depth study of verification and validation strategies and techniques as they apply to the development of quality software.  Topics include test planning and management, testing tools, technical reviews, formal methods and the economics of software testing.  The relationship of testing to other quality assurance activities as well as the integration of verification and validation into the overall software development process are also discussed.

 

Course Objectives

 

1.     Understand the terminology commonly used in the area of software verification and validation

2.     Understand the role of verification and validation in the software development lifecycle

3.     Be able to specify an appropriate testing strategy for given software development activity

4.     Be able to apply appropriate testing techniques to verify and validate software requirements, designs, and implementations.

5.     Be able to conduct a formal technical review for a design or implementation

6.     Be able to identify the tasks necessary to accomplish system, regression, performance, stress, and acceptance testing of a software system

7.     Be able to use one or more testing tools to aid in the accomplishment of software verification and validation

8.     Be able to develop a test plan for a given software development project

9.     Be able to conduct a cost/benefit analysis for a planned software testing activity

10.  Be able to produce a formal test plan document, and prepare and deliver an oral presentation of testing results

 

Grading

 

An absolute grading system will be used, where 90% is required for an A, 80% for a B, 70% for a C, 60% for a D, and anything below 60% is failing.  Pluses and minuses will be given for grades within 3 percentage points of the dividing marks.  For example, a final total which is 80% or more but less than 83% would correspond to a letter grade of B-, a total of 77% or more but less than 80% would correspond to a C+, etc.  The final grade will be based on the following:

 

                                    Midterm Exam                         15%

                                    Final Exam                                          30%

                                    Group Projects                                    20%

                                    Individual Projects/Homework 15%

                                    Presentations                                      20%

                                   

Late work will be accepted without penalty only if some compelling reason is provided (preferably in advance) justifying the lateness.  Without such a justifiable excuse, late work will be penalized 5% for each calendar day that it is late (with a maximum penalty of 50%).

 

Plagiarism (intentionally or knowingly representing the words, ideas, or work of another as one’s own) or any other form of academic dishonesty will not be tolerated.  Students who are guilty of such dishonesty will receive no credit for the given assignment or exam and will not be allowed the opportunity to redo the work in question.  In addition, incidents of academic dishonesty may be reported to the University and further disciplinary actions are possible.

 

Exams

 

The exams may be “take home” exams or “in class” exams.  They may be open book or closed book, but, in any case, they must be individual efforts.  Discussing the questions on the exam with an individual, other than the instructor, is not permitted.

 

Group Projects

 

The students in the class will be divided into teams of four to five members each.  The group projects will be done as team efforts and a single result will be turned in by the team.  Members of each team will evaluate the performance of the other team members at the end of the semester.  This evaluation will account for 25% of the total Group Project grade (or 5% of the total course grade).

 

Individual Projects

 

Individual assignments and projects will also be given.  Discussion and collaboration with other class members on individual assignments is permitted, and even encouraged, to the extent that said collaboration is a fair and equitable exchange of ideas.  That is, one individual should not be doing all the work and sharing it with others.  It is permissible to ask other students for help, but it is not permissible to copy the results of others.  If several students collectively solve a problem, each should write up the results in his or her own words.

 

Presentations

 

Each student will be required to select a technical article on a subject relevant to the course, review and analyze the article, and present a summary and critical evaluation to the class.

 

Tentative Schedule by week

 

1                 Review of software engineering methods and challenges

The software crisis

Benefits of verification and validation

Software process improvement initiatives

Readings: Chapter 1

 

2                 Review of software engineering methods

Life-cycle models

The role of verification and validation

Readings: Chapter 2-3

 

 

3                 The economics of verification and validation 

Defect cost models

Measuring the cost of quality

Readings: Chapter 4

 

4                 Software reviews and inspections

Readings: Chapter 5

 

5                 Conducting reviews and inspections

Readings: Chapter 6 

 

6                 Software quality metrics

Readings: Chapter 7

 

7                 Review of software configuration management

Readings: Chapter 8

 

8                 Software testing overview

Readings: Chapter 9

 

9                 Functional testing

 

10              Integration and system testing

 

11              Object-oriented testing

 

12              Software validation metrics

Assessing and improving the validation process

Readings: Chapter 10

 

13              Assessing software quality

Readings: Chapter 11

 

14              Improving the development process

Readings: Chapter 12

 

15              Formal methods, cleanroom software engineering and statistical approaches