我的问题可能听起来有点愚蠢。
我的团队必须测试一个Web应用程序,它由3个不同的User Roles
使用。因此,我们首先根据用户故事编写测试用例。我的问题是我不想为每个用户角色创建3个不同的测试用例。我认为在编写测试用例并稍后测试时需要花费大量时间,因为:
Total Test Cases Number = User Stories x Test Cases Per User Story x User Roles Number
。
此外,如果将来某个时候创建一个新的用户角色,我不想创建新的测试用例,因为它们只是重复,但有一些差别。
有没有更好的方法来管理这种情况?
提前致谢。
答案 0 :(得分:2)
Single Responsibility Principle?
为用户故事分别编写和测试用户访问权限,除非您确实根据自己的角色获得完全不同的故事,在这种情况下,它是一个独特的规范,并保证自己的测试。
答案 1 :(得分:1)
在编码方面不确定(取决于具体情况以及代码的实现方式),但我可以从测试的角度来回答(到目前为止,2年,传统瀑布系统中的一半以上迁移到敏捷)。
我测试的Web应用程序类似,我们有三种用户类型(全局)和三种用户角色(与“项目”相关联,这些项目是站点的桶,术语作为图像桶,查找EyeQ如果好奇)。因此,9种可能的组合,其中8种可以组成一个站点。当前的回归程序doc有100多个测试用例,20个左右是编辑/创建/删除站点。总体而言:500多个测试用例大多数都是手动运行的(正在进行自动化操作,但是在我们通过UI重启时需要时间)。
无论如何,由于UI的变化,我不得不重写我们的一些手动程序,并试图避免我之前的错误作者,例如你描述的错误(过度重复,也就是重复使用相同的测试三次)略有变化)。
我不是坚持他们编写案例的策略,而是使用循环(相同的术语适用于编码) - 即每次使用一个角色类型组合的测试用例。不是将相同的测试用例写入3次以上,而是每次为每个角色/类型单独执行,请使用该过程一次,但最后添加几个步骤。
示例测试用例: 用户可以创建一个站点(8/9的类型角色组合可以在我的应用程序中执行此操作)
我进来之前他们做了什么: 测试用例1- sys admin不绑定项目可以制作网站(10个步骤); 测试用例2-具有项目角色的sys admin可以制作站点(相同的10个步骤); 测试案例3-帐户管理员不绑定项目可以制作网站(与第一种情况相同的10个步骤); 测试案例4-帐户管理员与proj角色可以制作网站(同上); 测试案例5 ......等等 我做了什么: 测试用例1:用组合1做10个步骤, 步骤11-以该组合注销,以组合2登录用户并重复1-10, 步骤12-以步骤11中的用户身份退出,作为用户使用组合3返回并重复1-10, ...区别: 执行了3个以上的测试用例或30多个步骤(在这种情况下,大约100个) VS 1个测试用例:20步以下
尽管如此,这取决于你的问题类型。 如果它确实是重复的(如示例所示),请尝试尽可能多地循环。
优点是,当你得到一个自动测试框架时,在测试用例中有一个简单的for循环,带有一个数组对象或结构用于输入。 缺点是,它不会像模块化一样(如果出现问题需要额外的30秒才能找到问题,但这是我的看法)。
答案 2 :(得分:0)
无需混淆。您需要为访问权限Vs制作Matrix。用户角色。 例如: - 原始:用户模块(用户权限) 列:用户角色
只需在excel表中标记哪个用户具有哪种类型的权限或访问权限。 您还可以下载一些能够生成此类排列和组合的工具。
您可以从这里下载。
https://testcasegenerator.codeplex.com/
准确地测量permutaiion和组合是greate工具。
答案 3 :(得分:0)
我们已经针对一个大型企业应用程序测试了这些基于角色的测试用例,这些应用程序具有将近38个角色,并且使用思维导图在15-20个以上的网页中可编辑或不可编辑100多个字段。
由于每个角色都有很多工作流程状态,因此需要进行彻底的测试。
添加一个涵盖功能和权限的通用测试用例,并在测试说明中提及以按照设计的思维导图为每个角色执行测试用例。将思维导图附加到测试用例。
我们将测试用例转换为思维导图: Sample MindMap
思维导图有助于将大量数据整合为一种图形形式,从而易于理解测试用例并加快了执行速度。