我对黄瓜中适当的文件夹结构有几个问题:
我想我将根据type_of_user / type_of_feature.feature组织我的功能文件夹,即main_admin / add_a_customer.feature或franchisee / schedule_job.feature。唯一的问题是我拥有的用户类型:清洁工,客户,特许经营商和主要管理员/特许经营商,后两个用户共享许多功能。例如,特许经营商和特许经营商都有能力增加新客户和安排工作,唯一的区别是特许经营者有能力为任何人,任何地方安排工作 - 即唯一真正的区别是权限,而不是功能。考虑到建议的文件夹结构,我将基本上复制这两个用户的测试是否重要?或者我应该只按功能分隔文件夹,然后是用户类型?
对于我的移动应用,我是否应该将这些功能文件夹与网络应用分开,或者这些功能文件夹是否也应该位于根目录中:mobile / ios / cleaner_login.feature,mobile / android / cleaner_login.feature等?< / p>
答案 0 :(得分:0)
关于用户类型:
按用户类型在顶级组织对我来说效果很好。但是,如果实际使用不同的功能,我只考虑用户类型,而不仅仅是因为它们在特定对象方面的权限不同,如您给出的示例中所示。您可以考虑特许经营商和特许经营者“管理员”,为这些人制作顶级文件夹,并为特许经营商和特许经营者编写针对这些角色具有不同权限的功能的方案。
如果您是开发人员并编写除了Cucumber功能之外的RSpec规范,您甚至可以编写规范而不是功能来涵盖特许经营商和特许经营商之间的差异。 (如果特许经营者和特许经营者之间的差异相当微不足道,并且不值得在Cucumber中曝光,我只会这样做。)如果你是QA并且只在外面进行测试,那么它们都必须在Cucumber中。
为了任何组织,我肯定不会系统地复制整个场景。当您忘记时,维护重复和错误所需的额外工作将远远超过遵循稍微复杂的系统所需的额外工作,以尽量减少重复!
关于网络和移动:如何处理不同的平台取决于它们的不同。
如果您有一个Web应用程序和一个原生(Android,iOS)移动应用程序,步骤实现将完全不同,您的测试将需要完全在不同的项目中。这可能不会意味着重复,因为网络和移动应用程序中的用户和功能可能会有很大不同。
如果您有两个网络应用程序,一个用于桌面应用程序,一个用于移动应用程序,则没有技术问题。但同样,这将取决于两个应用程序的相似程度。如果它们不同,请将它们分开到顶层(甚至在用户之前)。如果它们非常相似,则仅在必要时将它们分开,并且仅在场景级别。