MOAMIN BURHAM JAMIL ABUGHAZALA
Nature of Work
Academic
Profession
Assistant Professor
Email Address
[email protected]

MOAMIN BURHAM JAMIL ABUGHAZALA

Nature of Work
Academic
Profession
Assistant Professor
Email Address
[email protected]
Software Quality Assurance - 10672335
Course Title
Software Quality Assurance
Course Number
10672335
Instructor Name
MOAMIN BURHAM JAMIL ABUGHAZALA
Contact Information
[email protected]
Semester(s) and academic year(s)
First Semester 2025
Compulsory / Elective
Compulsory
Course Description

This course provides students with a comprehensive understanding of software testing and quality assurance (QA) principles, techniques, and methodologies. It covers the entire software testing lifecycle, from test planning and design to execution and evaluation. Students will explore key testing methods, including unit testing, integration testing, system testing, performance testing, and stress testing.

The course also delves into verification and validation, black-box and white-box testing techniques, model-based and integration testing, and acceptance and regression testing. Additionally, it introduces software quality assurance processes, quality metrics, ISO 9000/SEI CMM process evaluation, and test automation. Special topics such as mobile application testing and API testing are also covered.

By the end of the course, students will gain hands-on experience in test case development, defect life cycle management, and test automation approaches, preparing them for careers in software quality engineering and testing.

Course Objectives

This course aims to equip students with the knowledge and practical skills required to ensure software quality through effective testing and quality assurance techniques. The specific objectives of the course are to:

  1. Understand the Fundamentals of Software Testing and Quality Assurance

    • Explain the importance of software quality and its impact on software development.
    • Identify key software quality factors and metrics used in quality assessment.
  2. Learn Software Testing Lifecycle and Strategies

    • Describe the phases of the software testing lifecycle, including planning, design, execution, and evaluation.
    • Differentiate between various levels of testing such as unit testing, integration testing, system testing, and acceptance testing.
  3. Explore Testing Techniques and Approaches

    • Apply black-box and white-box testing techniques for functional and structural testing.
    • Utilize model-based and integration testing approaches for complex systems.
  4. Develop Test Cases and Test Plans

    • Design effective test cases to validate software functionality.
    • Create comprehensive test plans to ensure adequate test coverage and defect detection.
  5. Gain Hands-on Experience in Test Execution and Automation

    • Implement test automation techniques to enhance efficiency and repeatability in software testing.
    • Use automation tools for executing test scripts and managing test environments.
  6. Understand Software Verification and Validation Processes

    • Differentiate between verification and validation in software testing.
    • Apply industry standards (such as ISO 9000/SEI CMM) for software process evaluation.
  7. Analyze Performance, Stress, and Mobile Testing

    • Conduct performance and stress testing to assess system reliability under various loads.
    • Understand the challenges and best practices in mobile application testing.
  8. Manage Defect Life Cycle and Quality Assurance Processes

    • Identify, track, and manage software defects throughout the development lifecycle.
    • Implement quality assurance techniques to improve software reliability and maintainability.
  9. Develop Skills for API Testing 

    • Learn the fundamentals of API testing and how to test web services.
    • Explore agile testing methodologies and their application in modern software development.

By achieving these objectives, students will be prepared to apply testing methodologies in real-world software projects, ensuring software quality, efficiency, and reliability.

Intended learning Outcomes and Competences

By the end of this course, students will be able to:

  1. Understand Software Testing and Quality Assurance Concepts

    • Explain the significance of software quality and the challenges associated with maintaining it.
    • Identify key software quality factors and metrics.
  2. Apply Software Testing Strategies and Lifecycle Processes

    • Describe and implement different levels of testing (unit, integration, system, performance, and acceptance testing).
    • Develop and execute test plans for different software applications.
  3. Utilize Various Software Testing Techniques

    • Apply black-box and white-box testing techniques to assess software functionality and structure.
    • Use model-based and integration testing approaches for testing complex systems.
  4. Design and Implement Effective Test Cases

    • Develop test cases that align with software requirements and specifications.
    • Ensure adequate test coverage by designing structured test scenarios.
  5. Automate Software Testing Processes

    • Implement test automation using appropriate tools to enhance efficiency and consistency.
    • Develop automated test scripts to validate software functionality and performance.
  6. Perform Software Verification and Validation

    • Differentiate between software verification and validation methodologies.
    • Apply industry standards such as ISO 9000 and SEI CMM for software quality assurance.
  7. Analyze Software Performance and Mobile Testing Challenges

    • Conduct performance and stress testing to evaluate system reliability under different conditions.
    • Identify and address key challenges in mobile application testing.
  8. Manage the Defect Life Cycle and Quality Assurance Processes

    • Track and document software defects throughout the software development lifecycle.
    • Implement quality assurance techniques to improve software reliability and maintainability.
  9. Conduct API and Agile Testing

    • Perform API testing to validate web services and integrations.
    • Apply agile testing methodologies within software development teams.

By achieving these ILOs, students will be equipped with the theoretical knowledge and practical skills necessary to ensure software quality in real-world development environments.

Textbook and References

1. Software Quality Assurance: From Theaory to Implementation, Daniel Galin, Adision Wesley, 2004.

2. Aditya Mathur, Foundations of software testing, Pearson Education, 2008.

3. The Art of Software Testing, Myers, G.J., Sandler, C. and Badgett, T., 2012 3 rd Edition.

4. Software testing, R. Patton, China Machine Press,

5. Agile Testing, a Practical Guide for Testers and Agile Teams, 2009 6. Introducing to Software Testing, Louis Tamres, Addison Wesley Publications, First Edition.

Assessment Criteria
Activity Percent (%)
Exams (Midterm + Final) 65%
HWs 10%
Project 20%
Quizzes and Class Participation 5%