CISC/SOFT 327/3.0 Software Quality Assurance
Original Author: Jim Cordy
Last Revised: October 08, 2014
Validation of software throughout the life cycle. Comparative
effectiveness in defect removal of formal methods (proofs of
correctness), inspection (walkthroughs and reviews), and testing
(unit, integration, and system testing; white box versus black box).
Prerequisites: CISC 220/3.0, CISC 223/3.0.
The primary purpose of this course is to introduce the concepts, theory
and practice of software quality assurance through testing, inspection,
The courses to which this course is a prerequisite are
- CISC-422/3.0 (Formal Methods)
- CISC/SOFT-426/3.0 (Real-Time Systems)
- CISC/SOFT-427/3.0 (Performance Analysis)
This course is required in SODE.
Introduction (2 weeks)
- Quality -- what it is, how is it measured, how is it achieved
- Software Process -- process models, how does quality fit into the software
life cycle, software process evaluation
- eXtreme Programming -- idea of continuous evolution and quality control
Testing (5 weeks)
- Systematic Testing -- what it is, levels of testing, designing for test
- Black Box Testing -- functional, input, output, partitioning and OO testing
- White Box Testing -- coverage, path, decision and mutation testing
- Continuous Testing -- regression, defect testing
- Test Automation -- test maintenance and analysis, harnesses, tracking, tools
Inspection (1.5 weeks)
- Systematic Inspection -- what it is, levels of inspection, inspection process,
- Requirements and Specification Reviews -- early user feedback
- Design Reviews -- interface reviews, working papers
- Timelines and Scheduling -- continuous scheduling
- Code Inspection -- four-eyes principle, sign-offs, independent vs continuous,
Measurement (1.5 weeks)
- Software Metrics -- measures of quality
- Product Quality Metrics -- timeliness, robustness, reliability,
- Code and Structure Metrics -- decision points, code complexity, size,
Software Dependability and Security (1 Week)
- Dependability -- attributes, impairments, means, reliability
- Security -- computer security, program security
- Kent Beck, eXtreme Programming Explained: Embrace Change, Addison Wesley, 2004.
- Sommerville, Software Engineering, Addison Wesley, 2004.
- S. H. Kan, Metrics and Models in Software Quality Engineering, Addison Wesley,
- Gilb & Graham, Software Inspection, Addison Wesley, 1993.
- J. C. Laprie, Dependabilty: Basic Concepts and Terminology in English, French,
German, Italian and Japanese, Springer-Verlag, NY, 1991.
- C. Pfleeger, and S. Pfleeger, Security in Computing, Prentice-Hall, 2002.