2016-04-28 69 views
0

自动化测试是指您使用一段代码/程序测试另一段代码/程序的任何类型的测试。这可以是如上所述的单元测试,也可以通过特定的自动化工具,如TestComplete,QTP,Selenium等。单元测试往往由相关代码的开发人员创建和执行,而GUI自动化将会更有可能由软件质量保证专家执行。自动化单元测试与GUI自动化

关于这个问题浮现在脑海中。

1)使用代码编写自动单元测试或使用QTP,Selenium等自动测试工具执行GUI自动化会更好吗?

2)在SDLC生命周期中,使用自动化测试工具使用代码与GUI自动化编写自动化测试涉及哪些工作?

3)他们的优点是写自动化单元测试使用代码和使用自动化测试工具执行GUI自动化?

回答

1

单元测试和GUI自动化测试的目的是不同的。单元测试(通常由开发人员执行)应该验证测试下的一个函数的不同输入和输出。如果需要,可以在模拟系统的帮助下实施。单元测试通常运行得很快,所有这样的套件都不会超过1秒。 GUI测试模拟用户行为(我们经常称它们为端到端测试),并且可能需要更多的时间来执行。

  1. 我不会建议使用GUI自动化的帮助,每次编写单元测试,因为你要运行它们快,重新运行,是非常稳定的,而不是从像浏览器的其他物体的影响。
  2. 使用某些自动化记录编写自动化测试非常容易,但通常它比您自己使用专用API编写的代码要稳定得多。
  3. 我不确定我是否在这里跟着你,但是单元测试在没有GUI的代码中最好写代码,系统测试通常应该用像Selenium这样的GUI自动化环境来编写。
0

通过GUI进行单元测试和自动化测试有不同的目的。而且,高级自动化测试不一定通过UI完成。

你见过测试金字塔吗? enter image description here

这当然是理想的情况,这在现实生活中很少发生。但这是要努力的。

单元测试更容易编写。尽管遗留代码可能并非如此。如果代码没有考虑到可测试性,则需要重构代码才能添加单元测试。在这种情况下,通过公共API或GUI进行的高级测试将更容易编写。但这不一定是正确的做法。

单元测试的执行速度更快,因此开发人员可以更快地获得反馈,并且可以在出现问题时立即发现问题。同样,一个精心编写的单元测试可以很容易地诊断问题并快速找到错误的代码行。 通过GUI测试和一般的高级测试,需要更多时间来诊断问题。测试失败的可能性更高只是环境问题或其他依赖性问题。

考虑到这一切,测试金字塔总结得非常好。越早发现问题就越好。因此大部分测试工作应该进行单元测试。但总有一些错误无法在“方法级别”上捕获。所以你升级一级,这就是你的集成测试闪耀的地方。 GUI测试可以覆盖对产品至关重要的E2E情况,例如,确保登录按钮确实存在并且可点击:D

总之,没有简单的答案,哪个更好,因为他们实现完全不同的目标。