Course Overview
Following on from COMP 2501 - Programming Fundamentals Part 2 (Java) and COMP 2831 - Business Analysis and Systems Design, this hands-on course introduces the concepts, tools and processes to perform Quality Assurance (QA) and software testing. Students with Java programming experience are shown how to integrate QA best practices in every step of the development process. Topics include manual and automated testing, creating test cases, bug finding and reporting, and understanding the steps of the Software Testing Life Cycle (STLC). COMP 3829 will focus on the fundamental concepts of QA, practicing different methods of finding, writing, and running test cases. Participants will acquire practical experience with key QA tools and technologies. They will use Artificial Intelligence (AI) integration, automated testing, Unified Modeling Language (UML) diagramming, and browser developer tools for efficient test management. Students are introduced to using Artificial Intelligence (AI) for assisted verification, tracking and reporting bugs. Exercises and labs will include using popular open-source QA software testing and tracking tools, plus writing unit tests in a Java environment with JUnit. Additional topics include Black Box, White Box and Grey Box, Unit testing for Quality Assurance (QA), Quality Control (QC) planning, and test execution. Automated testing topics include constructing an automation framework, scripting techniques, generating test data, and test architecture will be discussed. COMP 3839 is an elective in the CST FLEX Diploma, as well as the Web and Mobile Development (WMA), and Applied Software Development (ASD) Associate Certificates. Upon completion, successful students will be able to create automated test scripts with Selenium IDE, monitor test processes, evaluate test results, and conduct testing to industry standards. They will have experience with software testing methods, creating a Quality Assurance plan and a test plan.
- Not offered this term
- This course is not offered this term. Notify me to receive email notifications when the course opens for registration next term.
Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Explain the concepts of Quality Assurance (QA), Quality Control (QC) and Testing.
- Describe the mapping between Software Testing Life Cycle (STLC) and the Software Development Process (SDP).
- Define the theory of QA: Functional and Non-functional testing, types of requirements, white, black, and gray testing.
- Prepare and condition test data.
- Use performance and security testing, to identify and mitigate security vulnerabilities.
- Perform requirements analysis for testing and use UML to create the use case diagram for the system.
- Identify and write Test Cases based on: Use Cases, Equivalence partitions and boundary value analysis, decision tables and state-chart diagrams.
- Use Artificial Intelligence (AI) to assist in identifying the test data and test cases.
- Perform manual and automated testing with Selenium IDE.
- Generate test scripts.
- Create and execute Unit Tests with Junit.
- Use a database to create data pools and query the data with TransactSQL.
- Identify issues and Create Bug reports using a bug tracking tool.
- Use open-source QA tools including community editions of Jira, Selenium IDE, and ChatGPT.
Effective as of Fall 2025
Related Programs
Quality Assurance and Software Testing (COMP 3829) is offered as a part of the following programs:
- Indicates programs accepting international students.
- Indicates programs eligible for students to apply for Post-graduation Work Permit (PGWP).
School of Computing and Academic Studies
- Applied Software Development (ASD)
Associate Certificate Part-time
- Computer Systems
Diploma Part-time
- Web and Mobile Application Development
Associate Certificate Part-time
Programs and courses are subject to change without notice. Find out more about BCIT course cancellations.