“非功能性需求是为了定义可靠性、可维护性或可扩展性等质量特征而对系统施加的限制。”这可能是许多计算机科学家在第一学期学到的。许多“-ities”或“-ilities”(可用性、可扩展性……)在 ISO 25010 “软件质量要求”标准中被定义为可测量的软件质量要求。然而,迄今为止,缺少的是可持续性。那么,如何将可持续性作为软件的可测试质量要求来实施呢?
检查软件可持续性的工具
测试软件可持续性的第一步通常是通过 CPU 负载。这可以衡量软件使用处理器的程度。由于处理器占功耗的很大一部分,因此测量其利用率可以粗略估计功耗有多少。优点:几乎所有语言都有库来测量运行时的CPU负载。
仅 CPU 负载并不能说明软件的确切功耗,但如果同一软件的两 旅行社电子邮件列表 个版本(在同一硬件上)产生不同量的 CPU 负载,则此信息足以了解粗略趋势。由于测量 CPU 负载是开始测量的一种简单方法,并且几乎不需要对代码库进行修改,因此它非常适合获得间接可持续性测试的初步经验。即使它在可重复性和可比性方面存在某些弱点,正如柏林绿色编码的这篇文章所示。
基于源代码的可持续性衡量
事实上,除非安装了专门的硬件或专门的电表,否则就不应该谈论“测量”。根据对 CPU、磁盘、带宽和 I/O 的数字观察,只能对实际环境影响进行估计。然而,有一些基于源代码的工具可以对软件的可持续性产生足够好的估计:用于 Java 的JoularJX、用于 JavaScript 的co2.js和用于 Python 的Codecarbon都是可以轻松集成到代码中的库,从而提供大致正确的语句关于启用运行时行为。Scaphandre、PowerJoular或TRACARBON等复杂的解决方案有时需要特殊的硬件或RAPL,因此可以实现实际测量,而不仅仅是“估计”。
监控软件的可持续性
上述工具是建设性质量保证的一部分。当软件完全开发完毕并且要从外部测试基于源代码的测量并保证分析质量时,运行时监控是一个好主意。.eco 的这篇文章介绍了greenframe.io 或 digitalbeacon.co 等常见在线工具(旨在支持测量网站的足迹)及其优点和缺点。然而,由于数据传输和环境影响之间的联系在实践中相当困难 - 正如本博客文章中所解释的- 这些工具并未作为定量软件质量保证的工具包含在此处。
测试软件的可持续性——如何测试可持续性作为软件的质量特征?
-
- Posts: 387
- Joined: Sat Dec 21, 2024 5:37 am