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

单元测试与自动化测试
EN

Software Engineering用户
提问于 2020-01-27 04:55:30
回答 2查看 887关注 0票数 3

我是一名C#开发人员&以前从未从事过单元测试或Selenium浏览器测试自动化工作。

对于当前的赋值,有一个现有的Visual解决方案,该解决方案具有一个执行自动化测试的项目。此解决方案没有单元测试。

例如,在活动站点上有一个捕捉客户数据的表单。这个Selenium VS项目将自动打开浏览器,用随机值填充表单字段,单击submit并验证下一步的步骤,如“谢谢屏幕”、数据库条目等等(这些测试用例是由开发人员创建的,而不是由QC创建的)。

这不是单元测试,而是更多的QC将如何在开发完成后进行测试。对吗?

对于以前从未做过测试的人来说,我看到的一个优点是,每次将代码部署到新环境(如STG、UAT等)时,开发人员可以通过更改URL/连接字符串来运行该项目,它将执行所有测试用例,节省时间,并类似于回归测试。

这是使用这种测试而不是传统单元测试的好方法吗?如果不是,哪一种模式与另一种模式相比有哪些主要的优势/劣势。

EN

回答 2

Software Engineering用户

发布于 2020-01-27 05:30:16

不,这不是个好办法。实际上,这是一种可怕而普遍的现象。我想说这是一个测试反模式。

像您描述的那样,端到端测试是高工作量、低价值的,并且在进行代码更改时有很高的崩溃风险。这里的主要问题是,很多软件都在代码完成后编写了测试,而添加稳定和快速的自动化测试通常是不可能的。而端到端的测试往往是唯一的现实选择。

相反,您应该设计您的软件,这样它就可以被快速、独立、孤立和集中于业务的“单元”测试的大型套件所摘录。然后很少有“集成”测试来强调系统与其边界的交互,比如数据库和服务。并且只有很少的端到端测试作为烟雾测试的形式,而应用程序作为一个整体并没有完全错误(例如。而不是启动)。这是标准测试金字塔:https://martinfowler.com/bliki/TestPyramid.html

让我再强调一次:在完成编码之后添加测试是不可能实现这一目标的。您必须设计代码,以便能够针对它编写快速的自动化测试。最好的方法,我知道如何通过测试驱动-开发。如果您想要向现有的代码库中添加良好的自动化测试,则通常需要进行广泛的重构和重构才能实现这一点。

票数 6
EN

Software Engineering用户

发布于 2020-01-27 20:42:11

端到端测试具有以下优点

  • 它们与最终用户所看到的非常接近(通常它们直接测试最终用户所看到的)。他们可以直接测试产品用户的适配性。
  • 每个测试测试数千行代码。
  • 他们测试产品部署到的环境。

所以他们做了一些单元测试不能做的事情,他们测试了很多代码。他们不会取代单元测试。但是,如果您的产品根本没有测试,那么端到端测试可能是引入一些测试覆盖率的一个很好的方法。

我不同意以前的海报,他们是高努力和低价值的。

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

https://softwareengineering.stackexchange.com/questions/404319

复制
相关文章

相似问题

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