到这里我们已经解决了用例自动生成的两个难点:输入数据、预期数据。如果你是个容易满足的人,那么上面所述的已经够用了。但如果你是个贪得无厌的人,那么肯定还记得我们上面留下的问题:1080个用例,仅仅一个小功能会生成如此多的用例,要是把产品线如此复杂的功能都拿来用那岂不是要把硬盘玩爆?更谈不上执行了。当然不能这么玩,前面我们已经说了,1080个用例里面是有水分的,场景重复的太多,得兽兽身啊!好吧,下面开始我们的减肥之旅。

 

  3、用例瘦身

  根据依赖的传递性,找出对原始数据的依赖:

 

中间对象

被依赖对象

被依赖原始对象

user

nick

nick

ruleCode

user, wwLimitData

nick, wwLimitData

isFrozen

user, wwLimitData

nick, wwLimitData

suspended

user, isFrozen

nick, wwLimitData

punishData

user, punishData, suspended

nick, punishData, wwLimitData

mmpData

user, mmpData

nick, mmpData

  过滤中间过程对象,如isFrozen,子集合并,后,整理出“输出对象”对“原始数据”的依赖关系:

 

输出对象

依赖对象

user, ruleCode, suspended, punishData

nick, wwLimitData, punishData

mmpData

nick, mmpData

  由此可以看出,runCode,suspended的输出跟mmpData无关,同样mmpData的输出跟punishData、wwLimitData也无关。于是我们的用例个数可以由原来的6*6*5*2*3= 1080个,精简为6*6*2+ 6*3= 89个,而且能覆盖所有场景。

  至此,我没什么好说的了。