在软件质量属性中,通常分为**开发期质量属性**(影响软件开发过程)和**运行期质量属性

在软件质量属性中,通常分为**开发期质量属性**(影响软件开发过程)和**运行期质量属性

在软件质量属性中,通常分为开发期质量属性(影响软件开发过程)和运行期质量属性(影响软件运行时的行为与表现)。

  • 可修改性(A):属于开发期/维护期质量属性,关注系统是否易于修改、扩展或修复,与架构可维护性相关。
  • 可测试性(B):属于开发/测试阶段质量属性,影响测试的难易程度,主要在开发和验证阶段起作用。
  • 可伸缩性(C)✅:指系统在负载增加(如用户数、数据量、事务量)时,仍能保持可接受性能的能力(如通过水平/垂直扩展)。这是典型的运行期质量属性,直接反映系统在实际运行中的动态适应能力。
  • 可移植性(D):属于开发期/部署期质量属性,关注软件在不同环境(OS、硬件等)间迁移的难易程度,不依赖运行时动态行为。

因此,正确答案是:C. 可伸缩性

【第4题】黑盒测试:是一种不关心内部结构和实现逻辑的测试方法,仅依据需求规格说明,验证软件功能是否符合预期。测试用例基于输入/输出关系、业务规则、边界条件等设计,典型技术包括等价类划分、边界值分析、决策表、状态转换图等。

# 示例:黑盒测试思维——对一个登录函数的测试不看其内部密码校验逻辑,# 而是验证:# 输入有效用户名+密码 → 返回 success# 输入空用户名 → 返回 "用户名不能为空"# 输入错误密码 → 返回 "密码错误"

可伸缩性被归类为运行期质量属性,是因为它直接描述系统在实际运行过程中应对负载变化的能力:例如并发用户激增、数据量增长或事务吞吐量提升时,系统能否通过增加资源(如服务器实例、CPU、内存)维持响应时间、吞吐量和可用性等性能目标。其评估必须在运行状态下进行(如压力测试、负载测试),依赖实时监控指标(如QPS、延迟、错误率、资源利用率),且行为随运行环境动态变化。

可修改性属于开发/维护期质量属性,它关注的是软件在生命周期中被理解、定位问题、修改代码、验证变更并重新部署的难易程度。它由架构设计(如模块化、低耦合、高内聚)、代码质量、文档完备性、自动化测试覆盖率等静态或过程性因素决定,其优劣在系统尚未运行(如设计评审、代码审查、重构阶段)即可评估,不依赖运行时状态。

简言之:
🔹 可伸缩性 = “系统正在跑着,还能不能撑住更大压力?” →运行时行为 + 动态响应
🔹 可修改性 = “这段代码改起来方不方便?会不会牵一发而动全身?” →静态结构 + 开发过程属性

# 类比理解:# 运行期属性像汽车的“加速性能”“油耗”——只有开起来才能测;# 开发期属性像汽车的“可维修性”——看螺丝是否标准、舱盖是否易打开、是否有维修手册——造车时就决定了。