软件质量工程 03
软件质量活动 (Software Quality Activities)
软件质量计划 (Software Quality Planning)
- 定义: 项目级质量计划,用于识别相关的质量标准和法规。
- 目标:
- 定义质量要求和目标。
- 选择适用于项目的软件质量流程。
- 支持引入新流程。
- 支持使用软件质量保证工具 (Tools for Software Quality Assurance)。
- 解释: 软件质量计划是项目质量管理的蓝图,确保项目在开发过程中遵循预定的质量目标。例如,计划可能包括代码审查 (Code Review) 和测试策略 (Testing Strategy)。
软件质量保证 (Software Quality Assurance, SQA)
- 定义: 定义和评估软件流程,以确保软件满足相关质量标准。
- 特点:
- 不受技术、管理和财务压力的影响。
- 支持系统性计划和实施。
- 满足技术要求和利益相关者的考虑。
- 考虑外部因素,如进度 (Schedule) 和预算 (Budget)。
- 解释: 软件质量保证关注于流程的规范化,确保开发过程符合标准。例如,通过定期审计 (Audits) 确保开发团队遵循既定流程。
软件质量控制 (Software Quality Control, SQC)
- 定义: 一系列流程,确保软件达到其质量目标,并监控软件结果。
- 特点:
- 确保软件无高缺陷率 (High Defect Rate)。
- 支持系统性检查。
- 支持功能性 (Functional) 和非功能性 (Non-functional) 需求。
- 包括验证 (Verification)、确认 (Validation) 和软件测试 (Software Testing)。
- 解释: 软件质量控制更侧重于产品本身,通过测试和审查发现并修复缺陷。例如,通过单元测试 (Unit Testing) 检查代码模块的功能。
注意: 软件质量控制活动可以是软件质量保证活动的一部分。
graph TD A[软件质量活动] --> B[软件质量计划] A --> C[软件质量保证] A --> D[软件质量控制] C --> Dgraph TD A[软件质量活动] --> B[软件质量计划] A --> C[软件质量保证] A --> D[软件质量控制] C --> D
中文
软件质量规划 | 软件质量保证 | 软件质量控制 |
---|---|---|
项目级质量计划,用于识别相关的质量标准和法规 | 定义和评估软件过程,确保软件符合相关质量标准 | 一系列确保软件实现其质量目标的程序。此外,还可以监控软件的结果 |
定义需要实现的质量要求和目标 | 不受技术、管理和财务压力的影响 | 不受高缺陷率的影响 |
为项目选择适用的(软件质量)程序 | 支持系统的规划与实施 | 支持系统的检查 |
支持引入新程序 | 满足技术要求以及利益相关者的考虑因素 | 支持功能性和非功能性需求 |
支持使用工具进行软件质量保证 | 外部因素如进度和预算 | 导致验证、确认和软件测试 |
英文
Software Quality Planning | Software Quality Assurance | Software Quality Control |
---|---|---|
Project-level quality plan for identifying relevant quality standards and regulations | Definition and evaluation of software processes to ensure that the software meets the relevant quality standards | Set of procedures to ensure a software meets its quality goals. Additionally, results from the software can be monitored |
Defines the quality requirements and goals to be achieved | Free from technical, managerial, and financial pressures | Free from high defect rate |
Selects applicable (software quality) procedures for the project | Supports systematic planning and implementation | Supports systematic checking |
Supports introduction of new procedures | Fulfilling technical requirements and stakeholder’s considerations | Supports functional and non-functional requirements |
Supports utilisation of tools for Software Quality Assurance | External considerations such as schedule and budget | Leads to verification, validation, and software testing |
软件质量标准 (Software Quality Standards)
IEEE 730-2014 标准
- 定义: IEEE 软件质量保证流程标准 (IEEE Standard for Software Quality Assurance Processes)。
- 目的: 提供软件开发或维护项目的质量保证流程要求,确保软件产品满足其既定要求。(Produce justified statement of confidence that a software product meets its established requirements)
- 应用:
- 适用于作为系统一部分的软件产品和独立软件产品。(Applicable to software product as part of a system and standalone software product)
- 限制:
- 不对活动和任务的实施或性能施加约束。(Does not impose constraints on the implementation or performance of activities and tasks)
- 关键概念:
- 定义软件质量保证角色。
- 软件产品风险 (Software Product Risks)。
- 系统与软件之间的关系。
- 实际应用:
- 合同支持的定制系统 (如 Accenture, Infosys)。
- 内部定制软件 (如内部 IT 组织)。
- 商业软件 (如 SAP, Oracle)。
- 终端用户软件 (如 Microsoft, Adobe)。
- 商业和终端用户固件 (如飞机引擎、数字相机)。
ISO/IEC 25010:2011 标准
- 定义: 软件质量评估的国际标准 (ISO/IEC Standard for Evaluating Software Quality)。
- 质量模型:
- 使用质量 (Quality in Use): 适用于人机交互系统,关注用户体验。
- 系统/软件产品质量 (System/Software Product Quality): 适用于计算机系统和软件产品。
- 使用质量特性:
- 有效性 (Effectiveness): 用户完成任务的准确性。
- 效率 (Efficiency): 用户完成任务的资源消耗。
- 满意度 (Satisfaction): 包括有用性 (Usefulness)、信任 (Trust)、舒适性 (Comfort)。
- 无风险性 (Freedom from Risk): 包括经济、健康安全和环境风险缓解。
- 上下文覆盖 (Context Coverage): 包括上下文完整性 (Context Completeness) 和灵活性 (Flexibility)。
- 软件产品质量特性:
- 功能适合性 (Functional Suitability): 功能适当性、准确性、合规性。
- 可靠性 (Reliability): 成熟性、可用性、容错性、可恢复性、合规性。
- 性能效率 (Performance Efficiency): 时间行为、资源利用、合规性。
- 可操作性 (Operability): 适当可识别性、可学习性、易用性、吸引力、技术可访问性、合规性。
- 安全性 (Security): 保密性、完整性、不可否认性、责任性、真实性、合规性。
- 兼容性 (Compatibility): 共存性、互操作性、合规性。
- 可维护性 (Maintainability): 模块化、可重用性、可分析性、可更改性、修改稳定性、可测试性、合规性。
- 可移植性 (Portability): 适应性、可安装性、可替换性、合规性。
解释: ISO/IEC 25010:2011 提供了一个全面的框架,用于评估软件在不同场景下的质量特性。例如,功能适合性确保软件满足用户需求,而可维护性关注代码的长期可管理性。
可能考法与示例考题
可能考法
- 选择题: 关于 IEEE 730-2014 和 ISO/IEC 25010:2011 标准的定义和应用。
- 简答题: 解释软件质量计划的结构及其重要性。
- 案例分析: 分析一个开源项目的质量保证措施。
- 实践题: 设计一个简单的软件质量计划,列出质量目标和测试策略。
示例考题
-
选择题: ISO/IEC 25010:2011 标准中的“使用质量”模型包含以下哪个特性?
- A. 功能适合性
- B. 有效性
- C. 可维护性
- D. 可移植性
参考答案:
- 中文: B. 有效性
- English: B. Effectiveness
- 解析: ISO/IEC 25010:2011 的“使用质量”模型包括有效性、效率、满意度、无风险性和上下文覆盖。
-
简答题: 简述软件质量保证 (Software Quality Assurance) 和软件质量控制 (Software Quality Control) 的区别。
参考答案:
- 中文: 软件质量保证 (SQA) 关注于确保开发过程符合质量标准,通过系统性计划和实施来预防缺陷;软件质量控制 (SQC) 关注于通过测试和审查确保产品满足质量目标,检测和修复缺陷。SQC 可以是 SQA 的一部分。
- English: Software Quality Assurance (SQA) focuses on ensuring the development process meets quality standards through systematic planning and implementation to prevent defects; Software Quality Control (SQC) focuses on ensuring the product meets quality goals through testing and reviews to detect and fix defects. SQC can be part of SQA.
- 解析: SQA 更注重流程,SQC 更注重产品,两者相辅相成。
-
实践题: 为一个开源项目设计一个简单的软件质量计划,列出至少三个质量目标及其测量方法。
参考答案:
- 中文:
- 质量目标 1: 可靠性 (Reliability)
- 测量方法: 计算平均无故障时间 (MTBF),目标为每月少于 1 次崩溃。
- 质量目标 2: 可维护性 (Maintainability)
- 测量方法: 使用代码复杂度分析工具 (如 SonarQube) 测量圈复杂度 (Cyclomatic Complexity),目标为平均圈复杂度低于 10。
- 质量目标 3: 性能效率 (Performance Efficiency)
- 测量方法: 使用性能测试工具 (如 JMeter) 测量响应时间,目标为 95% 的请求响应时间低于 2 秒。
- 质量目标 1: 可靠性 (Reliability)
- English:
- Quality Goal 1: Reliability
- Measurement: Calculate Mean Time Between Failures (MTBF), targeting fewer than 1 crash per month.
- Quality Goal 2: Maintainability
- Measurement: Use code complexity analysis tools (e.g., SonarQube) to measure Cyclomatic Complexity, targeting an average complexity below 10.
- Quality Goal 3: Performance Efficiency
- Measurement: Use performance testing tools (e.g., JMeter) to measure response time, targeting 95% of requests with response time under 2 seconds.
- Quality Goal 1: Reliability
- 解析: 质量目标需要具体、可测量,测量方法应与项目需求相关。
- 中文: