我目前正在编写一些功能测试,我开始想知道这两者之间的最佳哲学是什么。
情况
我的应用程序有一些安全的页面,需要用户组拥有正确的凭据才能访问。这些用户分为两组:“合作者组”和“负责组”。各小组均获发全权证书。
可能的哲学
解决方案1:测试凭据a.k.a。测试这些特性.
对于每个受保护的页面,我用两个用户测试访问:一个有正确的凭证,只有这个,还有一个没有正确的凭证。
优点:只测试页面受特定凭据保护的事实。
缺点:没有测试客户端想要(和用户)的“最终”应用程序行为。
解决方案2:测试组a.k.a。测试需求
对于每个受保护的页面,我使用每个组的用户测试访问,并检查是否只有允许的组才能访问安全页面。
优点:测试客户端想要(和用户)的“最终”应用程序行为。
缺点
如果业务规则更改或创建了更多组,fixtures
谢谢。
发布于 2011-06-23 13:12:43
我认为第二个解决方案是好的。凭据将在与组关联的范围内进行测试。
Pros:测试客户端希望(和用户)的“最终”应用程序行为。
这是最重要的部分。功能测试旨在测试每个可能的情况下的最终应用程序。如果要测试凭据与用户或组具有相同行为的事实,最好使用单元测试。
Cons:如果业务规则发生变化,或者创建了更多的组,那么测试就必须改变。
如果应用程序的业务发生变化,则始终需要更新测试用例。就像你对单元测试所做的那样。如果修改函数的代码,则检查单元测试是否仍然能够控制每一种情况。功能测试也是如此。
维护您的测试(以及它们需要运行的工具)是一项非常繁琐的任务,但这是确保代码强大的唯一方法。
希望能帮上忙。
发布于 2011-06-30 10:00:16
我会做这两项测试。第一个就像您指出的,不需要更新,但是正在测试一个至关重要的事实,即没有权限的用户没有访问权限。第二种是更全面的测试,就像提摩太马丁指出的那样,当代码发生变化时,测试总是需要更新的。
https://stackoverflow.com/questions/6442237
复制相似问题