概述
测试自动化对软件测试的不同领域有不同的影响。节约成本和资源,同时解决许多与测试相关的问题。
但也有不少失败案例,大量的投资引起客户的不满,最终叫停了自动化测试。了解测试自动化的成本与收益以及计算投资回报率将有助于领导团队决定投资于测试的自动化工具。CBA是进行ROI计算的常见方法。
成本-效益分析(CBA Cost-benefit analysis)
CBA 是一种相对简单且广泛使用的技术,用于决定是否对测试自动化进行投资。顾名思义,只需将效益的价值加起来,然后减去相关的成本。成本可以是一次性的,也可以是持续的。效益最常见的是随着时间的推移而得到。选择测试自动化而不是人工测试的标准理由是,在产品或项目的生命周期内,收益超过成本。对收益和成本做实际分析,可以鼓励更好的决策,并确保有效地分配资源来支持测试自动化。
CBA应该在任何项目的规划阶段(实施之前)开始。随着需求的发展,我们应该能够确定测试方法或技术,并开始制定测试计划和策略。这个早期的纲要将有助于定义和计算自动化策略和CBA。测试领导层负责确保CBA在自动化中的执行。领导应该在CBA所需的所有领域拥有自动化测试开发的专业知识。
在计划软件测试自动化和分析成本和效益时,有许多因素需要考虑。自动化改变了从设计到实施、测试执行和测试结果分析的测试的复杂性。自动化测试的开发、维护和执行与手工测试有很大不同。在实行自动化时,技能、测试方法以及测试本身都会发生变化。这些影响有积极和消极的成分,在执行CBA之前必须考虑。
测试自动化的CBA应该考虑的主要因素有以下几点。
- 项目规格或产品要求 – 要求是CBA需要考虑的主要因素。例如,为大型用户群或多个版本设计的产品会影响测试自动化方法和相关的好处。基于一组复杂需求的产品可能很难实现自动化,而且可能产生长期的维护成本。
- 要测试的功能 – 功能性和非功能性的特点。有些功能可能不需要任何测试。例如,与定制开发的产品相比,一个现成的商业产品(COTS)可能需要最少的测试。
- 软件解决方案的迭代或发布和测试 – 一个在未来需要多次迭代的产品可以成为自动化回归测试的合适人选,并在长期内提供高回报。
- 软件测试和测试方法 – 这些的成本和收益受软件开发生命周期的影响。基于DevOps的产品开发需要在多个环境中频繁测试,人工测试可能不可行或产生高成本。
- 自动化投资的回报率 – 这是CBA计算的一个关键因素。投资回报率是根据许多假设来估计的,如果任何相应的假设发生变化,就需要重新审视它。
- 当自动化被引入时,测试中的进度差异和性能影响。
- SUT的未来迭代 – 未来迭代的数量与SUT的生命周期和测试的数量。
- 工具补丁、更新等 – 工具补丁、补丁窗口、频率和专业的补丁支持是需要考虑的主要因素。
- 可用的资源(如硬件、工具、人员) – 任何形式的测试所需的资源都需要考虑CBA。重要的是,正确的资源可用于估计CBA。
- 以前测试结构的可重用性 – 这可以减少成本,同时增加效益。然而,以前的结构会产生额外的维护成本。
- 测试策略和计划 – 测试策略和计划将提供解决方案在其生命周期内所需的测试水平和类型的指示。
- 自动化脚本的维护: 自动化测试脚本需要根据SUT的变化、测试工具的增强或新版本等进行修改。
CBA框架
执行CBA的第一步是定义你正在测试的内容和你计划自动化的内容。这必然来自于产品或项目计划和测试计划,以及以前的自动化工作。
效益是根据有形和无形的因素来估计的,它们可能会受到风险和假设的影响。测试可以手工进行,也可以通过自动化进行,或者两者混合进行。工作分解结构一般用于进一步明确潜在的结构。必须为每个潜在结构收集详细的数据,以估计成本和效益。一些可能的数据来源是产品知识、过去的项目、领域知识、当前的自动化成本和在线白皮书。
高级别的CBA框架的步骤
- 确定潜在的测试结构
- 确定假设和风险
- 估计效益:有形和无形的效益
- 估算成本
- 将成本和效益转换为可比较的价值
- 比较替代方案和决策
识别潜在的结构 选择一种水平的测试而不是另一种水平的标准理由是,在项目的生命周期内,收益超过成本。对使用各种测试结构的收益和成本进行分析,可以鼓励更好地做出决策。在进行CBA时,应该考虑三种不同的结构,所选择的结构应该是在预算和时间表考虑范围内最具成本效益的。这些结构是。
- 自动测试(只有自动化)。
- 手动测试+自动测试
- 人工测试(仅人工)。
在比较结构时,应确保所有结构都考虑了相同的测试覆盖水平。在这一点上,一些结构可以被拒绝,因为它们是不可行的。
确定假设和风险:由于我们在分析这些结构时,会有很多的假设,而且会有风险。重要的是要确定假设,并在事实或先前经验的基础上对其进行验证。例如,我们可以假设这个版本的SUT将有一个操作系统和三个服务或安全包。根据我们的跟踪记录和数据,我们将决定可行性和可维护性是否会成为一个问题。这也提供了一个平台来解释为什么一些结构在分析中被放弃。如果我们确实在早期考虑并取消了一些结构,因为结论是不可行的,那么这个结论背后的假设应该被清楚地解释和证明。
估计效益 任何自动化的效益都可以是有形的或无形的。它们通常是混合的,有时很难衡量。评估有形和无形的好处并给它们一个价值或权重是很重要的。这可以是积极的,如降低成本和快速测试。可能的有形和无形的好处列举如下。
有形的好处。
- 人的参与 – 自动测试可以在测试中减少人的参与,节省时间,而不是手动运行相同的测试。
- 代码覆盖率 – 代码覆盖率可以用来估计测试的有效性。自动测试可以非常有效,给SUT的功能提供更多的覆盖率和可视性,例如测试一个SUT的大量数据集。
- 测试执行时间 – 自动测试可以减少测试执行时间,因为计算机通常比人更快。
- 系统的下班后测试 – 自动测试有助于全天候运行测试。
- 当前迭代和未来迭代的人工测试时间会减少。
- 手工不可能的,例如负载测试。
无形的好处。
无形的好处很难评估,但却是CBA的一个关键因素,通常与有形的好处交织在一起。
- 无人值守测试 – 尽管人员成本的减少很容易衡量,但节省计算机使用的任何额外价值都很难量化,是一种无形的好处。
- 测试良好声誉 – 这通常会增加测试的生产力,因为知名的测试机构对他们的方法有很高的接受度,建立的标准,丰富的内部专业知识和可重复使用的测试自动化解决方案(TASs),以帮助测试自动化。
- 人员 – 不是所有的测试团队成员都想改变。一些人员的流动往往伴随着测试自动化发生。
- 质量的变化 – 自动化后的质量可以更好,因为自动化测试可以提高测试覆盖率和一致性。
- 测试执行周期的数量 – 自动化通常允许更快地确认产品构建,并为组织提供额外的机会,更频繁地运行相同的测试。这对手工测试来说可能是不可行的。
- 回报 – 在很长一段时间内,自动化可能有意想不到的回报,如快速发布和减少测试成本。对于一些自动化,例如构建验证测试,可以看到立即的回报,但通常情况下,一些回报是在投资之后才出现的。
- 增加可靠性 – 自动化测试可以更可靠,因为它可以避免由于重复运行相同测试的无聊而导致的人为错误。人是不同的,人工测试执行的质量取决于个人能力。
- 客户满意度 – 自动化测试的测试证据更加一致和可靠。这可以提高内部和外部客户的。
估算成本:与自动化测试相关的财务成本一般可以描述为固定成本或可变成本。自动化的固定成本是设备、工具、培训等方面的支出。可变成本根据开发的测试数量或运行测试的次数而增加或减少。以下因素对解决成本问题有帮助。
- 自动化测试可能会产生堆积如山的结果,可能需要更多的工作人员参与分析,因此运行成本比人工测试高。
- 自动化规划、开发和执行的时间。
- 人员成本是自动化成本的一个关键因素。成功的测试自动化需要具有自动化测试经验的人,有经验的人增加了测试的整体成本。
- 硬件资源成本,如工具安装、执行、配置管理和测试执行机器所需的基础设施。
- 测试软件,如软件许可证或软件支持,如社区和工具供应商的专业支持。
- 自动化环境维护,如测试自动化脚本备份。
- 工具引进、培训和提升,如供应商的培训、编程语言的培训和认证费用。
- 测试执行成本,如自动化测试的运行频率、执行所需的资源、结果分析和执行的许可成本。
在某些情况下,可能没有数据来提供足够的成本估算。在这种情况下,最好的选择是利用团队成员的判断和以前的经验来估计成本。
将成本和效益转换为可比较的价值:在对每个结构选择的成本和效益进行估算后,你将得到有形的(货币)价值和主观的效益水平的混合。一般来说,给效益分配一个财务数额是比较困难的。如果没有现实的方法将无形效益的价值与有形效益联系起来,就不能认为它们对成本分析有意义。在这种情况下,如果结构的比较没有显示出一种结构是明显的赢家,它们可以被用作决策制定者。努力应该被转换为努力水平(LOE),并为其分配一个货币价值。
比较替代方案:在这一点上,可以通过比较每个结构的净收益(收益减去成本)来进行分析,以确定哪种结构最适合当前项目。应该选择净收益最大的方案。
投资回报的计算
一般来说,自动化测试涉及的前期成本比人工测试高。对测试自动化进行投资回报率分析,有助于预先确定什么类型的自动化是项目的理想选择,需要什么工具,测试需要什么水平的技能。投资回报率不仅可以作为努力的理由,而且也是项目规划过程中的一个必要部分。那些没有预先进行投资回报率计算的项目并不完全了解他们的自动化工作的成本,他们可以做什么类型的自动化与他们正在做的相比,以及应该采取什么策略来最大化他们的回报。投资回报率也许是赢得决策者兴趣的唯一最有效的方法。如果你有令人信服的数字,并有可靠的事实支持,如果你能证明在测试自动化上花的每一英镑都会有两英镑的回报,例如,那么你几乎可以保证获得资金。
投资回报率是净收入和投资之间的比率。投资回报率被广泛用于选择投资方案。投资回报率衡量的是某项投资的回报量。
当涉及到测试过程自动化时,成本是有形的。但净现值也包括许多无形的因素(正如我们在 CBA 中已经讨论过的)。CBA中的发现可以用于投资回报率的计算。最好的方法是尽可能精确地确定收益,然后将其与自动化测试工作的成本进行比较。
计算投资回报率的几个不同的公式是。
- ROI = 回报/投资
- 投资回报率=你得到的/你投入的
- 投资回报率=(收益-成本)/成本
- 自动化的投资回报率 = 自动化比人工带来的好处/自动化比人工带来的成本
- 自动化的投资回报率=自动化的成本-人工测试的成本
1.文章《[如何求一个数的因子]如何求一个数的因子c语言!》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《[如何求一个数的因子]如何求一个数的因子c语言!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好