Course Description
This course explores the principles of software development besides programming, such as static and dynamic analysis, debugging, diagnosing bugs, and testing. Topics include fundamental properties of software analysis and testing techniques, program analysis and code inspection, defect tracking, causality analysis, software measurement, software profiling, software tracing, acceptance testing, integration testing, regression testing, and performance testing.
Credit Hours: 36
Location: STH216 — South Block (formerly AS216)
Period: Jan 09, 2023 to Apr 07, 2023
Time: Wednesday: 01:00 pm to 02:30 pm, Friday: 01:00 pm to 02:30 pm
TAs: Nazanin Mehregan (nm22jz@brocku.ca), and Nurbek Imangazin (nimangazin@brocku.ca)
Prerequisite: COSC 2P03 (minimum 60%), and COSC 2P05
Exclusions: Completion of this course will replace previous assigned grade and credit obtained in COSC 2P32.
Recommended Textbooks
- Software Testing and Analysis: Process, Principles, and Techniques by Mauro Pezzèandet al., isbn: 978-0471455936.
- Introduction to Software Testing by Paul Ammann and Jeff Offutt, Cambridge University Press, 2016.
- Static Program Analysis by Anders Møller and Michael I. Schwartzbach, December 8, 2022 • Download
Tentative Outline
- Introduction to Software Analysis
- Introduction to Software Testing
- Random Testing
- Test Automation
- Dataflow Analysis, Pointer Analysis
- Constraint-Based Analysis, Type Systems
- Statistical Debugging , Delta Debugging
- Dynamic Symbolic Execution
- Structural Testing
- Testing Object-Oriented Software
- Fault-Based Testing
Office hours
- Tuesday and Thursday 11:00 am to 01:00 pm
- Offline questions: by email
- Online session: by appointment