假设您有一个产品或项目即将推出下一个版本,并且其前一版本已经发布了一段时间,并且具有大量的自动用户接受度测试套件,从一天到两天运行时间太长。

您多久运行一次?
如何在如此大量的测试中处理错误(失败的测试)?

评论

自动化的用户验收测试?我不懂是否熟悉您的用户的想法?那将是一个用户接受测试。还是脚本执行此操作?那将是一个自动化测试。除非您可以使实际用户对应用程序的响应自动化,否则我不确定您可以进行自动用户接受度测试。我可能在这里错过了一些基本的东西...

我指的是尽可能忠实于客户/用户要求的自动UI测试。

然后进行自动化功能测试。 :-)

@glowcoder“验收测试”是一个笨拙的描述,但实际上是一个常见的描述。 (我本人不太喜欢该术语,因为两个词实际上都不是正确的,但是这似乎是人们使用的术语。)

#1 楼

如果可以在无人看管的情况下运行它们,请每周在周末运行它们。 >对于分析结果,这是另一个问题。我发现将结果分为功能或类别很有用。这样,我可以从结果集中快速看到最大的问题所在,并集中精力解决问题。

关于处理错误,这取决于返回结果的质量以及返回结果的性质。错误。结果不仅仅包括通过/失败。它们应包括相关的错误消息,测试操作和参数以及版本详细信息。这样一来,它们很容易变成bug。如果不可能,则可以相对轻松地手动复制它们,并以这种方式记录为错误。

评论


请注意,2011年的发布是每月或每年。现在到2020年,每天或每小时或每分钟很常见。如果是这种情况,那么“周末”将不再是可行或有用的策略。

–迈克尔·杜兰特(Michael Durrant)
20 Mar 4 '13 at 19:19



#2 楼

这取决于。对我来说,每次部署测试环境时,我们都会运行自动化。但是可能会发生变化的是,我们将要运行的测试用例的数量以及用于运行它们的机器的数量。

在1.0上线之后,通常我们会选择一些关键测试用例,这使我们获得了高级测试合格。该测试通过将广泛涵盖所有功能,以快速确定可能需要更多关注的领域。

这里存在测试转义与执行时间平衡的真正风险。我还将增加以下方面的覆盖率:a)最近更改过的区域,b)已知历史上不稳定的区域。需要运行所有测试以使其保持良好的正常运行。

#3 楼

我会同意布鲁斯的看法,这取决于。如果您的需求需要这些以使其更经常运行,则将它们尽可能地适合它们。否则,如果您负担得起,您可能需要做的是建立一个不断运行它们的环境。我是在一家需要持续运行这些测试的公司中进行的,并且是在长期运行测试的Longevity环境中进行的,我们只是在那里更新了版本。为此,我不在目前的公司工作,但是当您需要进行长时间的测试并且必须在某个地方进行测试时,这是一个选择。对于没有较新环境的地方,我会在非工作时间,周末或休假日或任何时候运行这些环境。否则,我将选择一个有代表性的子集并尽可能多地运行它们。

评论


我认为这是一个很好的折衷方案:选择一个有代表性的测试样本,然后在其他无用时间(周末或夜间)进行测试。也许在周末运行全套套件,而有代表性的样品则在一夜之间运行。

– Peter K.
2011年5月9日12:37

#4 楼

只要您负担得起。毕竟它们是自动化的。如果它们很健壮并且没有给您带来误报,那么理想情况下,一旦编译和其他测试通过,每次提交都将被执行。

评论


每次提交之后,要花2天才能完成的测试必须完全是个地狱。无论如何,这是最初的问题。我想您可能在彻底阅读了最初的问题之后想改变策略。

–pavelsaman
20年3月4日在18:51

#5 楼

强制性:


每次发布​​(对解决方案团队来说)
每天的基本负载变化都是核心或影响超过一个已经交付的功能区域br />大量错误修复。

可选:

#6 楼

当您转向每周一次,每天一次,每小时一分钟地发布时,您的整个策略必须改变。

除了需要花费很多天和几周的时间来处理大量传统的长时间E2E案例以外,您需要切换到使用“敏捷测试金字塔”和“敏捷测试象限”来真正消除大量运行端到端测试。大多数测试应该是单元级别的。

E2E测试也应该在代码(BDD)之前编写,并且有许多实践需要采用这些实践。

在这个旅程中,教练或指导者会很有用,以避免重新发明轮子,就像发现所有这些真相感到很好。