MET TC 773:        Software Testing and Quality Assurance          Fall 2004

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

 

 


Description from Catalog:

 

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


Prerequisites:

(1)     MET CS 566 or equivalent experience

(2)   MET CS 673 (Software Engineering) or equivalent experience in software development.


Learning Objectives


Textbook and Materials


Project Structure and Evaluation

 

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%.


Evaluation of Students

 

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.


Warning concerning plagiarism

 

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.


Syllabus

 

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 Quality

Quality 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 Requirements

How 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 Designs

Ways 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 Principles

This class covers the goals and basis for testing.

Notes

Test-driven implementation assigned

7

 

11/1

Verifying Implementation

Ways 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  I

Regression, interface, integration, system, acceptance and installation testing.

Notes

 

11

11/29

Post-unit Testing  II

Notes

 

12

12/6

QA in Maintenance

Refactoring

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

 

 


Forums -- past and present

 

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