工作过程中遇到一个比较复杂的需求
工作过程中遇到一个比较复杂的需求,中间涉及到的状态改变非常的多,大家如果有兴趣的话可以一起来想一下。聊天规则:(1)A向B发出聊天邀请,B同意后,A和B进入聊天房间;(2)如果A已经在聊天房间中,则无论B是否在聊天房间中,B都进入A所在的聊天房间;(3)如果A不在聊天房间,B在聊天房间,则A进入B所在的聊天房间;(4)如果A和B都不在聊天房间中,则创建一个新的聊天房间,A和B都进入这个房间;(5)一个房间最多5个人聊天;(6)房间中的每个人都随时可以退出聊天。请根据以上设计写出测试需求,需要列举出所有进入/退出聊天流程的情况都
[ 本帖最后由 cm0214 于 2009-1-19 14:33 编辑 ] 这个倒不是很复杂。
A在,B在,A邀请,B先退出,看A所在的聊天房间是否满人,B同意,进入聊天房间(具体判断聊天房间是否满人是在A邀请之前还是B同意之后就要看具体程序了,同下)
A在,B不在,A邀请,看A所在的聊天房间是否满人 ,B同意,进入聊天房间
A不在,B在,A邀请,B先退出,和A进入一个新的聊天房间
A不在,B不在,一起进入新的聊天房间 谢谢你的回答,但是不知你有没有考虑过这样的情况:
1、A在,B不在,A邀请,B同意时,A已退出聊天
2、A不在,B在或不在,A邀请,B同意时,A加入了另一个聊天
其实还有其它情况的,不如再多想一想?
[ 本帖最后由 cm0214 于 2009-1-17 14:47 编辑 ] 这个就要看题意了。
题中聊天规则有个“如果A已经在聊天房间中,则B进入A所在的聊天房间”(2),就看这句话你怎么来理解。
我所说的,就是A不管在不在,他在邀请B之后自己的状态就不再变了
你补充的,是A的状态变了。
有你的补充就更全面了,当时看了条件(2)就没考虑这个了。
呵呵:)
欢迎更多的朋友一起来讨论下这个问题。 嗯,你说的也有道理,不过不知你有没有注意到我最后一个条件:房间中的每个人都随时可以退出聊天。
这里其实暗示了A在邀请的过程中也可以退出房间。
另外,A在等待B答复的过程中是否也可以邀请第三个、第四个人呢? 随便聊聊,分析下需求
(1)A向B发出聊天邀请,B同意后,A和B进入聊天房间;
感觉这句话只是一个功能描述,作为需求的开头还行,作为需求的规则还很不明确。关于结果,A-B到底进入哪个聊天房间?有以下几种可能性
1. A不在房间,B不在房间 (4)如果A不在聊天房间中,则创建一个新的聊天房间,A和B都进入这个房间;
2. A在房间,B在房间 (2)如果A已经在聊天房间中,则B进入A所在的聊天房间;
3. A在房间,B不在房间 (3)如果A(B)不在聊天房间,B(A)在聊天房间,则A(B)进入B(A)所在的聊天房间;
4. A不在房间,B在房间 (3)如果A不在聊天房间,B在聊天房间,则A进入B所在的聊天房间;
很明显,(4)需求和(3)需求存在互斥,需要先排除B在房间的情况。所以需求(4)的情况需要明确说明B的状态是:B也不在房间的情况。否则规则(3)和规则(4)是先使用哪个?
接下来,对需求规则进行优化,规则3和规则4实际上是一致的。只不过角色变换了下。可以考虑进行合并。
关于规则(5)和规则(6),这里没什么好说了。只是可能要补充下需求:
当B在房间X的时候,要进入Y房间,必须先退出房间X,再进入房间Y。是否可以进一步优化程序流程? 这个东西我觉得大家可以用Excel先用列表示可变因子
每列的值下拉值做上可能的取值
然后去排列组合
这样确保条件组合的不遗漏
复杂的逻辑组合,尽量不要这样一上来文本的铺开去想
Archonwang
不好意思,是我的疏忽,改了一下描述我的用例设计,望高人指正!
0:表示不在房间;1:表示1号房间;2:表示2号房间;3:表示新建房间;n:表示房间人数因为,A邀请B <=> B邀请A,所以只需写出A邀请B的测试用例即可
A=0,B=0A=B=3 //A,B均不在房间时,A邀请B则A,B均进入新建的3号房间
A=1,B=1A=B=1 //A,B同时在1号房间,则A,B状态不变
A=1,B=0
if n<=5 thenA=B=1 n++ //A在1号房间,B不在房间,并且1号房间人数少于等于5时A状态不变,B进 入1号房间,1号房间人数增1
elseA=1,B=0 //否则A,B状态不变
A=1,B=2
if n<=5 thenA=B=1 n++//A在1号房间,B在2号房间,并且1号房间人数少于等于5时A状态不变,B进入1号房间,1号房间人数增1,2号房间人数减1
elseA=1,B=2 //否则A,B状态不变
A=0,B=1A=B=3//A不在房间,B在1号房间,A邀请B则B退出1号房间,A,B均进入新建的3号房间 唉,比较失望 难道大家在论坛讨论的就是这些个问题么????
页:
[1]