自动测试总是赢?

时间:2012-08-31 13:40:24

标签: testing automation

我正在读这页:

http://support.smartbear.com/articles/testcomplete/manager-overview/

以及其他几个页面,在用户性方面,与手动测试相比,自动测试似乎是胜利者。我想知道是不是这样吗?测试专家能否分享他们的想法?感谢。

4 个答案:

答案 0 :(得分:3)

简短的回答是强调否定,自动化不是手动测试的替代品。自动化与手动不是两者兼而有之。如果我必须选择其中一个,我会选择手动测试。

通过手动测试,智能探索测试人员可以非常快速地覆盖许多不同的测试用例和排列,查看错误发生的位置,然后使用他们的智能来查找更多相同的错误。自动化测试通常每次都做同样的事情,因此它们只涵盖了软件的一条路径。

考虑它的方法是探索性测试是发现错误的最佳方法,自动化测试是防止回归的一种方法。隐藏的自动化成本是长期维护成本,远远高于构建自动化的初始成本。

我在自动化方面有几篇文章: http://blogs.msdn.com/b/edglas/archive/2008/08/15/so-you-want-to-automate-your-test-cases.aspx 和这里: http://blogs.msdn.com/b/edglas/archive/2009/06/13/increasing-the-roi-of-our-automation.aspx

答案 1 :(得分:2)

我会说完全错了。自动测试永远无法像摇滚明星黑人拳击手那样进行探索性测试。此外,手动测试仪没有任何维护问题,并且误报率低得多。自动化很棒,不要误会我的意思。但我想要自动化的原因是要处理简单,一致的任务,这是让我的黑人拳击手自由尝试以我从未想象过的方式打破应用程序的基本检查。

答案 2 :(得分:1)

是的,没有。自动测试是良好软件开发的重要组成部分。每个开发者都应该使用它。单元测试,集成测试,功能测试......使用它们!他们会让你的软件更好!那是肯定的!

另一方面,人工手动测试是否会使您的软件变得更糟?没有!因此,如果合适,请让用户测试您的软件。什么是用户体验?你的软件易于使用吗?它是用户期望的吗?

两者(自动测试和手动测试)将帮助您改进代码。找到适合您项目的混合物。

答案 3 :(得分:1)

链接中自动化测试的所有优点都足够准确,但我会在每个链接中添加“......如果操作正确”。设计不当或实施的自动化测试可能导致完全相反(我已经看到了以下所有内容!):

  • 由于准确性差而导致故障排除或维护的成本时间和成本 - 例如,如果测试由于时序变化或测试环境的变化而导致测试失败,或者未正确计算,或者如果测试取决于某些未记录的行为,以后会发生变化
  • 降低测试覆盖率 - 如果开发人员过于依赖自动化测试并且没有花时间考虑如何最好地运用他们正在处理的特定代码(“我正在修复涉及X和Y之间交互的错误,所以如果我运行X的单元测试和Y的单元测试,那将涵盖所有内容!“)
  • 错过手动测试可以做什么 - 例如,自动化测试的好处和诅咒是每次都做同样的事情。手动测试中的人为因素(时间的变化,意外的鼠标点击或拼写错误,改变您执行操作的顺序,注意可用性)可以发现自动测试可能会遗漏的问题。
  • 伤害团队士气 - 如果不惜一切代价获得脆弱的自动化测试,则需要关注实际确保系统按预期工作。

尽管如此,合理设计和实施自动化测试绝对是一个好处。我认为,自动和手动测试的理智混合通常比“所有自动化,始终”更好。一些特别复杂的一次性测试可能无法证明自动化后续重新运行所需的额外时间和成本。除非您的自动化非常全面,否则手动测试中固有的变化总会提供一些额外的信心,并且可以发现自动测试程序可能没有遇到过的事情。