Queen's School of Computing

CISC/SOFT 327/3.0 Software Quality Assurance

Original Author: Jim Cordy
Last Revised: October 08, 2014

Calendar Description

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.

Objectives

The primary purpose of this course is to introduce the concepts, theory and practice of software quality assurance through testing, inspection, and measurement.

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.

Topics

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, formal reviews

  • 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, pairs

Measurement (1.5 weeks)

  • Software Metrics -- measures of quality

  • Product Quality Metrics -- timeliness, robustness, reliability, maintainability

  • Code and Structure Metrics -- decision points, code complexity, size, structure metrics

Software Dependability and Security (1 Week)

  • Dependability -- attributes, impairments, means, reliability

  • Security -- computer security, program security

Possible Texts

  • 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, 2002.

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