TORONTO METROPOLITAN UNIVERSITY

Course Outline (W2026)

COE891: Software Testing and Quality Assurance

Instructor(s)Dr. Reza Samavi [Coordinator]
Office: ENG457
Phone: (416) 979-5000 x 554903
Email: samavi@torontomu.ca
Office Hours: TBA
Calendar DescriptionIntroduces students to various techniques to verify and validate software and software-hardware co-design systems with an emphasis on the design and implementation of system-level software, System-On-Chip systems, Electronic-Design-Automation tool flows, and embedded systems.
PrerequisitesCOE 692
Antirequisites

None

Corerequisites

None

Compulsory Text(s):
  1. Introduction to Software Testing, Second Edition, Paul Ammann and Jeff Offutt, Cambridge University Press, 2017.
  2. Selected chapters of the reference texts and several articles on software testing topic as indicated in the course content.
Reference Text(s):
  1. Test Driven: Practical TDD and Acceptance TDD for Java Developers, Lasse Koskela, Manning Publications, 2007.
  2. xUnit Test Patterns: Refactoring Test Code, Gerard Meszaros, 1st Edition, Addison-Wesley Signature Series (Fowler), 2007
  3. Software Testing, a Craftsman Approach, Fourth Edition, Paul C Jorgensen, 2014.
  4. Software Testing and Analysis: Process, Principles, and Techniques, Mario Pezze and Michal Young, 2007.
  5. The Calculus of Computation: Decision Procedures with Applications to Verification, Bradley, Aaron R., and Manna, Zohar, Springer Berlin Heidelberg, 2007.
Learning Objectives (Indicators)  

At the end of this course, the successful student will be able to:

  1. Develop a deep understanding of systematic methods to debug complex object oriented programs. (1c)
  2. Be able to develop, maintain, document and execute test cases. (4a)
  3. Understand and implement at different testing levels including unit, integration, system and operational acceptance levels. (5a)
  4. Be able to develop documentation for testing exercises and communicate findings with developers. (6a), (7c)
  5. Consider environmental implications of software programs when testing for operational acceptance. (9b)
  6. Plan for software testing projects with continuous integration and test-driven development. (11b)

NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).

Course Organization

3.0 hours of lecture per week for 13 weeks
2.0 hours of lab per week for 12 weeks
0.0 hours of tutorial per week for 12 weeks

Teaching AssistantsTBA
Course Evaluation
Theory
Mid-term Examination 25 %
Final Examination 40 %
Laboratory
Lab assignments 25 %
Project 10 %
TOTAL:100 %

Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section above for details on the Theory and Laboratory components (if applicable).


ExaminationsMidterm examination in Week 7, 1.5-2 hours, closed book (covers Weeks 1-6).
 Final examination, during exam period, 2-3 hours, closed book (covers Weeks 1-13).  
Other Evaluation InformationIn order to achieve a passing grade in this course, the student must achieve an average of at least 50% in both theoretical and laboratory components.
Teaching Methods- Notes/slides from the class lectures will be posted on D2L.
 - Laptops/computer systems are mandatory requirement for the course lectures and labs.
 - Audio/video recordings of the lecture delivery will not be posted on D2L. Individual students may record the lectures at their own discretion and the professor is not responsible for such recordings.
 
Other InformationAll the labs have to be performed individually by each student. Each lab has its own weight as specified in the lab instructions. Submissions that are substantially similar will be considered plagiarized. Projects requires to be completed in a team of students from the same lab section. Any late submission of the lab deliverable will be deducted 10% per day up to 8 days, whereby the lab will not be accepted.
 
 Generative AI Course Policy
 
 Expectations around appropriate and inappropriate use of Generative Artificial Intelligence (sample syllabus statements).
 https://docs.google.com/document/d/1xk7hP2Ihh7WL3AViKxJJpLAM_Jy9IvZoaoNnxBbngjU/edit?usp=sharing
 
 Include the Academic Integrity Office's student facing resource: FAQs: Academic Integrity and AI Use at TMU.
 https://docs.google.com/document/d/1HVre0-YflnPA5WPAYR6Ecjv_OwqDP0TMcOePCQQYIaU/preview?tab=t.0#heading=h.qcfhdt6b496b

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

AO: Ch. 1, Ch. 2.1

