记录成长,品味人生

发布新日志

  • 提高测试执行效率的几种方法

    2007-11-30 18:05:29

    在软件测试过程当中,测试用例执行是其中一个很重要的环节,也最耗费资源、时间。对于公司来说,如果测试时间过长,不利于产品抢占市场,所以会尽量缩短测试的时间,也就是缩短测试执行的时间。在这样一种软件质量要求高,测试时间又比较短的情况下,当然项目组给每个测试人员所分配的任务都会很多,也都会很急,并且限定在某个时间内一定要完成,否则给予相应的处罚。测试人员在这个时候不能为了赶进度而盲目地加班加点,这样常事倍功半,我们应该采取一些好的测试执行策略,又快又好的完成任务,比如:

    1、计划每周每日需要执行的用例数。

    做任何一件事情,都需要有计划,做到心中有数才行,测试用例执行也是如此。很多时候我们都是埋着头在执行着测试用例,等到测试阶段都快要结束了,我们却发现自己还有大部分的用例没有执行。这个时候没有别的办法,只好都PASS,可是这样的软件版本你敢发吗?人都是有惰性的,给自己定下每天的任务约束自己,这样测试工作才能完成的好,否则测试到哪是哪,什么时候是头,连你自己也不知道。

    2、有策略地执行用例,不为了执行而执行用例。

    我们的测试常常有好几轮,许多测试人员共同测试一个功能模块,那么上一轮测试完了,下一轮又该如此测试呢?还是按照测试用例走,全部执行?不应该是这样的,这样太浪费时间和精力了。我们可以跟前一轮的测试人员沟通哪一块他们测试的比较细,哪一块没怎么充分测试,相应的我们就可以有选择的进行测试。当然,测试的比较细的部分我们还是要粗略地过一下的。

    3、及时并准确地填写用例的状态。

    很多测试人员在执行用例的时候不及时标注用例的状态,比如是否执行过,是否PASS,等到几个星期后回头再看,自己也不清楚是否执行过了,出于稳妥的考虑,于是又重新测试了一遍,耗时又耗力。所以,不管你是用专业的测试管理工具,还是用WORD文档,你都需要在测试执行完成后及时地标志用例的状态,否则,你的老大问你,“这个用例你测过了没有?”,你怎么回答?

    4、建立并保留测试环境。

    在测试过程中,实际上很多时候操作只占用很少的一部分时间,大部分时间我们都用来搭建各种不同的、复杂的测试环境,与此同时,设备又常常不足,所以建立并保留一个稳定的、共享的测试环境是很有必要的。

    除此之外,我们也需要备份一些常用的数据,比如系统配置数据,以方便到时直接恢复。

    5、编写功能配置/操作文档。

    有些功能,比如很难配置的功能,最好在配置成功后留下文档,以备后来参考。当你下次再次测试该功能的时候,就可以相应的减少配置时间,即使是其他人而不是你来测试这个功能,文档也可以指引着他们少走点弯路,何乐而不为?

    6、及时修订测试用例,以免误导。

    软件不是不变的,它处于不断的变更当中,所以测试用例也不是一成不变的,需要随时更新。如果我们在软件已经改变时仍使用以前错误的用例,没有及时修订,将对测试人员产生一个误导的作用,这样将增加无用的思考和沟通时间。

    7、不要让开发人员过长地占用你的测试机器。

    开发人员常常在测试人员的机器上直接调试程序,这样是可以的,但是如果你只有一台测试机器,那么占用时间就不能过长,如果过长,你的测试时间就无法保证了。所以在适当的时候,你需要让开发人员让出测试机器。

    8、减少测试外的工作。

    软件测试人员的工作并不仅仅只是测试,还有许多其它的事情,比如文档评审、技术支持和其它各种会议,它们占用了大量的时间。没有办法,这些事情是非做不可的,只能靠项目经理或者测试经理尽量减少这种活动了。

    9、适当地引入测试工具。

    有些测试,比如回归测试、性能测试,靠手工执行很麻烦,费力又不讨好,适当地引入测试工具,如WinRunner,可以有效地解决问题。

  • 测试人员需要会编程吗?

    2007-11-30 12:27:21

        测试人员需要会编程吗?这是一个争论不休的话题,有人说不需要,因为测试只需要关注软件的外部功能表现;也有人说需要,因为编程知识可以帮助我们更好地测试软件。对我来说,我会回答需要,其原因有三:

        1、会编程使我们更容易理解BUG是如何产生的,从而帮助我们找到更多的BUG

    代码是软件的基础,软件是由代码一点一点的叠起来的,而代码则是由开发人员编程编出来的。在实际测试过程中,我们发现的BUG80%以上都是编码阶段引入的,其它阶段如需求阶段、系统设计阶段和详细设计阶段引入的BUG则相对较少,所以了解在编程实现阶段为什么BUG会比较多的原因是很有必要的,而这需要相应的编程知识与技能。

    我们常常仅仅是为了提交BUG而提交BUG,很少去问为什么这个BUG会产生,又是怎样解决的,我们是“知其然不知其所以然”。我们常辩解说我们只是负责提交BUG,至于其它的事情我们不需要管。其实这种说法也没错,但是如果为了对软件有更深的了解,多找出软件的BUG,那么我们就得多了解编程、多了解BUG产生的原因。其实有时产生BUG的原因很简单,可能是开发人员笔误,错把“=”与“==”混淆;可能是开发人员没有对某种情况进行判断,从而导致错误;也可能是开发人员没有考虑到不同平台下函数的适应性。。。。。。

    天下的乌鸦一般黑,天下的程序员所犯的错误也是差不多的,所以我们测试人员最好是以测试的思维、辅助开发的技能来测试软件,对症下药,则药到病除。

    2、使用自动化工具执行性能测试和回归测试时需要我们会编程。

    大家也许都使用过WinRunnerLoadRunnerWAS或者类似的自动化测试工具来执行过回归和性能测试,因为如果手动去做这些测试实在太麻烦,再者,也找不到那么多机器呀。大家觉得使用起来难吗?也许大家会说,有什么呀,不就是录制/回放吗?很简单,录制一下不就行了!但如果软件界面变化、环境也改变了,还能再回放吗?如果操作步骤复杂,常会出现异常情况怎么办,如何处理以便让工具继续执行?如果要完成复杂的测试及验证,不会使用工具附带的函数库怎么办?当测试执行不下去,不会调试又怎么办?不断地重复录制/录制吗?

    以上的种种情况都需要我们会编程,从而更好的使用测试工具为我们的测试服务,否则我们将一筹莫展。

    3、测试职业的发展需要我们会编程。

    听说微软有两种测试人员,一是测试工程师,一是测试开发工程师。测试工程师就如我们现在所做的工作差不多,执行测试,编写报告之类,而测试开发工程师除了做测试工程师的工作之外,还需要写很多代码,包括测试工具,自动化测试脚本等等。在微软,基本上测试开发工程师和开发工程师是划等号的。

    作为非计算机专业的我来说,我不太想做软件开发,但是我想做测试开发工程师,至少可以做单元测试。现在的绝大多数测试人员都是在执行黑盒测试,而白盒测试则基本上是由开发人员来做的。不能说黑盒测试的技术含量不高,但我认为白盒测试的技术含量更高,可以从更底层的角度来测试软件。从事测试代码的编写、测试工具的编写、自动化测试脚本的开发,对我来说是一种挑战,也是一种激励,对技能的提高,职业的发展很重要。

Open Toolbar