一个测试菜鸟的X项目总结

2011-12-29  邓智群 

X项目的测试工作到今天算是全部结束了,除了后期维护必要的一些回归测试和用户使用手册的撰写外,整个测试阶段告一段落。

  从10月底进入项目,在测试经理的帮助下开始学着写项目测试文档,到根据文档的每日功能测试及回归测试,再到整个项目进行迭代后对测试文档的重新架构及整体回归测试,直至最后的统一交付测试,我个人提交总BUG数为244个。

  在这244个BUG的提交和回归过程中,在测试文档的写作及修订中,我对整个项目的逻辑及架构逐步清晰,对项目之间所需的复杂交互的认识也越发深入,对项目功能逻辑上的测试如何进行也更加明晰。

  下面我简单谈谈对项目的认识、经验和教训,以及对未来改进的一些建议!

  一、对项目的认识

  进入这个项目是在今年十月底,当时测试经理和C已经把Setting(当时是Admin)部分的测试结束了,所以我直接开始接着D的测试文档继续往下写(当时是从Revenue的Report部分开始,即现在的Report模块)。因为跳过了逻辑部分,所以对整个项目逻辑理解很不够,开始写的测试文档也非常浅显,就是描述了一下页面布局。这里我的感觉是,测试人员进入项目初期,项目经理有必要指派专门人员与测试人员沟通,帮助其理清整个项目的顺序逻辑。当时C简单地跟我介绍了一下整个项目,我的感觉是沟通不够,对逻辑理解比较欠缺。

  Report部分写完,就直接开始测试——用自己刚写完的文档进行测试,效果显然不够理想。因为测试人员刚进行该模块测试文档的编撰,再让他对该模块进行测试,这样做的一个后果就是,测试人员会先入为主地觉得自己不需要按部就班地照着文档进行测试(因为文档就是自己写的)。还有一个很大的问题就是,倘若测试人员在文档撰写上存在严重漏洞的话,他在测试时仍然不可能发现自己的漏洞所在。所以我建议测试文档撰写人员与测试人员最好不要是同一个人,这样有助于发现测试文档构建的漏洞。

  测试完Report后,紧接着开始进行Expense模块测试文档的撰写。这时我开始接触到一些逻辑,即Expense与Setting部分联系的逻辑。这时遇到的问题最多最杂,随时随地都需要与C,甚至项目经理进行沟通。由于之前对主功能(Setting部分)的不熟悉,这种一边沟通一边撰写的测试文档可以说是漏洞百出。由于项目时间也比较紧,我需要在一周内完成整个Expense模块的测试文档,所以最终完成的文档很不理想。这里我觉得还是之前沟通不到位的问题,应该有一个对整个项目非常熟悉的人来帮助测试人员理清整个项目逻辑再进行测试文档撰写,而不是一开始就撰写测试文档。

  接着就是根据自己撰写的Expense文档对Expense模块进行测试,效果也不够理想。这里我还有一个建议就是,如果测试人员在初始进入项目时没有得到及时沟通,至少需要给他一周时间先对主功能(即Setting部分)进行完整测试,对照需求手册及主功能发现的BUG,对主功能进行深入理解。

  Expense测试完成后,开始对整个项目进行回归测试。在这个过程中,我逐渐理清了整个项目的逻辑,也开始试图修改以前的文档。但由于文档量太大,文档结构不够清晰,时间也比较紧,修改难于进行。大部分原因是我经验不足造成的,之前撰写测试文档时,思路过于混乱,想到哪里写到哪里,导致最后文档难于维护和修改。

  回归测试结束后,整个系统逻辑已经比较清晰。这时项目进行新一轮的迭代,用户需求改了很多,其中包括增加、修改大量功能、名称,以及对整个系统结构进行重构。这对测试文档而言改动点非常多(包括结构顺序改变、测试编号订正、功能模块名称修改等),而且需求文档并未因此变化,造成最后测试文档与需求文档的不匹配。这是一个协调的过程,系统迭代后,需求文档应及时随着系统进行修改。

  迭代开发过程中,测试基本上是项目改到哪就测到哪,这里面最大的问题不是发现修改模块的BUG,而是发现修改该模块后牵涉到的其它模块出现的BUG。这种连带BUG的产生可以说是防不胜防,让测试人员苦恼不已。到现在我也没想出解决办法,只能说对模块之间的联系及交互逻辑理解仍需加深。

  迭代开发后期,开始对整个系统从头回归一遍,这时候又发现了许多以前从未出现的BUG。这个时期大家都很烦躁困惑,曾经运转良好的页面,突然出现存储问题;曾经更新正常的功能,突然无法更新;曾经显示正常的Excel,突然显示错误……这些都让人苦恼,当然,这些应该都是正常现象。测试人员在测试后期尤其需要提高警惕,不能漏过任何一个功能点,更不能忽略任何一次貌似无用的查询、翻页、按键。

  这段时间我们开了几个会,会上我提出希望得到开发人员的支持,让每个开发人员将自己负责的模块所对应的测试文档Review一下,这个观点得到大家的支持,也定下Review的时间,但后面由于项目进度越来越紧,加上BUG太多,终于不了了之——现在想来,这是整个项目最不该漏掉的一块!希望在未来的项目中,无论任务量再大,时间再紧,开发人员也应该抽出一部分时间Review一遍自己模块所对应的测试文档,确保测试覆盖率!

  最后,是大家一起进行的交付测试,人员包括了所有的编程人员及测试人员。这期间,除了对基本功能的回归测试外,还包括了并发测试及性能测试(这主要是编程人员在做),除此之外,我将过去提交修正过的所有BUG重新验证了一遍。在并发测试中,我们发现了很多之前单人测试难以发现的并发问题(包括多人一起提交,一起选择,一起修改等等),并发问题可以说层出不穷,甚至包括了同一台电脑打开两个页面分别进行修改的问题(由于我从一开始就是打开两个页面来测,一个为用户本人,一个为该用户代理人delegator,所以有些问题在早期已经暴露),这是测试中的一个重点,也是比较严重的漏洞,需要在以后多加留意。

  在验证过去修正过的BUG时,仍然发现不少问题,有些是BUG本身的问题,有些是BUG附带问题,还有很多验证时联想到的问题。这一验证过程效果非常明显,所以我建议在项目末期有必要将过去修正的BUG重新认真验证一遍,可以在短时间内收到奇效。

  至此,整个项目的测试算是告一段落。用户过来测试后提出一些BUG,经过分析,绝大部分属于用户的一些想法,与测试漏洞无关,整个测试算是圆满结束。

