Skip to content

SQA 部门

组织如何构建其软件质量保证 (Software Quality Assurance, SQA) 活动,会显著影响其有效性。方法可以从专门的、集中的 SQA 单元,到将质量职责深度集成到开发团队的模型不等。

在许多传统组织中,存在一个独立的 SQA 单元或部门,通常独立于开发管理报告,以确保客观性。该单元通常负责定义过程、执行审计,有时还进行独立测试。

集中式结构可能涉及以下角色和职能:

  • 战略规划:定义组织的质量方针、目标和年度 SQA 计划/预算。
  • QMS 开发与维护:监督软件质量管理体系 (Software Quality Management System, QMS)(程序、标准、模板)。
  • 管理:领导 SQA 团队,监控活动,向高级管理层报告质量状态。
  • 代表:参与高层评审、指导委员会和外部审计。
  • 过程合规性监控 (Process Compliance Monitoring):确保开发和维护团队遵循既定的 SQA 程序。
  • 评审与审计参与 (Review & Audit Participation):参与正式评审(设计、代码)、审计和里程碑审批。
  • 独立验证与确认 (Independent Verification & Validation, IV&V):可能执行独立的测试活动。
  • 风险评估 (Risk Assessment):识别项目中的质量风险。
  • 客户联络 (Customer Liaison):与客户质量代表对接,可能管理验收测试 (acceptance testing)。
  • 过程定义 (Process Definition):开发、更新和分发 SQA 程序、工作指南 (work instructions)、模板和检查表 (checklists)。
  • 培训 (Training):提供关于质量过程、标准和工具的培训。
  • 配置管理监督 (Configuration Management Oversight):定义和审计配置管理过程。
  • 纠正与预防措施 (Corrective & Preventive Actions, CAPA):管理跟踪和解决不符合项 (non-conformances) 并防止再次发生的系统。
  • 工具管理 (Tool Management):评估和管理质量相关工具(测试管理、静态分析等)。
  • 内部审计 (Internal Audits):计划和执行内部审计,以验证 QMS 和项目计划的符合性。
  • 供应商审计 (Supplier Audits):评估分包商和供应商的质量体系。
  • 外部审计支持 (External Audit Support):协调和支持认证机构(例如,ISO 9001)或客户的外部审计。
  • 度量计划管理 (Metrics Program Management):定义、收集、分析和报告软件质量度量。
  • 高级技术 (Advanced Techniques):研究和推广高级质量技术(例如,特定测试方法、自动化策略、根本原因分析 root cause analysis)。
  • 咨询 (Consultation):向项目团队提供与质量相关的专家建议。
  • 故障分析 (Failure Analysis):调查重大的质量故障并提出改进建议。

现代集成质量模型(敏捷/DevOps 背景)

Section titled “现代集成质量模型(敏捷/DevOps 背景)”

在敏捷 (Agile) 和 DevOps 环境中,趋势是将质量职责整合到整个团队和生命周期中(“全团队质量 Whole Team Quality”)。虽然专业的质量专业知识仍然受到重视,但它通常嵌入在开发团队内部或与其紧密合作,而不是作为独立的把关者运作。

常见的方法包括:

  • 嵌入式质量工程师/SDETs (Embedded Quality Engineers/SDETs):测试人员或测试开发工程师 (Software Development Engineers in Test) 作为跨职能开发团队的一部分工作,专注于测试自动化、将质量构建到 CI/CD 流水线 (Continuous Integration/Continuous Delivery pipeline) 中、探索性测试 (exploratory testing),并倡导质量实践。
  • 质量协助/辅导 (Quality Assistance/Coaching):质量专家充当教练和赋能者,帮助团队采用最佳实践、选择合适的工具、改进其测试策略并分析质量数据,而不是自己完成所有测试工作。
  • 平台/赋能团队 (Platform/Enablement Teams):中心团队可能提供共享的基础架构、工具和框架(例如,测试自动化框架 test automation frameworks、CI/CD 流水线),供开发团队用于构建质量。
  • 共同责任 (Shared Responsibility):整个团队(开发人员、测试人员、产品负责人 product owners、运维 operations)共同承担质量责任,协作定义验收标准 acceptance criteria、自动化测试、监控生产环境 production,并响应问题。

即使在这些模型中,某些职能可能仍保持集中或跨团队协调,例如:

  • 定义总体质量标准和指南。
  • 管理企业级质量工具和基础架构。
  • 进行定期的、高层次的过程审计或合规性检查 (compliance checks)(尤其是在受监管的行业)。
  • 汇总和分析整个组织的质量度量。
  • 促进质量专业人士的实践社区 (communities of practice)。

无论结构如何,促进质量文化通常涉及:

  • 质量倡导者/负责人 (Quality Champions/Trustees):开发团队中倡导质量实践、支持同事并与任何中心质量职能或社区联络的个人。
  • 委员会/论坛 (Committees/Forums):专注于特定质量领域的团体(常设或临时),例如过程改进 (process improvement)、缺陷分级 (defect triage)、测试自动化策略、安全实践 (security practices) 或管理变更(例如,变更咨询委员会 Change Advisory Board - CAB,尽管其形式在敏捷环境中差异很大)。

最优结构取决于组织的规模、文化、开发方法(例如,瀑布 Waterfall vs. 敏捷 Agile vs. DevOps)、合规要求 (regulatory requirements) 和总体业务目标 (business goals)。关键是确保角色、职责的清晰,以及有效的协作,以便在整个生命周期中构建和维护软件质量。