Software Testing and Maintenance
Information
Course Overview
This course provides an in-depth understanding of modern software testing principles and practices. Students will learn about the latest tools, frameworks, and techniques used in the testing and maintenance of web applications.Â
The course covers both theoretical foundations and hands-on experience with modern testing environments, focusing on automation, CI/CD integration, and advanced testing issues such as performance, scalability, and security.
Course Objectives
By the end of this course, students will be able to:
Describe the principles of software testing and test automation.
Compare various testing techniques and select appropriate methods based on project needs.
Design and implement automated tests using modern frameworks such as Selenium.
Integrate automated tests into CI/CD pipelines using tools like Jenkins, or GitHub Actions.
Apply best practices for designing maintainable and efficient automated tests.
Evaluate test coverage and ensure comprehensive testing in the software development lifecycle.
Address advanced issues like performance testing, scalability, and security in testing environments.
Implement shift-left testing strategies to detect issues early in the development process.
Reference Material
Main text:
Mastering Software Testing: Modern Practices and Automation, by Mahmmoud Mahdi [Soon]
Reference books (library/online):
Software Testing: Principles and Practice
The Art of Software Testing
Testing OO Systems
Important Course Notes
Class Sessions
Saturday from 10:15am - 11:45am @Hall 3.
Office Hours
Wednesday from 9:00am- 10:00am
Grading Criteria
Attendance: 12.5%
Midterm Exam: 37.5%
Assignments: 2 x 25%
Late Assignments and Make-Up: Assignments submitted after the due date will not be accepted.
Lab & Workshops
Software Tools:
TestNG (Unit Testing)
EclEmma (Code Coverage Tool)
Selenium (Automated Browser Testing)
Jenkins/GitHub Actions (CI/CD)
Social Group
Facebook group
Course Schedule
Note: This is just a expected curriculum, and the specific content and objectives may change. Additionally, some topics may need to be covered in more depth, while others may need to be covered more briefly, based on the needs and skills of students.