王廷瑋|數位醫療|智慧醫療: Software Quality WFU

2024年7月24日 星期三

Software Quality

Software Quality


  • meets requirements
  • useful for situations in which the requirements were stated in terms of things that could be measured
  • typically be quality inspectors at various points in the assembly line
  • requirements are usually written in the form of stories or use cases
  • should be traceability between the requirements and the goals of the stakeholder: Vision documents
  • Achieving quality: doing things that build a quality product
  • Assuring quality: convincing ourselves and others that we are building, or have built a quality product
  • Return On Investment


Defects


  • Error: A conceptual, syntactic or clerical discrepancy which results in one or more faults in the software
  • Fault: A specific manifestation of an error. A discrepancy in the software which can impair its ability to function as intended. An error may be the cause for several faults
  • Failure: A software failure occurs when a fault in the computer program is evoked by some input data, resulting in the computer program not correctly computing the required function in an exact manner.
  • Defect: Either a fault or discrepancy between code and documentation that results in mischief in the testing, installation, maintenance, or use of software
  • errors cause defects, which, in turn, can result in failures
  • multiple ways to detect defects
    • Reviews are performed by a group of people, including the developer of the code
      • An informal review is called a walkthrough.
      • A more formal type of review is a formal inspection
  • root cause analysis
    • Starting with a failure, we ask why did it happen? What was the defect that led to the failure?
    • why did the defect occur? What error led to the defect?
  • Handling Defects
    • Record and categorize the defect
    • Identify and record the error
    • Look for similar defects and errors
  • Categories of Defects
    • by nature
    • severity
    • priority
  • Removing Defects
    • Change control: When we fix a defect, we are changing the software
    • Regression testing: If you make a change to the software, you need to re-run some of the test cases to make sure you haven’t accidentally broken something else.
    • Ripple effect: We need to do a careful job of analyzing the changes we make to the software to avoid ripple effects.
  • Preventing Defects
    • Defect tracking and cataloging
    • Continuous Process Improvement


The Quality Triangle


  • People, Processes, and Tools
  • People
    • Software is a labor-intensive operation
    • Hire good people.
    • Retain good people.
    • Train your staff to keep their skills up to date.
    • Management:
      • Project managers.
      • People managers.
    • Technical staff:
      • Analysts.
      • Designers.
      • Programmers.
    • Quality Assurance Function.
      • Testers.
      • Configuration Management.
      • Software Quality Assurance.
  • Processes
    • document our processes and standards.
      • Based on our own experience
      • Based on industry standards
    • Maintain
    • Train
    • Ensure we are following the standards
      • This is the role of Software Quality Assurance.
    • Tools
      • Reduces errors
      • Increases productivity and efficiency
      • Makes job easier
      • Saves money in the long run


Quality Assurance


  • People: Quality Organization
    • Configuration Management:
      • responsible for version control of the artifacts being produced by the developers
      • code, of course, but also requirements and design documentation
    • Testing
      • developers themselves are responsible for unit testing of their own pieces of work
      • separate group of people responsible for larger scale testing
    • Software Quality Assurance.
      • managerially Independent from the developers, as well as configuration management and testing
      • ensures that standards are in place and are approved
      • ensure that the standards are placed under configuration control
      • runs periodic reviews to ensure that the standards are being followed
      • assures all stakeholders of the quality of the workmanship of the rest of the team
  • Process: Standards
    • Standards are embodiments of best practices
    • Government standards
    • IEEE standards
    • ISO standards
  • Tools
    • Computer-Aided Software Engineering
    • Upper CASE tools
      • Planning and estimating.
      • Project management.
      • Requirements analysis.
      • Analysis and design.
    • Lower CASE tools
      • Coding and reuse.
      • Analyzing code.
      • Testing.
      • Configuration management.
      • Metrics.
      • Documentation.
      • Maintenance.