Last updated November 3, 2004: Last few changes often in red font
|
Background
of the Instructor
changed if
this is red |
Learning
Objectives changed if this is red |
|
Contacting Eric Braude changed if this is red |
Plagiarism Warning changed if this is red |
|
Evaluation
of Students changed if this is red |
Policies - Miscellaneous changed if this is red |
|
Forums:
Past and Present changed if this is red |
Project
Structure and Evaluation changed if this red |
|
Home Page of Eric Braude changed if this is red |
Textbooks
and Materials changed if this is red |
|
Homework and Due Dates changed if this is red |
Topics
and Class Dates changed if this is red |
This course covers the theory and practice of quality
assurance and testing for each step of the software development cycle. It introduces, defines, and contrasts the
two pillars of software quality: Verification and Validation. The course covers test case design
techniques, test coverage criteria, and tools for static and dynamic analysis. IEEE standards for test design and documentation
are included. The course explains
test-driven development and its relation with validation in the small and the
large. QA for maintenance and legacy applications are covered. The course explores experimental and
contemporary approaches to quality such as those inherent in agile
development. Laboratory course. 4 cr
(1) MET CS 566 or equivalent experience
(2) MET CS
673 (Software Engineering) or equivalent experience in software
development.
Students will be required to write and present a paper that will contain a specialized aspect of test or QA implementation. The paper will concern a testing method, theory or tool. Examples include: Testing Web applications, automated testing, testing real-time applications, QA tools, and bug tracking environments.
The project will be in two phases. The proposal phase will count for 20% of the grade and the remainder 80%.
The allocation of grades will be as follows.
Exercises: 60%
Project: 40%
Students may be given a number of pass/fail assignments throughout the semester. A “Pass” grade is required on all of these. A grade of A or A+ may be given for a pass/fail homework when the student has gone well beyond the requirements of the problem and has performed exceptionally.
Late homework will not be accepted unless there is a reason why it was impossible to perform the work in time given work and emergency conditions. In that case, the written reason should be attached to the homework, which will be graded on a pass/fail basis if the reason is accepted by me.
Click here for generic information on how grades are allocated and averaged in all of my classes.
Please cite all references and uses of the work of
other. All instances of plagiarism must
be reported to the College for action.
e-mail, see or call me if you have any doubts about the proper use of
others’ material. In any case, clearly acknowledge all sources in the context
they are used, including code, of course.
See plagiarism policies for examples and a
fuller explanation.
|
Class |
Date |
Topic |
Chapters / Notes |
Project: (The
dates in this column are approximate: See “homework dates due” section for
official dates) |
|
1 |
9/13 |
Quality and Ethics in Software Engineering Creating a software application involves many error-prone steps and many requirements that are unknown at the outset. We explore the implications of this for quality and developer ethics. |
Notes |
. |
|
2 |
9/20 |
Process QualityQuality Assurance Plans; CMM |
Notes |
|
|
3 |
9/27 |
QA and Metrics in Project Management Advisability of metrics, define several, and investigate their practicality; verification vs. validation |
Notes |
Identify paper topics: assigned. |
|
4 |
10/4 |
QA in RequirementsHow to evaluate the quality of an SRS; discuss embedding tests into an SRS Behavioral testing in the absence of requirements. |
Notes |
Paper
proposal due Requirements QA assigned |
|
5 |
10/18 |
QA in DesignsWays to measure the effectiveness of design; Design reliability (e.g., through components and re-use); error processing and security assurance processing |
Notes |
Design QA assigned |
|
6 |
10/25 |
Testing PrinciplesThis class covers the goals and basis for testing. |
Notes |
Test-driven implementation assigned |
|
7 |
11/1 |
Verifying ImplementationWays to assess the quality of implementations outside of testing; test-driven development |
Notes |
Intermediate
paper due Final paper form assigned |
|
8
|
11/8 |
Unit Testing Introduction to unit (part) testing. Techniques of unit testing. |
Notes |
Unit test assignment |
|
9 |
11/15 |
To be determined |
|
|
|
10 |
11/22 |
Post-unit Testing IRegression, interface, integration, system, acceptance and installation testing. |
Notes |
|
|
11 |
11/29 |
Post-unit Testing II |
Notes |
|
|
12 |
12/6 |
QA in MaintenanceRefactoring Principles of maintenance Maintenance quality techniques; refactoring as a maintenance and quality tool. |
|
|
|
13 |
12/13 |
Presentations |
Notes |
Final paper due |
|
14 |
12/20 |
To be determined |
|
|
Spring 2004: Group home page: http://groups.yahoo.com/group/773Sp04
Summer 2004: Group home page:http://groups.yahoo.com/group/773Su04
Fall 2004: Group home page: http://groups.yahoo.com/group/773F04/ Group email: 773F04@yahoogroups.com