MET CS 773 Software Testing and Quality Assurance
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
- Develop a quality software mindset
- Understand how to program with testing in mind
- Be able to plan for testing
- Be able to test in the small
- Be able to test in the large
Textbook and Materials
- Recommended: JUnit in Action by Massol; Manning 2003, ISBN 1-930110-99-5 ($25.17 at Walmart.com) (ask me about this before buying)
- Recommended (not required): Software Testing: A Craftsman’s Approach, Second Edition, by Paul Jorgensen, ISBN: 0849308097 (ask me about this before buying)
- Notes will be distributed for each class
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.
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.
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 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 |
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