|
我想说一说自己关于B/S结构软件的想法,希望大家多批评。
对于B/S结构都有一个共同的特点,就是用户、身份、角色和权限的问题。
我对这四个概念我也是思考了很久,根据我想的东西说一下:
首先看下面几个例子:
用户→身份→角色→权限
把这些概念赋予一个部队的某个班
张三→士兵→炮兵→打炮
李四→士兵→炮兵→装蛋(装弹)
王五→班长→炮兵→指挥打炮、装弹、打炮
赵六→士兵→伙房师傅→给炮兵做饭
以上的例子是存在于某个炮兵班的系统当中,每个用户都有自己的身份和角色,身份和角色决定了他的权限。
用户:进入到系统当中操作的所有人,或者说是虚拟的人。在系统中我们假设每个人只有一个用户名和密码,那么我们每个人在系统中都是一个单独的用户。当然有的时候有一个人有很多用户名和密码,那么他可能在系统中扮演多个身份和角色,不过在他以某个用户名进入系统后我们仍然认为他是一个独立的人。就像一个人既可以是教师又可以是奥运志愿者一样,在社会上身份和角色和可以做的事,但是在某个特定的环境中他的身份角色是唯一的。
身份:指在大环境下的具有某个或某些特定功能的群体。所谓大环境就是在整个系统中对一个用户的定义,这里主要是具有最高权限的系统管理员、管理员和非管理员,有时候管理员可能还分很多种。身份在大环境中一般来说是相对稳定的。这种身份最典型的就是论坛中,每个版都有自己的斑竹,可以是一个也可以是多个,整个论坛还有权限最高的管理员,其他的用户则为非管理员。以上例子中,在这个炮兵班的身份主要是班长和士兵,即简单的系统管理员和非管理员,如果是排就有普通管理员这个身份存在了。
角色:只在小环境中或特定环境中一个用户或多个用户指定的身份类型。这个是动态的,也可以说是经常变动的。像演戏一样,演员是一个用户的身份,但是角色却是随着戏的不同经常发生着变化的。在B/S结构系统中经常会存在VIP用户,注册用户,高级用户,普通用户,游客等的角色,他们做能做的东西其实都是非关系管理类的。那么我们说以上的称呼就是他们的角色,在论坛中这种情况更加的典型。很多网站积分达到多少或者交了多少多少的钱就会被系统允许做什么什么样的操作,其实就是在做角色的改变。以上例子中炮兵就可以分为(我不懂,瞎说的)装弹员,点火员,擦跑员,运炮车司机等。他们在一次打炮的操作中所做的工作是完全不一样的,只有一个是确定的,他们只能在某一环节中起到作用,却不能从全局进行操控。
权限:所谓权限就是权力和限制,说白了就是你能在系统中做哪些操作。每个系统都是若干功能,也可以说成是有若干个权限,每种操作无论是针对系统的还是系统中某个部分的都会根据身份和角色不同赋予某一个或某一些用户。所以权限一般不会被一个用户所拥有,在以上的例子中可以看到,不只一个角色可以打炮,也不只一个角色可以装弹,所以权限有的时候是可以交叉使用的。
ok 四个概念终于说完了(感觉都是废话) 很明显了 我们的系统由这些元素组成 那么他们是怎么工作的呢? 流程
做测试的人都知道测试有流程,bug处理有流程,其实每个系统都有自己的操作流程。对于上面的例子,我认为简单流程应该如下:
把炮的各个部分装上运炮车→将运炮车开到目的地→卸炮→组装大炮→调试→校对→装弹→准备→开炮→收炮→卸炮→将炮零件装上车→将运炮车开回营地→保养炮和炮车→收入仓库
其实中间有很多步骤是要加如判断的,如果判断否回到前面的某个步骤重新开始。
很明显了,我不想解释例子中某个身份或者角色在这个流程中的某个环节用了什么权限发挥了什么样的作用大家也应该都很清楚明了了。
个人认为做B/S测试主功能测试的时候路线应该是这样的:
1.测试每个权限是否正确。
2.多个权限在一起时是否发生功能性错误。
3.测试权限赋予角色后是否正确
4.角色所具备的权限是否正确,是否有缺少或存在不该有的权限。
5.在特定身份的情况下角色所具有的权限会发生什么样的改变。
6.当发生角色交叉,就是一个身份可以扮演多个角色的时候发生权限交叉会不会有错误。
7.在流程中测试权限的功能是否有问题(这里一定保证覆盖流程的所有分支)。
8.当流程发生中断的处理。
当然这种测试有时也会出现问题,就是在B/S结构中有时候会有在任何情况都可以做的操作。比如查看,查询,排序类的操作,所以这一类操作要单独进行测试。
我是测试新人,刚刚培训结束,以上都是自己想出来的,从来没在大项目是实践过,如果有错误请指出,谢谢哥哥姐姐们的支持。 |
|