4.2.9 可维护性

软件产品质量属性中的可维护性是指软件产品可被修改的能力。这里的修改是指软件产品被纠正、改进,以及为适应环境、功能、规格变化被更新。我们十分熟悉的升级操作,就是产品可维护性的一个体现。

可维护性又被分为6个子属性,如表4-9所示。

表4-9 可维护性子属性

模块化属性是ISO/IEC 25010—2017和GB/T 25000.10—2016新增加的,体现了研发模式的变化对质量的影响。在DevOps下,虚拟化和容器成为很多系统的基础环境,服务/微服务成为流行架构的趋势更加明显,“解耦”和“模块化”已成为最基本的架构设计要求。与此同时,模块化也进一步催生了可复用性要求,很多公司都有专门的架构师来负责平台、中台或者通用组件的规划和建设,避免“重复造轮子”。

易分析性是指在系统出现问题后,技术支持者或者开发者可以快速定位问题所在的能力。很多产品中的日志、告警、troubleshooting等功能,都属于易分析性。

易修改性对外的一个重要体现就是产品的升级能力。企业级产品往往对升级都有比较严格的要求,比如升级不能影响业务、能够及时判断升级是否成功(如果升级失败了还要有回退机制)。所以很多时候升级功能并非像看起来那么简单,往往需要结合用户的行业、使用场景和使用习惯来制定策略,设计专门的升级方案。

易测试性简单来说就是我们可以很方便地确认系统某个功能是否满足预期。对于易测试性,用户一般不会直接关注(用户往往在出了问题且需要开发者提供已修复证明的时候才会关注),所以常常被开发者和测试者忽视。易测试性可以帮助开发者、测试者快速确认结果,提高处理调试、测试和反馈问题的效率。对于测试架构师来说,易测试性非常重要,所以我们会在4.12.2节中详细描述如何识别可测试性需求,如何通过可测试性需求来提高测试设计、测试执行和自动化测试效率。

接下来我们将以Windows计算器为例,说明可维护性是如何在产品中体现的。由于模块化、可复用性和产品形态、架构的关联比较大,故在本例中不进行讨论。

在Windows计算器中如何体现可维护性

1)可维护性——易分析性

对Windows计算器来说,易分析性可以理解为,假如发生了严重的异常(如重启),计算器能够捕捉并记录这些异常信息,并且这些信息对开发人员定位、复现并解决这个问题来说是足够的、有用的。

2)可维护性——易修改性

对Windows计算器来说,以下两方面都是易修改性的具体体现。

·在用户处发现的产品缺陷可以通过产品升级来修复。

·不会因为计算器版本更新引入新的问题,更新后产品依然能够稳定工作。

3)可维护性——易测试性

对Windows计算器来说,易测试性可以理解为,计算器的所有功能(包括改动)都是可以被验证的,并且能够确认改动符合预期。