software quality

roles determines quality attributes aspects of software

  • end users
  • operators/ deployments
  • developers

software quality

  • functionality - users
  • reliability - users
  • usability - users
  • efficiency - users, ops
  • portability - ops, dev
  • maintainability - dev

reliability - not just having faults

  • avoid failure from software faults itself
  • maintain perf in faults
  • reestablish performance and data after failure

usability - beyond adequate to polished

  • helps understand whether program meets needs
  • easy to learn
  • easy to control
  • enjoyed

maintainability - makes dev lives easier

  • easy to find defects
  • easy to understand changes
  • easy to test

measuring quality

  1. planning - decide most important criteria
  2. process - code reviews and monitoring
  3. testing - minimum agreed requirements and observe

quality as a process

steps

  1. requirements
  2. specification
  3. design
  4. implementation
  5. testing
  6. documentation
  7. maintenance

how to assist process, group along 2 criteria

  1. synthesis vs. analytical
    • synthesis - tools and techniques structured to create better software
    • analytical - tools and technique to measure quality software
  2. manual vs. auto
    • manual - driven by devs
    • auto - function w/out dev intervention

integrating into process is core part of quality plan:

  • set goals
  • establish practice
  • measure progress

consider how analytical tools and techniq help ensure quality, starting with testing

02-testing-intro