说到回归测试用例,先说什么是回归测试。顾名思义,回归测试就是修改完bug之后对程序的新的一轮测试,据微软的统计,按照他们的经验,一般开发人员解决3~4个bug会衍生出一个新的bug,这就是必须作回归测试的原因。简单的说,就是检测一下解决了bug之后有没有带进新的问题,以免把聋子给治成哑巴,就得不偿失了~~
一般的软件测试的流程是后期快速迭代的,bug在后期是快速收敛的,debug和测试的周期也是越来越短,频率是越来越高,譬如说第一轮测试需要花上10天跑用例,那么到后期就没那么长的时间,可能就是1~2天的测试时间,在后期有时候一天就有一个新的版本,这时候就要求测试人员能快速的进行一轮回归测试。
一般来说,覆盖越高,风险越低,但是效率就越差,反之亦然。所以如果时间允许的话,能把所有的用例都再跑一边是最好不过的,但是一般不会有那么多的时间,这就需要在效率和覆盖之间有一个适当的平衡,选择其中一部分测试用例用来作回归测试。
选择回归测试的时候,首先要确定的是,回归测试用例的比例,这个要根据时间情况了,100%是最好了,我个人一般这个比例在60%左右。然后要确定回归测试用例的优先级。根据我的经验,一般有如下必须回归的用例:
第一,新修改的功能,这个显然是重点
第二,新修改的功能的关联功能,就是有耦合的部分,这个一般最好咨询一下开发人员
第三,程序最有卖点或者说亮点的部分,这个地方一旦有问题,会使程序质量大打折扣
第四,程序中最致命的部分,譬如说安全隐患,数据泄露,加密注册,
第五,程序中比较脆弱的部分,这个要咨询开发人员,一般就是他们心中最没底的地方
第六,程序的主干功能
第七,如果以上做完,还有时间的话,最好把用例中级别比较高的用例再执行一遍。
OK ,以上是回归测试用例的选择优先级。
其实,即使这样做,还是有风险的。最根本的解决方法是自动化测试工具加上手工测试。具体就是常用的程序主干功能,主要功能,用自动化测试,保证每一个版本都能够执行一遍,其他修改频繁的小功能手工测试了。
说了这么多,好像比较乱,总结一下。
个人觉得解决这个回归测试的终极解决方案是:
a.作每日构建
b.基线功能自动化
c.编写用例时一定要分级(按照风险度,常用度,重要度)
d.手工执行回归测试用例(就是我上面说的7项)