01+02 背景+质量体系
1. 软件特征与软件工程
- 软件定义:IEEE定义软件为计算机程序、规程、相关文档及运行所需的数据。
- 软件与硬件的区别:
- 软件是逻辑产品,无物理磨损。
- 软件开发而非制造,难以通过已有构件组装。
- 软件工程定义:
- Fritz Bauer:经济地获得可靠、高效的软件。
- IEEE:系统化、规范化的方法应用于软件开发、运行和维护。
- 软件工程视图:
- 定义阶段(做什么)、开发阶段(如何做)、维护阶段(改变)。
- 保护性活动:项目追踪、技术复审、质量保证、配置管理、测试等。
2. 软件质量概念
- 质量定义:
- IEEE:满足规定需求或用户期望的程度。
- ANSI:满足规定和隐含需求的能力。
- 软件质量特征:
- 功能性、可靠性、易使用性、效率、可维护性、可移植性。
- 全面质量管理(TQM):
- 四步骤:过程改进、优化影响因素、用户反馈、市场机会拓展。
3. 软件测试概述
- 测试定义:
- IEEE:运行系统以检验是否满足需求或发现差异。
- G.J. Myers:执行程序以发现错误。
- 测试方法:
- 静态与动态方法。
- 黑盒(功能)、白盒(结构)、灰盒测试。
- 基于开发阶段的测试:单元测试、集成测试、性能测试等。
- 测试自动化:
- 工具包括白盒测试工具、功能测试工具、负载压力测试工具等。
- 缺陷修复成本:
4. 软件质量保证(SQA)
- SQA定义:
- 有计划、系统化的行动,确保项目符合技术需求。
- 包括评审、审计、标准遵循等。
- SQA与质量控制(QC)区别:
- SQA:预防性,关注过程改进。
- QC:检测性,关注产品缺陷。
- SQA活动:
5. 质量控制方法与模型