Priority即是优先级,只要我们提到测试用例基本上都会涉及到,或许应该说是完整的测试用例的一个基本元素。但在现实应用中是否有对测试用例进行划分,是否真正有应用到?未必!相信大部分的同行都会对测试用例进行等级划分,但仍不少同行并未认识到其重要性而没有真正应用起来。
优先级,对此我是感慨良深。春节前一个外包项目测试全面展开,项目还是比较大的,有测试用例接近3000个。拿到最新的测试用例一看,一个汗啊。。。我负责的接近1200个,有10多个是优先级为3的即是传说中的P3,似乎没有P2的,有也就是30个左右,其余全是P1的。一个关于用户名(注册邮箱地址) 的验证如长度,允许输入字符等都设置为P1。更汗的是距离春节放假就6天了,说要春节前完成所有非P3的用例(因为开发在美国,他们没假期……)。期间还不只是执行用例还要首先跟踪BUG。当然结果是推迟完成日期,可能是小学数学老师找他们谈心然后恍然大悟吧。可惜他们数学老师只会计数,不知所谓的优先级。测试效果是可想而知了,我们测试员要完成不可能完成的任务,心理感受是可想而知,效果肯定也打折扣;而开发方面收到的BUG大部分是验证不够完善或是一些较为琐碎的问题,而严重的BUG后面才发掘出来,整个项目进度受到相当大的影响。
或许你会觉得我夸张了,如果不是亲身经历我也难以相信。这是一个十分失败的项目开发测试,而其中一个原因就是没有发挥优先级作用。在软件项目中,我们几乎没有足够的时间来做任何我们需要做的事情,特别是如果测试置于项目边缘的话就更不用谈了。相信同行刚接触测试时都应该听过80/20原理跟测试是不可能穷尽的,也正是因为这样,我们必须对测试用例进行优先级设置。只有对测试用例进行了优先级设置,并在执行测试时根据所处的测试生命周期跟项目进度的需要有所放矢的选择相应的测试用例进行测试,才能有更好的测试效果并保证整个项目的进度。
那测试用例应该有哪些级别呢?没有明确的答案,这要根据项目所处的生命周期跟进度来决定。通常情况下我觉得设置3级已经足够。P1: 即是确保系统基本功能及主要功能的测试用例;P2则是确保系统功能的完善方面的测试用例;P3则是关于用户体验,输入输出的验证及其它较少使用或辅助功能的测试用例。根据所搜集的资料各优先级所占全部测试用例比例通常如下: P130%-45%,P240%-60%, P310%-15%。
不少同行却总觉得不用测试用例一样测试,更不用谈用例优先级。这是非常错误的一个观点,省了那么点时间功夫换来的是更多的付出甚至是低劣的产品。 其实,对测试用例进行优先级的设置是最基本的,也是必须的。这并不是很需要技术或技巧的东西,但一旦很好地应用了它,却可收到丰厚的回报。 当然,对测试用例做了优先级的设置还必须能很方便地筛选出所要测试用例,能快速地筛选出某个模块,某个优先级的用例进行测试,这有赖于选择个好的测试管理工具。