首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动化单元测试与GUI自动化

自动化单元测试与GUI自动化
EN

Stack Overflow用户
提问于 2016-04-29 03:51:18
回答 2查看 1K关注 0票数 1

自动化测试是使用一段代码/程序来测试另一段代码/程序的任何类型的测试。这可以是如上所述的单元测试,也可以通过特定的自动化工具,如TestComplete,QTP,Selenium,etc.Unit测试往往由相关代码的开发人员创建和执行,而图形用户界面自动化将更可能由软件QA专家执行。

关于这一点,我想到了一些问题。

1)使用代码编写自动化单元测试还是使用自动化测试工具(如QTP、Selenium )执行GUI自动化更好?

2)在SDLC生命周期中,使用代码编写自动化测试与使用自动化测试工具实现GUI自动化相比,涉及的工作量是多少?

3)使用代码编写自动化单元测试和使用自动化测试工具执行GUI自动化是否有好处?

EN

回答 2

Stack Overflow用户

发布于 2016-04-30 23:45:16

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

  1. 我不建议使用图形用户界面自动化来编写单元测试,因为你想要快速运行它们,每次都重新运行,非常稳定,并且不受浏览器等其他对象的影响。
  2. 使用一些自动化记录来编写自动化测试要容易得多,但是通常它比你使用适当的API自己编写代码的稳定性要差得多。
  3. 我不确定我是否理解了你的意思,但是同样的,单元测试最好用没有图形用户界面的代码来编写,系统测试通常应该使用帮助图形用户界面自动化环境来编写,比如Selenium。
票数 2
EN

Stack Overflow用户

发布于 2017-04-27 18:35:19

单元测试和通过GUI的自动化测试服务于不同的目的。此外,高级自动化测试不一定是通过UI完成的。

你见过测试金字塔吗?

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

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

单元测试的执行速度更快,因此开发人员可以更快地获得反馈,并且几乎可以立即发现是否有问题。此外,编写良好的单元测试很容易诊断问题,并快速找到错误的代码行。对于GUI测试和高级测试,通常需要更多的时间来诊断问题。测试失败的可能性更高,这只是一个环境问题或其他一些依赖问题。

考虑到所有这些,测试金字塔很好地总结了这一切。越早发现问题越好。因此,大部分测试工作都应该用于单元测试。但是,在“方法级别”上总会有无法捕获的But。因此,您向上移动了一个级别,这就是您的集成测试的亮点。GUI测试可以涵盖对产品至关重要的E2E案例,例如确保登录按钮确实存在并可单击:D

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36924236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档