Introduction to Software Testing and and Quality Assurance; Course administration; Goals of testing software; Key concepts of software testing;


2

3

AO: Ch.2, Ch. 3, and Ch. 4

Software Model Driven Test Design (MDTD), Agile SDLC and Agile testing methodologies, Data-Driven Tests (DDT), Test automation: JUnit test framework, Java path finder, and other automated test frameworks;


3

3

AO:Ch. 5, Ch. 7.1

Criteria and coverage; Graph coverage overview; Infeasibility and subsumption;


4

3

AO: Ch. 6

Input Space Partitioning (ISP); Input Domain Modeling: Interface based, functionality based;


5

3

AO: Ch. 7.2, Ch. 7.3

Graph coverage criteria; Introduction to graph control flow; Data flow criteria; Graph coverage for source code;


6

3

AO: Ch. 7.4, 7.5

Graph coverage for specifications; Graph coverage for design; Graph coverage for use cases;
 Midterm exam review;


7

3

AO: Ch. 7.6. Ch. 8.1

Techniques for improving test design;  Semantic logic coverage criteria;
 Test automation tools for logical coverage;Structural logic coverage of programs;


8

3

AO: Ch. 8.1-8.3

Specification-based logic coverage; Logic coverage of finite state machines (FSM); Hardware(RTL,System Verilog)/software co-design and verification;


9

3

AO: Ch. 8.4-8.7 and posted material

Syntax based Testing: Program-Based Mutation, Integration Mutation


10

3

AO: Ch. 9, Ch. 13

Specification-Based Mutation; Continuous integration (regression testing) and containerized testing strategy;
 Managing test processes; Designing test plans; Designing Effective Test Oracles;


11

3

AO: Ch. 10, 11, and 14

AI-Assisted Software Testing. Using an LLM as a Testing Assistant via ChatUniTest.


12

3

posted material

Software verification; Principles of verifying  and validating of system-level software, System-On-Chip, and embedded systems;


13

3

posted material

Research topics in software testing and quality assurance; Software testing and artificial intelligence;  Final exam review;


Laboratory(L)/Tutorials(T)/Activity(A) Schedule

Week

L/T/A

Description

2-3

Lab 1

JUnit. Review of Automated Testing
 Advanced Automated Testing in JUnit: Suit Testing and testing Using TestNG, Parametrized tests and theories in JUnit
 Project activities: Team forming

4-5

Lab 2

Coverage-based Test Design, Code Coverage tools (OpenClover), Input Domain Model and derive Input Space Partitioning (ISP) test inputs;
 Project activities: Topic selection, Self-reading and practice: Agile testing methodologies using Test Case Management: e.g., TestLink Open source, X-Ray test management, TestRail Test Case Management

6-7

Lab 3

Web application testing with ISP approach using TestNG and Selenium. (week 6)
 Project activities: Project proposal development including, topic justification, open source application, and working on proposed test plan (week 7)
 

8-9

Lab 4

Graph coverage prime path and complete path; Apply structural graph coverage and data flow coverage to source code; Apply graph coverage to test various parts of the software design (weeks 8 and 9).
 Project activities: Test plan submission and project checkpoint (week 9)

10

Lab 5

Logic coverage; Automatic Generation of High-Coverage Tests for Complex Systems Programs.
 Project activities: Project Q&A and review

11

Lab 6

Syntax based testing, Mutation Testing
 
 Project activities: Project Q&A and review

12-13

Project

Project activities: Project Q&A and review (week 12)
 Project: Final Project submission (week 13)

University Policies & Important Information

Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website

Refer to the Departmental FAQ page for furhter information on common questions.

Important Resources Available at Toronto Metropolitan University

Lab Safety (if applicable)

Students are to strictly adhere and follow:

  1. The Lab Safety information/guidelines posted in the respective labs,
  2. provided in their respective lab handouts, and
  3. instructions provided by the Teaching Assistants/Course instructors/Technical Staff.

During the lab sessions, to avoid tripping hazards, the area around the lab stations should not be surrounded by bags, backpacks etc, students should place their bags, backpacks etc against the walls of the labs and/or away from their lab stations in such a way that it avoids tripping hazards.

Accessibility

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.

Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.

Wellbeing Support

At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.

If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:

If non-crisis support is needed, you can access these campus resources:

We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.