软件质量工程 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 --> 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 标准的定义和应用。
  • 简答题: 解释软件质量计划的结构及其重要性。
  • 案例分析: 分析一个开源项目的质量保证措施。
  • 实践题: 设计一个简单的软件质量计划,列出质量目标和测试策略。

示例考题

  1. 选择题: ISO/IEC 25010:2011 标准中的“使用质量”模型包含以下哪个特性?

    • A. 功能适合性
    • B. 有效性
    • C. 可维护性
    • D. 可移植性

    参考答案:

    • 中文: B. 有效性
    • English: B. Effectiveness
    • 解析: ISO/IEC 25010:2011 的“使用质量”模型包括有效性、效率、满意度、无风险性和上下文覆盖。
  2. 简答题: 简述软件质量保证 (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 更注重产品,两者相辅相成。
  3. 实践题: 为一个开源项目设计一个简单的软件质量计划,列出至少三个质量目标及其测量方法。

    参考答案:

    • 中文:
      • 质量目标 1: 可靠性 (Reliability)
        • 测量方法: 计算平均无故障时间 (MTBF),目标为每月少于 1 次崩溃。
      • 质量目标 2: 可维护性 (Maintainability)
        • 测量方法: 使用代码复杂度分析工具 (如 SonarQube) 测量圈复杂度 (Cyclomatic Complexity),目标为平均圈复杂度低于 10。
      • 质量目标 3: 性能效率 (Performance Efficiency)
        • 测量方法: 使用性能测试工具 (如 JMeter) 测量响应时间,目标为 95% 的请求响应时间低于 2 秒。
    • 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.
    • 解析: 质量目标需要具体、可测量,测量方法应与项目需求相关。
0%