CISC 327 / SOFT 327
Software Quality Assurance
Fall 2011

Instructor: Scott Grant (scott at cs dot queensu dot ca)
Lecture Room: Ontario 209 (map)
Lecture Times: Mon 11:30-12:30, Tues 1:30-2:30, Thurs 12:30-1:30
Course Textbook: CISC 327 Course Notes, available from the Campus Bookstore
Moodle Homepage: http://moodle.queensu.ca

Teaching Assistant: Eric Rapos (eric at cs dot queensu dot ca)
Tutorials: Thursday nights, 7:00-9:00, Room BIOSCI 1120
Goal of the Course
Concepts, theory, and practice of software quality assurance through testing, inspection, and measurement of software systems.
Please note that we will be using Moodle for online distribution of lecture slides and recorded audio.

Course Lectures

Week 1: Introduction to Quality Assurance, Software Process
Sept 12
Course Summary, Software Quality
Sept 13
Software Quality, Software Process Models
Sept 15
Software Process Models
Week 2: Software Process Evaluation, Extreme Programming I
Sept 19
Software Process Evolution
Sept 20
Agile Development, eXtreme Programming
Sept 22
Course Project Discussion
Week 3: Extreme Programming II, Introduction to Systematic Testing
Sept 26
eXtreme Programming in Practice
Sept 27
Introduction to Systematic Testing
Sept 29
Introduction to Systematic Testing
Week 4: Quiz 1, Testing Methods: Black Box Methods
Oct 3
Quiz 1
Oct 4
Black Box Testing
Oct 6
Black Box Testing
Week 5: Testing Methods: Black Box Methods
Oct 10
Thanksgiving Holiday
Oct 11
Black Box Testing
Oct 13
Black Box Testing
Week 6: Testing Methods: White Box Methods
Oct 17
White Box Testing
Oct 18
White Box Testing
Oct 20
White Box Testing
Week 7: Mutation Testing, Continuous Testing
Oct 24
Mutation Testing
Oct 25
Continuous Testing
Oct 27
Regression Testing
Week 8: Quiz 2, Inspection
Oct 31
Quiz 2
Week 9: Continuous Testing, Inspection
Week 10: Inspection, Case Study, Automated Inspection
Week 11: Measurement and Metrics
Week 12: Quiz 3, Overflow, Course Summary and Review

Quizzes

Quiz 1: Lectures 1-7: Introduction and Process (October 3rd)
Quality assurance definitions. Software process models - Waterfall, Prototyping, Evolutionary, Spiral, IDP, OOAD. Advantages and Drawbacks. Software process evaluation - DPP, Baldrige, ISO 9000. eXtreme Programming.
Quiz 2: Lectures 8-19: Testing
Systematic testing definitions. Black box methods - input coverage, output coverage, gray box. White box methods - code coverage, path coverage, data coverage. Mutation testing. Continuous testing, regression testing.
Quiz 3: Lectures 20-26: Inspection and Metrics
Inspection process. Code inspection - checklists, walkthroughs. Lightweight vs. heavyweight. Cleanroom. Code inspection in XP, refactoring. Quality metrics - assessment and prediction. Internal vs. external. Complexity metrics - cyclomatic complexity, flowgraph metrics.

Assignments

Project Description: Available in Moodle

Resources

Command Line Programming
The University of Edinburgh guide to the Unix command line programming environment.
The Infionline guide to MS-DOS (Windows) command line script programming, by Terry Newton.
Steve Parker's online guide to Unix / Linux Bourne / Bash shell scripting.
Software Quality Web Sites
A large selection of links to a wide range of web resources on software quality issues such as testing, inspection, process and metrics, as well as links to software quality standards organizations.
Software testing and quality links aimed at industrial Information Technology (IT) professionals.
Software Quality Assurance history and definitions page.
The NASA Software Quality Assurance website, with standards, procedures and checklists used at NASA.
ISO 9000 standard for computer software development and maintenance processes and procedures.
Description of the CMM levels and assessment procedure.