关于软件质量,不同的人根据自身的领域知识和经验,对其有着不同的认知:有人简单地将软件质量等同于软件测试,有人说到软件质量就会想到是否有缺陷,也有人对软件质量的认知停留在是否好用的层面。
实际上,软件质量内涵丰富,既包括可感知的、跟用户使用相关的外部质量,也包括影响外部质量的软件技术架构和代码相关的内部质量,还有整个软件开发生命周期中各个环节相关的过程质量。
在 Thoughtworks,我们认为软件开发是复杂的社会活动,随着业务形态的增多、技术架构的演进,软件质量的复杂性不断增加,影响软件质量的因素也越来越多。软件质量不能仅靠传统意义上的测试活动来保障,测试人员要延伸测试边界,以更全面、更系统的视角来构建软件质量体系,助力组织提高软件产品的质量。
如果我们开始设想一套完善的质量体系,这个体系应该包括许多方法论和实践,并需要自上而下的管理框架和自下而上的主动意识。
自上而下的框架是基于顶层设计,整体包括哪些部分,它们的作用是什么,以及互相之间的关系等。
自下而上的主动意识则是每个员工基于不同的角色,主动关注与质量相关的工作,并积极履行应尽的质量职责。
因此,质量体系可以由以下五大部分构成:质量图景、质量策略、质量实践、质量基础设施和质量人员。
质量体系的五大构成部分
1. 质量图景
质量图景是质量体系的概览,展示组织的整体质量愿景和战略规划。它通常包括组织对质量定义、目标、价值观、标准、流程、方法和指标等方面的要求和规定,旨在为组织提供一个整体的、统一的、可持续的质量管理框架,以确保产品或服务能够持续地满足客户的需求和期望。
2. 质量策略
质量策略是规划和指导质量实践活动开展的指南,包括测试流程、测试左移、持续测试、测试右移、质量门禁和质量度量等策略。
3. 质量实践
质量实践是基于质量策略开展的具体质量活动,是实施质量保障的核心。质量实践贯穿整个软件开发生命周期,包括需求分析阶段、需求实现阶段和线上运维阶段。
4. 质量基础实施
全流程的标准化和大规模的自动化是高效实施质量实践的关键,而质量基础设施是标准化和自动化的有力支撑,包括支撑标准化策略规范落地的全流程管理平台、支撑持续自动化测试的工具框架和环境等。
5. 质量人员
清晰的质量图景,明确的质量策略,规范的质量实践,成熟的基础设施,最终都需要质量人员来实施。质量人员不仅指测试人员,包括所有参与质量工作的人员。质量人员相关的质量文化建设、质量能力建设、绩效管理和多角色协同等,都是质量体系需要考虑的内容。
软件质量体系灯塔
灯塔作为一个指引方向的比喻,我们可以用它来描绘软件质量体系的整体构成。灯塔的各个部分与质量体系的各个组成部分对应如下:
1. 灯塔顶部的灯光代表质量图景。
灯塔的灯光为船只指引方向,质量图景为整个组织软件产品质量提供了明确的导向。
2. 灯塔的主体代表质量策略和质量实践。
正如灯塔的主体,质量策略和实践构成了整个质量体系的主体,是实现质量目标的核心。
3. 灯塔的工作人员代表质量人员。
灯塔工作人员的努力使得灯塔能发挥其功能,质量人员的高效协同是实现质量目标的必要条件,而质量文化和团队价值观决定了质量体系各个部分如何发挥作用。
4. 灯塔的基石代表质量基础设施。
灯塔的电源系统和通信设备是灯塔的基石,为其正常运行提供必要支持,就像质量基础设施在质量体系中为质量实践的实施提供支撑一样。
将质量体系框架与灯塔概念相结合,我们可以更直观地展示质量体系的各个组成部分以及它们之间的关系。灯塔为船只提供了指引,确保航行安全,同样,一个完善的质量体系为组织的软件产品提供了明确的质量方向,有助于确保软件系统达到高质量标准。
——《Thoughtworks 软件质量体系白皮书》编写小组:林冰玉,刘冉,于晓南。