软件测试中的影响分析
什么是影响分析?
影响分析是指分析已部署产品或应用程序的变更所产生的影响的过程。它能够识别当应用程序的特定部分或功能发生变更时,系统中哪些区域可能会受到影响。
影响评估涵盖需求、设计和 Archi结构、测试和交付计划。
每当应用程序或产品添加新功能时,都必须检查这些更改将如何影响系统的性能和稳定性。影响分析正是为此而进行的。
为什么要进行变更影响分析?
- 为了解实施变更可能带来的后果。为产品添加过多功能可能会降低整体性能。
- 确定如果团队决定实施变更,可能需要修改的每个文件、文档和模型。
- 估算实施这项变更所需的工作量。
- 确定实施变革所需的任务。
- 列出对正在更改的特定元素的依赖关系。
什么是影响分析文件?
影响分析文档可用作评估变更请求的清单,以便在团队开始处理变更请求之前进行评估。该文档应记录以下详细信息:
- 问题的简要说明。
- 对缺陷如何导致故障或效率低下进行解释或举例说明。
- 复杂度估算。
- 修复所需的费用和时间估算。
- 待测试的功能。
- 为此次变更创建了新的测试用例。
- 参考文件,例如技术规范或相关设计说明。
计费示例:
影响分析文件。
- 更改请求 ID:
- 主题:
- Descript离子:
- 准备日期:
- 优先级估算:
- 相对效益
- 相对惩罚
- 相对成本
- 相对风险
- 预计总工作量:______ 小时
- 预计损失的工作量:______ 小时
- 预计对日程安排的影响:______ 天
- 质量受到影响:
- 其他受影响的要求:
- 其他受影响的任务:
- 整合问题:
如何呈现影响分析的影响程度
影响分析可以用颜色编码来表示,该编码显示了变更对系统的重要性。下面展示了一种常见的颜色编码:
- 红色——强烈冲击
- 黄色——中等影响
- 绿色——影响较小
上表说明了已实施变更的影响:
- 红色标记的特征是主要变化特征。黄色标记的特征受变化的影响较小。绿色标记的特征受影响最小。
- 垂直排列的功能是正在被更改的功能。水平排列的功能是可能受到更改影响的功能。在上面的示例中,功能 1 的更改会影响功能 3。
- 对于功能众多的大型项目,上表可能并不实用。在这种情况下,可以采用另一种方法,即开发人员直接标记主要功能变更的影响程度,如下所示,其中主要功能的影响与每个子功能的影响一一对应。
进行影响分析时需要考虑的一些问题:
- 进行拟议的变更有哪些不利的副作用或风险?
- 是否需要购置任何新工具来实施和测试此变更?
- 如果这项改变被接受,那么之前投入的努力会有多少付诸东流?
- 拟议的变更是否会对性能要求产生不利影响?
- 是否需要用户提供其他信息来验证所提出的更改?
- 变更是否会增加产品成本?
- 现有员工是否具备实施拟议变革所需的知识和技能?
- 提议的更改是否对任何计算机资源提出了不可接受的要求?
变革影响分析最佳实践
- 在开始影响分析之前,请确保测试请求中明确指出受变更影响的项目的每个部分。
- 开发人员和测试人员之间必须保持持续沟通,以免遗漏最终产品所需的任何更改。
- 确定是否需要对用户界面进行任何更改、删除或添加。
- 估算所需的验收测试用例、系统测试用例和集成测试用例的数量。
- 确定拟议变更对项目计划、配置管理计划或质量保证计划的任何影响。
软件测试中的影响分析类型
变更影响分析并非单一技术。实践者通常会使用三种互补的方法之一来回答有关拟议变更的不同问题。
- Trac能力影响分析: 使用要求 Trac能力矩阵和设计关联将每个需求映射到实现该需求的模块、测试和文档。当需求发生变更时,该矩阵会显示所有需要更新或重新测试的下游工件。
- 依赖性影响分析: 研究调用图、数据流和接口连接tracts 在代码库中。对一个模块的更改是 trac通过直接调用者、间接调用者和共享数据结构进行 ed,以便在变更发布之前显现隐藏的涟漪效应。
- 实验性(历史性)影响分析: 它会分析历史变更数据——包括过去的缺陷、失败的迭代和回归错误——来预测当前变更的行为。现代工具会将版本控制历史挖掘与统计或机器学习模型相结合,从而对每次变更的风险进行评分。
大多数球队至少会结合其中两种类型。 Trac可执行性分析会告诉你哪些文档会受到影响,依赖性分析会告诉你哪些代码会受到影响,历史分析会告诉你变更的风险有多大。
常用的变革影响分析工具
现代变更影响分析很少使用电子表格完成。团队会将需求管理工具、代码分析工具和测试管理工具结合使用,这些工具共享一个共同的框架。 trac脊柱功能。
- Jama Connect, IBM 门, Modern Requirements以及 Visure 要求: 当提出变更时,捕获需求、维护基线并生成相关需求、测试和风险的影响报告。
- Atlassian Jira Xray 或西风: Track 个用户故事、缺陷和测试用例。影响报告会显示拟议变更在迭代或发布周期内涉及的每个故事和测试用例。
- SonarQube,通过 SciTools 和 Structure101 了解: 分析源代码依赖关系,生成调用图和耦合报告,以便工程师可以看到受更改影响的下游代码。
- 可发射的, Testim 自动修复,以及 TestGrid: 利用机器学习预测哪些测试最有可能发现变更引入的缺陷,从而实现智能测试选择和更快的回归测试周期。
- Microsoft Excel 或 Google 床单: 仍然广泛用于小型项目的初始影响分析文档、彩色编码影响表和变更请求日志。
合适的组合取决于代码库的规模、监管环境和交付方式。受监管行业通常依赖 Jama 或 DOORS 来进行可审计的集成。 traceability,而敏捷产品团队则依赖于 Jira, SonarQube以及一个测试影响工具。



