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.
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.
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
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.
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
2
Review
of software engineering methods
Life-cycle models
The role of verification and validation
3
The
economics of verification and validation
Defect cost models
Measuring the cost of quality
4
Software
reviews and inspections
5
Conducting
reviews and inspections
6
Software
quality metrics
7
Review
of software configuration management
8
Software
testing overview
9
Functional
testing
10
Integration
and system testing
11
Object-oriented
testing
12
Software
validation metrics
Assessing and improving the validation process
13
Assessing
software quality
14
Improving
the development process
15
Formal
methods, cleanroom software engineering and
statistical approaches