Saturday, September 24th, 2016
In software quality management, quality assurance activities are fulfilled by ensuring that each of the following factors are met:
- Correctness: the ability of a system to perform according to defined specification.
- Robustness: appropriate performance of a system under extreme condition.
- Extendibility: a system that is easy to adapt to a new specification.
- Reusability: software that is composed of elements that can be used to construct different applications.
- Compatibility: software that is composed of elements that can easily combine with other elements.
- Efficiency: the ability of a system to place as few demands as possible to hardware resources, such as memory, bandwidth and processor time.
- Portability: the easy of installing the software product on different hardware and software platforms.
- Timeliness: releasing the software before or exactly when it is needed by the users.
- Integrity: how well the software protects its programs and data against unauthorized acess.
- Verifiability: how easy is to test the system.
- Easy of use: the easy with which people of various backgrounds can learn and use the software.
- Maintainability: the easy of changing the software to correct defects or meet new requirements.
Quality is deeply rooted and it forms an inseparable and inherent part of agile practices like pair-programming, test-driven development, shared code ownership, continuous integration, short cycles, quick delivery, retrospectives, etc., in such a way that Agile Quality Assurance takes quality issues a step beyond the traditional software quality assurance approaches.