标准与认证
软件质量标准与认证
Section titled “软件质量标准与认证”众多国际和国家标准机构、专业组织以及行业协会都致力于软件质量保证(Software Quality Assurance, SQA)和软件工程相关标准的制定与推广。
主要涉及的组织包括:
- ISO(国际标准化组织, International Organization for Standardization):制定了广泛的标准,包括 ISO 9000 族(质量管理体系, Quality Management Systems)和 ISO/IEC 25000 系列(SQuaRE - 系统与软件质量要求与评估, Systems and software Quality Requirements and Evaluation)。
- IEC(国际电工委员会, International Electrotechnical Commission):经常与 ISO 合作(例如 ISO/IEC 标准),涉及电气和电子技术相关主题,包括软件。
- IEEE(电气电子工程师学会, Institute of Electrical and Electronics Engineers)计算机协会:制定了许多与软件工程过程、文档和质量相关的标准。
- 国家标准机构:例如 ANSI(美国国家标准协会, American National Standards Institute)、BSI(英国标准协会, British Standards Institution)、DIN(德国标准化学会, German Institute for Standardization)等。
- 行业特定机构:专注于特定领域(例如,汽车 - AUTOSAR,航空航天 - DO-178C)的组织通常有自己的质量和安全标准。
这些标准为建立和评估质量管理体系和软件开发过程提供了框架、指南和要求。它们旨在提高一致性、改进质量,并促进供应商和客户之间的沟通和信任。
SQA 标准的类型
Section titled “SQA 标准的类型”SQA 相关标准通常分为两大类:
- 质量管理体系 (Quality Management System, QMS) 标准:侧重于确保质量的整体组织框架。它们定义了过程、文档、资源管理、持续改进和客户关注等方面的要求。它们规定了质量体系需要具备的 内容(what)。
- 过程/实践标准:侧重于软件生命周期中的特定活动或过程。它们提供了关于 如何 执行需求工程、设计、测试、配置管理等活动的详细指导。
质量管理体系标准与模型
Section titled “质量管理体系标准与模型”这些标准帮助组织建立和展示其持续交付满足客户和法规要求的产品或服务的能力。
- ISO 9001:国际公认的通用质量管理体系标准。适用于任何组织,它要求在领导承诺、策划、资源管理、产品实现、测量、分析和改进等领域建立过程。获得 ISO 9001(当前版本为 ISO 9001:2015)认证表明符合这些原则。
- 能力成熟度模型集成(Capability Maturity Model Integration, CMMI):由卡内基梅隆大学软件工程研究所(SEI)开发(现由 CMMI 协会/ISACA 管理)。CMMI 提供模型(例如 CMMI for Development、CMMI for Services),描述按过程域分组的最佳实践。组织根据成熟度级别(1-5)进行评估,以衡量其过程能力和复杂程度。虽然 CMMI 影响广泛,但其采用情况各异,敏捷(Agile)方法论提供了替代的改进途径。
- ISO/IEC 27001:专门关注信息安全管理体系(Information Security Management Systems, ISMS),对于处理敏感数据的软件至关重要。
- SOC 2(服务组织控制 2, Service Organization Control 2):一种审计程序,确保服务提供商安全地管理数据,以保护其组织利益及其客户隐私。与 SaaS 和云服务提供商相关。
过程/实践标准
Section titled “过程/实践标准”这些标准提供了关于特定软件工程活动的详细指导。
- ISO/IEC/IEEE 12207:定义了软件生命周期的过程,涵盖采购、供应、开发、运行和维护。
- ISO/IEC 25000 系列(SQuaRE):专门关注系统和软件质量,定义了质量模型(如 ISO 25010)、质量测量和质量评估过程。
- ISO/IEC/IEEE 29119:一系列涵盖软件测试概念、过程、文档和技术的标准。
- IEEE 标准:涵盖广泛领域的标准集,例如软件需求规范(IEEE 830 - 尽管现在常被敏捷(Agile)实践取代)、软件测试文档(IEEE 829)、软件配置管理计划(IEEE 828)等。许多经典的 IEEE 标准提供了有价值的检查表和结构,即使在现代工作流程中实施方式有所不同。
这些标准类型之间的关系通常是互补的。组织可以实施通过 ISO 9001 认证的质量管理体系(QMS),并在该框架内使用特定的 IEEE 或 ISO/IEC 过程标准来指导其开发和测试活动。
| 特点 | 质量管理标准/模型 | 过程/实践标准 |
|---|---|---|
| 目标单位 | 组织的整体质量管理体系 | 生命周期中的特定项目、团队或活动 |
| 主要侧重 | 组织结构、政策、程序、资源、持续改进 | 特定任务(如测试、设计)的方法、步骤、输入、输出、技术 |
| 目标 | 定义构成有能力质量体系的 ‘内容’(What) | 定义如何执行特定软件活动的 ‘方法’(How) |
| 目的 | 确保组织的整体能力和一致性;通常支持认证/评估 | 指导特定任务的有效执行;确保活动的完整性和严谨性 |
| 示例 | ISO 9001, CMMI, ISO 27001, SOC 2 | ISO/IEC 12207, ISO/IEC 25000 系列, ISO/IEC 29119, 各种 IEEE 标准 |
组织通常出于以下几个原因寻求认证(例如 ISO 9001, ISO 27001)或接受评估(例如 CMMI, SOC 2 审计):
- 市场要求:客户可能要求供应商持有特定认证。
- 竞争优势:证明对质量和安全的承诺。
- 内部改进:为改进流程和一致性提供框架。
- 风险管理:有助于识别和减轻与质量或安全相关的风险。
认证通常涉及由认可的第三方机构进行的审计,评估组织实施的体系是否符合所选标准的要求。这些认证需要定期进行复审审计,以确保持续合规。
原文中提到的 TickIT 计划是应用于 IT 行业的 ISO 9001 特定方案,主要在英国实施。虽然曾有影响力,但其重要性已减弱,现在组织通常寻求标准的 ISO 9001 认证,并根据业务环境辅以行业特定标准或评估,例如 CMMI、ISO 27001 或 SOC 2。