Skip to main content
10152200 Foundations of Software Quality
Course Information
Description
Learn to understand, verify, and validate the quality of software systems through the analysis and application of modern quantified techniques. Students will understand the terms and concepts which describe the fundamentals of quality assurance. Verification of software quality is addressed by exploring secure software development practices and test strategies including static, exploratory, and dynamic techniques. Validation of software quality is addressed by analyzing risk, coverage, and vulnerabilities. Validation is further refined through the critical analysis of intended vs. actual results and through understanding the contexts and perspectives of end-users.
Total Credits
3

Course Competencies
  1. Assess software quality
    Assessment Strategies
    Quiz, Exam
    Criteria
    Define key terms and concepts related to testing
    Associate testing terms to related concepts
    Relate concepts to personal experience

  2. Examine risk management in support of software quality
    Assessment Strategies
    Quiz, Exam
    Criteria
    Explore key statistical equations for risk analysis
    Define key terms and concepts related to risk
    Associate risk terms to related concepts
    Relate concepts to personal experience

  3. Perform risk analysis using static assessment techniques
    Assessment Strategies
    Written Product
    Criteria
    Use statistical equations for risk analysis
    Derive risk qualification tables
    Use equations and qualification tables to evaluate risk

  4. Use artificial intelligence (AI) to generate and test software
    Assessment Strategies
    Written Product, Skill Demonstration
    Criteria
    Setup an execution environment to run code
    Evaluate different AI models for code generation
    Use AI to generate code
    Use AI to perform design-time and runtime analysis

  5. Perform dynamic testing techniques to assess quality
    Assessment Strategies
    Written Product, Skill Demonstration
    Criteria
    Perform static analysis on AI-generated code
    Develop and invoke tests manually for AI-generated code
    Use AI to develop and invoke tests automatically for the code
    Analyze the differences between run-time performance of manual vs automatic tests