第二十章 软件质量概述
本章从构建的角度来审视保障软件质量的技术。
软件质量的特性
- 正确性;
- 可用性;
- 效率;
- 可靠性;
- 完整性;
- 适应性;
- 精确性;
- 健壮性;
- 可维护性;
- 灵活性;
- 可以执行;
- 可重用性;
- 可读性;
- 可测试性;
- 可理解性
改善软件质量的技术
- 软件质量目标;
- 明确定义质量保证工作;
- 测试策略;
- 软件工程指南;
- 非正式技术复查;
- 正式技术复查;
- 外部审查。
开发过程
- 对变更进行控制的过程;
- 结果的量化;
- 制作原型。
不同质量保障技术的相对效能
- 缺陷检测率;
- 找出缺陷的成本;
- 修正缺陷的成本
什么时候进行质量保证工作
在开工之前,这一工作就应当添加到项目计划中,在项目进行中作为技术脉络的一部分,并且应该作为项目的街书店,当整个工作结束的时候检验产品的质量。
软件质量的普遍原理
软件质量的普遍原理就是改善质量以降低开发成本。
核对表:质量保证计划
更多资源
Ginac《Customer Oriented Software Quality Assurance》
Lewis《Software Testing and Continuous Quality Improvement》
要点
-
开发高质量代码最终并没有要求你付出更多,只是你需要对资源进行重新分配,以低廉的成本来防止缺陷出现,从而避免代价高昂的修正工作;
-
并非所有的质量保证目标都可以全部实现。明确哪些目标是你希望达到的,并就这些目标和团队成员进行沟通;
-
没有任何一种错误检测方式能够解决全部问题,测试本身并不是排除错误的最有效方法。成功的质量保证计划应该使用多种不同的技术来检查各种不同类型的错误;
-
在构建期间应当使用一些有效的质量保证技术,但在这之前,一些具有同样强大功能的质量保证技术也是必不可少的。错误发现越早,它与其余代码的纠缠就越少,因此造成的损失也越小。
-
软件领域的质量保证是面向过程的。软件开发与制造业不一样,在这里并不存在会影响最终产品的重复阶段,因此,最终产品的质量受到开发软件所用的过程的控制。