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
- planning - decide most important criteria
- process - code reviews and monitoring
- testing - minimum agreed requirements and observe
quality as a process
steps
- requirements
- specification
- design
- implementation
- testing
- documentation
- maintenance
how to assist process, group along 2 criteria
- synthesis vs. analytical
- synthesis - tools and techniques structured to create better software
- analytical - tools and technique to measure quality software
- 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