首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在自动化测试中应该有任何业务逻辑吗?

在自动化测试中应该有任何业务逻辑吗?
EN

Stack Exchange QA用户
提问于 2018-09-10 13:19:30
回答 5查看 676关注 0票数 4

我与喜欢比较自动化测试结果的开发人员一起工作。所以他们所做的是:

  • 看看他们想要测试的功能
  • 让软件做应该测试的事情。
  • 获取数据并在测试中复制功能
  • 比较软件和测试的结果。

在我看来,这不是测试软件是否正确工作,而是比较两个不同的实现(一个在c++中,一个在机器人/python中),它们的行为是否相同。

为了让机器人测试在数据驱动的测试轨道上运行,设置一条规则:“在机器人测试中没有业务逻辑复制”,这样做有意义吗?

EN

回答 5

Stack Exchange QA用户

回答已采纳

发布于 2018-09-10 14:46:00

我同意在测试中重新实现SUT算法是个坏主意。这很糟糕,因为测试的算法和SUT的算法一样容易出错。或者更糟的是,测试可能会在SUT中复制一个bug。

如果您的测试硬编码了预期的结果,而不是计算预期的结果,它可能需要包含更多的注释来解释结果的来源。

票数 5
EN

Stack Exchange QA用户

发布于 2018-09-22 11:00:08

你的测试应该有尽可能少的逻辑。这有助于防止测试中的额外错误,这可能导致假阳性/假阴性。硬编码您的预期结果是一种可接受的方法。您不应该在测试中重新实现您的特性。

票数 2
EN

Stack Exchange QA用户

发布于 2018-09-10 13:50:52

我们应该在测试中复制业务逻辑吗?

不是的。

理想情况下,一旦软件完成了测试,那么测试就应该使用预期的预先确定的SUT状态来断言实际的状态。

就计算预先确定的预期状态而言,测试的主要目的是“验证”预期状态,而不是“复制”它。

在我们的团队中,它是直接在测试中硬编码的,从以BDD( Cucumber)格式捕获的使用故事中复制,作为一个示例场景,数据充当业务分析师、开发人员和测试人员之间的通信工具。

但是,除了测试前后的测试数据设置/清理之外,在测试之间没有场景操作,比如DB操作/ API调用。没有在测试中重新计算业务逻辑。一个很大的不。

如果我们这样做,那么我们也需要对这些测试进行测试,因为它们不再是测试,因为它们自己实现了与应用程序代码相同的功能。

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

https://sqa.stackexchange.com/questions/35570

复制
相关文章

相似问题

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