功能测试理念:测试功能或要求?

时间:2011-06-22 15:14:28

标签: testing functional-testing

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

情况

我的应用程序有一些安全页面,需要用户的组才能拥有正确的凭据才能访问。这些用户分为两组:“协作者组”和“可问责组”。证书将提供给小组。

可能的哲学

解决方案1:测试凭据a.k.a.测试功能。

  

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

优点:仅测试页面是否针对特定凭据进行保护

缺点:不测试客户端想要(和用户)的“最终”应用程序行为。

解决方案2:测试组a.k.a.测试要求

  

对于每个安全页面,我测试   访问每个组的用户,和   检查只有允许的组   获得对安全页面的访问权。

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

缺点

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

谢谢。

2 个答案:

答案 0 :(得分:2)

我认为第二解决方案是好的解决方案。凭证将在与组关联时进行测试。

  

优点:测试“最终”应用程序行为,由客户端按需要(和用户)。

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

  

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

如果您的应用程序的业务发生变化,您的测试用例将始终必须更新。和你的单元测试一样。如果修改函数的代码,则检查单元测试是否仍能控制每种情况。它与功能测试的方式相同。

维护测试(以及他们需要运行的灯具)是一项非常繁琐的工作,但这是确保代码强大的唯一方法。

希望它有所帮助。

答案 1 :(得分:1)

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