This course will provide an introduction to software testing and quality assurance techniques. The students will learn a wide spectrum of techniques and tools that can be used to improve and evaluate software quality ranging from mature testing methodologies to cutting edge automated verification algorithms. Topics to be covered include: coverage criteria (graph, data-flow, and logic coverage), symbolic execution (static, dynamic, concolic), constraint solving (SMT), inductive invariants, automatic deductive verification, automatic invariant synthesis, and Software Model Checking.
Additional information about the course is available in the course syllabus.
Details | Instructor | Teaching Assistants |
---|---|---|
Name | Prof. Arie Gurfinkel (@prof_arie) | Nham Le (@TA_Nham) |
Office | Home | |
first . last AT uwaterloo.ca | — |
Jan 12 | A0 out |
Jan 19 | A1 out |
Feb 4 | A1 due |
Feb 2 | Fuzz out |
Feb 14 (Feb 22) | Fuzz due |
Feb 15 - 19 | Reading week |
Feb 23 | A2 out |
Feb 23 - 27 | Quiz 1 |
Mar 15 - 16 | COVID19 Pause |
Mar 18 | A2 due |
Mar 23 | A3 out |
Mar 30 | Quiz 2 |
Apr 15 | A3 due |
Apr 14 | Last class |
Apr 21 | Project Due |
Apr 25 | Final Exam Due |