Quality Control - KU-SKE17/Software-Process GitHub Wiki

Software Quality

  • Software Quality is a measure of the degree
  • to which - software components or processes
  • meet specified requirements and/or user expectations

Quality Assurance Team

or Quality Team

  • Creating and updating standards
  • Ensure that the project is consistent with standards
  • Reviewing project documentation to check for omissions and/or errors
  • Carrying out product release testing
  • Independent of the software dev process

QA1 Objectively Evaluate Processes and Work Products

QA1.1 Evaluate Processes

  • Promote an environment that encourages staff to report quality issues
  • Establish and maintain clearly stated criteria for evaluations to provide criteria, based on business needs
    • Example
      • What will be evaluated
      • When or how often a process will be evaluated
      • How the evaluation will be conducted
      • Who must be involved in the evaluation
  • Use the stated criteria to evaluate selected performed processes for adherence to process descriptions, standards, and procedures
  • Identify each noncompliance found during the evaluation
  • Identify lessons learned that could improve processes

QA1.2 Evaluate Products

  • Select work products to be evaluated, based on documented sampling criteria if sampling is used
  • Establish and maintain clearly stated criteria for the evaluation ofselected work products
  • Use the stated criteria during evaluations of selected work products
  • Evaluate selected work products at selected times (minestrone review)
  • Identify each case of noncompliance found during evaluations
  • Identify lessons learned that could improve processes

Evaluate Outputs

  • Evaluation reports
  • Noncompliance reports
  • Corrective actions

QA2 Provide Objective Insight

QA2.1 Communicate and Resolve Noncompliance Issues

  • Resolve each noncompliance with the appropriate members of the staff if possible
  • Document noncompliance issues when they cannot be resolved in the project
  • Escalate noncompliance issues that cannot be resolved within the project to the appropriate level of management designated to receive and act on noncompliance issues
  • Analyze noncompliance issues to see if there are quality trends that can be identified and addressed
  • Ensure that relevant stakeholders are aware of results of evaluations and quality trends in a timely manner
  • Periodically review open noncompliance issues and trends with the manager designated to receive and act on noncompliance issue
  • Track noncompliance issues to resolution

QA2.1 Outputs

  • Corrective action reports
  • Evaluation reports
  • Quality trends

QA2.2 Establish Records

  • Record process and product quality assurance activities in sufficient detail so that status and results are known
  • Revise the status and history of the quality assurance activities as necessary

QA2.2 Outputs

  • Evaluation logs
  • Quality assurance reports
  • Status reports of corrective actions
  • Reports of quality trends

Software Testing

Trust, but Verify

note. Onion Model [1=inside, 4=outside]

  1. Unit Testing
  2. Integration Testing
    • test case covers more than one unit
  3. Functional or End-to-End Testing
    • Performance
    • Usability
    • Security
    • Compatibility
  4. Exploratory Testing
    • test by non-relevant users (3rd-party)

User Acceptance Test (UAT)

  • last step
  • fulfilling the initial goals according to user requirements
  • users check the specified business behaviors and functionalities of the system