【问题标题】:Functional tests philosophy : test features or requirement?功能测试理念:测试功能还是需求?
【发布时间】:2011-06-30 18:00:16
【问题描述】:

我目前正在编写一些功能测试,我开始想知道这两者之间的最佳哲学是什么。

情况

我的应用程序有一些安全页面,需要用户组拥有正确的凭据才能访问。这些用户分为 2 个组:“合作者组”和“责任组”。向组授予证书。

可能的哲学

解决方案 1:测试凭据,也就是测试功能。

对于每个安全页面,我测试 有 2 个用户访问:一个使用 正确的凭证,只有这个, 还有一个没有正确的凭证。

优点:仅测试页面是否受到特定凭据的保护

缺点:没有按照客户的要求(和用户)测试“最终”应用程序的行为。

解决方案 2:测试组,也就是测试需求

对于每个安全页面,我测试 访问每个组的用户,以及 检查是否只有允许的组 访问受保护的页面。

优点:根据客户的要求(和用户)测试“最终”应用程序行为。

缺点

  • 测试与测试夹具相关联
  • 如果业务规则发生变化或创建更多组,则必须更改测试。

谢谢。

【问题讨论】:

    标签: testing functional-testing


    【解决方案1】:

    我认为第二个解决方案是好的解决方案。只要凭据与组关联,就会对凭据进行测试。

    优点:根据客户的要求(和用户)测试“最终”应用程序行为。

    这是最重要的部分。功能测试旨在在所有可能的情况下测试最终应用程序。如果您想测试您的凭据与用户或组具有相同行为的事实,您最好使用单元测试。

    缺点:如果业务规则发生变化或创建更多组,则必须更改测试。

    如果您的应用程序业务发生变化,您的测试用例将始终需要更新。正如您对单元测试所做的那样。如果你修改了一个函数的代码,你检查你的单元测试是否仍然能够控制每个案例。功能测试也是如此。

    维护您的测试(以及它们需要运行的固定装置)是一项非常乏味的任务,但这是确保您的代码强大的唯一方法。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我会做这两个测试。像您指出的第一个,不需要更新,但正在测试一个至关重要的事实,即没有权利的用户无权访问。第二个是更全面的测试,就像@TimotheeMartin 指出的那样,当代码更改时,测试总是需要更新。

      【讨论】:

      • 这两项测试似乎合乎逻辑,但第二个解决方案不是更多的是验收测试吗?
      • 这是一个术语问题,在我看来,验收测试是由真实用户使用自己的凭据完成的测试,并全面测试应用程序。所以,第二个测试在某种程度上可以被认为是接受。但是,只要这些测试是自动化的,并且这些测试只是测试应用程序的授权部分,我会将它们归类为功能测试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2010-10-22
      • 2014-12-23
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多