二、经验和教训

  这个项目是我接手的第一个项目,也是一个理论联系实际的过程,回想起来,收获颇丰。

  经验主要如下:

  1、学会如何将书中的理论与实践相结合;

  2、学会如何根据项目Demo及需求文档撰写测试文档;

  3、学会如何根据项目变更修改测试文档;

  4、学会如何用英文撰写文档,提交,验证问题;

  5、学会如何理清项目逻辑,如何更深入地撰写文档并进行测试;

  6、学会如何与编程人员沟通交流,获得解答,以便正确提交BUG;

  教训如下:

  1、撰写测试文档前没有理清业务逻辑,导致前期测试深度不够;

  2、撰写测试文档时结构不清晰,导致后期难以维护和修改;

  3、测试过程中心态有些浮躁,有些急于求成;

  4、还没有形成测试思维,测试过程思维显得有些混乱;

  5、对BUG轻重缓急界定不够,导致有时测试难以继续进行(对一些影响进度的低级别BUG优先级定得太低);

  三、对未来改进的一些建议

  经过这次完整的项目测试,学到了很多,也发现了很多问题。对于未来项目的测试,我如下几个不太成熟的建议:

  1、在测试之前项目经理有必要对测试人员进行项目培训,让测试人员对整个项目心中有数,在撰写测试文档时有的放矢;

  2、在测试文档撰写之前需要定义一个撰写规范和标准,大家按照同一个标准撰写,有利于日后文档的维护;

  3、同一个项目功能测试至少应有两人,可以交叉编写模块测试文档,交叉检查文档,交叉进行回归测试,交叉验证BUG,这样有利于避免单人测试考虑不足的漏洞,也能产生更多新的想法,还能相互督促完善文档,提高测试进度;

  4、从一开始就高度重视并发问题,并发问题暴露得越早越易于修改;

  5、希望在未来的项目中,无论任务量再大,时间再紧,开发人员也应该抽出一部分时间Review一遍自己模块所对应的测试文档,确保测试覆盖率!这对项目质量而言至关重要;

  6、项目后期除了不留死角、轮番地扫遍每一个角落(多人协作)外,还需要将过去所有解决的BUG全部验证一遍,会发现不少难以预见的BUG;

  7、对于本项目,目前还有32个延迟(Pending)的BUG,里面大部分为性能和并发问题,还有一些光标、排序及空数据遗留问题,这些看似无关紧要或暂时难以解决的问题都是未来亟需解决的关键所在;、

 

转自51testing

463°/4599 人阅读/4 条评论 发表评论

赵云峰  2012-01-04

这总结是给公司的么? 总结的不赖啊....


朱俊英  2012-01-08

总结的不错


王艺  2012-01-09

佩服的五体投地,然后看到“转自......"


杨惠花  2012-01-12

额。。。看到转自。。。要是自己写的那就更好了


登录 后发表评论