testing - 自动化验收测试有什么好处?

标签 testing automation acceptance-testing

<分区>

最近看了一些文章,对验收测试的好处有一些疑惑,因为相对于它带来的好处,它的成本是相当高的。为了形成我自己的观点,我想收集尽可能多的自动化验收测试的好处。你能帮帮我吗?

最佳答案

一般而言,在产品生命周期内设置和维护自动化测试的总投资低于在产品生命周期内需要时进行手动测试的总投资的情况下,自动化测试才有意义.

因此,如果与手动运行测试相比创建测试的成本非常低(例如,在本质上创建电子表格的适合性测试),或者如果执行的次数足够多,那么自动化测试就会变得更有吸引力抵消成本差异的测试。

单元测试运行良好,因为有足够多的执行次数 - 每一次微小的更改或重构,您都希望确保没有新的失败。

验收测试比较复杂,因为重复执行的可能性因项目而异,而且业务需求会影响长期支持和维护问题。

如果项目在通过验收测试后交付并且没有进一步的支持或更改,那么自动化验收测试可能没有意义,除非生成自动化测试的成本非常低。

另一方面,如果人们期望 future 的版本(甚至是同一客户)或长期支持契约(Contract),那么随着时间的推移,初始投资可能会变得物有所值。

我们公司为各种客户生产交易系统和算法,新功能和产品是在旧功能和产品的基础上构建的。手动运行所有测试的成本如此之高,以至于我们正在努力为许多以前手动测试的场景添加自动化验收测试。

跟进:

恕我直言,重要的是首先要有非常清晰和完整的逐步测试计划(优秀的 QA 人员或团队在这里至关重要)。在验收测试的情况下,客户可以提供他们自己的或者 QA 必须向他们的客户提供。我认为测试计划通常应该是契约(Contract)的一部分。

有了它之后,就可以更轻松地估计人类运行它需要多长时间(您可以对人类进行实验以找出答案)。重要的是要注意哪些步骤需要“繁重的工作”,哪些步骤需要真正的人工输入或判断力。

这是一个重要的区别。例如,假设您正在构建一个绘图程序。如果你告诉一个人在特定坐标中画线,这可以很容易地自动化。但是,如果您的步骤说:“验证形状是一朵花”,人类可以轻松完成,但自动化几乎是不可能的。 许多测试用例可以是半自动化的。您为用户输入留下“钩子(Hook)”,并让测试人员专注于这些。一个按钮开始一系列操作,并向用户呈现“正确的输出出来了吗?”。

我的经验是,自动化的成本是相当直观的。但是,通常需要修改现有程序以使其更易于测试。例如,在上面的示例中,如果您有一个 API 允许您向 Canvas 添加线条,那就太好了。如果您必须编写一个鼠标机器人来将逻辑坐标转换为屏幕等等,那么它会更长。

关于testing - 自动化验收测试有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747194/

相关文章:

python - 在 celery worker 中运行测试

.net - 用于更新 assemblyinfo 文件的 MSbuild

javascript - 在 Vue.js 中进行端到端 (e2e) 测试的正确方法是什么

debugging - 使用内存数据源进行验收测试不起作用

testing - Codeception 不会运行任何测试。失败且没有错误,在运行任何测试之前退出

java - 从 Maven 运行测试失败并停止构建 jar

Angular 2 - 如何在使用 webpack 进行测试时将 scss 与 bootstrap 4 结合使用

r - 在目录中导入最新的 csv 文件

testing - Testcafe 无法在启用了 SIP 的 MacOS 镜像上运行这一事实是否有任何解决方案?

java - 我可以在 Netbeans 7.3 中获得 'better' 详细输出吗?