1

我正在阅读此页面:

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

和其他几个页面,就有用性而言,与手动测试相比,自动测试似乎是赢家。我想知道是不是这样?测试专家可以分享他们的想法吗?谢谢。

4

4 回答 4

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

埃德。

于 2012-08-31T14:36:25.027 回答
2

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

于 2012-08-31T14:24:06.827 回答
1

是和不是。自动测试是良好软件开发的重要组成部分。每个开发人员都应该使用它。单元测试、集成测试、功能测试……使用它们!他们将使您的软件更好!这是肯定的!

另一方面,人工手动测试会让你的软件变得更糟吗?不!所以如果合适的话,让用户测试你的软件。什么是用户体验?你的软件好用吗?它符合用户的期望吗?

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

于 2012-08-31T13:57:00.743 回答
1

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

  • 由于准确性差而花费时间和金钱进行故障排除或维护- 例如,如果测试经常由于时间变化或测试环境中的变化而失败,或者如果测试依赖于后来的一些未记录的行为变了
  • 减少测试覆盖率——如果开发人员过于依赖自动化测试并且没有花时间考虑如何最好地运用他们正在处理的特定代码(“我正在修复一个涉及 X 和 Y 之间交互的错误,因此,如果我为 X 运行单元测试并为 Y 运行单元测试,那将涵盖所有内容!")
  • 错过手动测试可以做的事情——例如,自动化测试的好处和坏处是它每次都做同样的事情。手动测试中的人为因素(时间变化、意外的鼠标点击或拼写错误、更改执行操作的顺序、注意可用性)可以发现自动化测试会遗漏的问题。
  • 损害团队士气——如果不惜一切代价让脆弱的自动化测试通过,这会使我们无法真正确保系统按预期工作。

也就是说,合理设计和实施的自动化测试绝对是一个好处。我会争辩说,自动化和手动测试的合理混合通常比“始终自动化”要好。一些特别复杂的一次性测试可能无法证明将它们自动化以稍后重新运行所涉及的额外时间和成本是合理的。除非你的自动化是非常全面的,否则手动测试中固有的变化总是提供一些额外的信心和发现自动化测试过程可能没有遇到的事情的可能性。

于 2012-08-31T14:11:17.573 回答