前几日,一位新加入测试行业的同仁发邮件给我,问一些关于如何做测试,是否要学习测试工具,及ASP.NET如何测试之类的问题, 我在邮件里面回复了这些问题自己的一些看法,欢迎大家拍砖。

  邮件内容如下:

  hi,

  不好意思,本前天应该回你邮件的,可是因为近事情确实太多,望见谅。

  回到你说到的问题:

  1、你有过开发经验,这点非常好!我也比较注重测试人员的技术能力,有技术能力的测试人员会走的更好,我所在的公司对于测试内部有一种叫做测试开发的岗位,这个岗位的技术要求和开发人员是一样的。

  2、对于刚开始做测试的人员来说,学习一种工具还是比较靠谱的选择,原因如下:

    1)测试工具做了很多包装,能让你快速的上手测试。

    2)测试工具很教会你很多正确的测试方法和测试思路。

    3)测试工具可以很快的让你在项目里产生效益。

  3、测试用例的设计是一个测试人员必备的能力,要有比较好的测试用例的设计能力,不是段时间内能掌握的,很多新人刚开始在这点上做的不够很好,虽然网上或者其它地方有很多的方法,但大多的效果不理想,秘诀:熟悉、理解项目的技术原理和业务逻辑是为根本的。   如果对项目的技术原理和业务逻辑了然于胸,那尽然能够设计出高质量的测试用例。

  4、在熟练掌握完一种测试工具的时候,你的测试才算刚刚开始,测试工具不是大家心里认为的God,认为精通一个工具能走遍天下,这只能是痴人说梦。  因为测试工具是面向所有问题的“通用”解决方案,但一个东西越是想“通用”,结果只能是越不“通用”, 这里需要测试人员自己写测试工具了,针对项目的特性写出有针对性的测试工具,才能测试的够全面和深入。

  5、在建立测试流程方面有以下几个建议:

    1) 所有的流程都是为了目的产生的,可以随时更改、新增、删除,不要让流程阻碍了效率。

    2) 测试处于下游的位置,所以很多流程都比较受限,要想让上游的开发人员或者其它人员配合你,这是一个长期又艰苦的事情,需要你做成绩让别人信服这样做是有好处的,这也是别人对你的一种信任。

    3)其它的流程可参考书本或者论坛等,大同小异。

  6、在使用测试工具的时候,也是大家常说的自动化测试,在做这部分时候的情况一定要把握好节奏,要不然会死在自动化测试上面。在项目的周期里,自动化测试什么时候介入?做那一部分都要把握好,否则是吃力不计好。(详细的我可以下次在对这个问题做一些详细的说明)

  7、对于你提到的针对 ASP.NET 的测试规范,我这里还真没有。 不过我个人觉得不存在这种针对XXX的测试规范这种说法,所有的测试的动机都只来源于两个方面 技术原理 和业务逻辑 ,如:十分了解网络通信协议,那会很容易会想到产品在通信过程里可能会产生什么问题,什么地方设计或者实现的是不是合理,其它的同理。 所以我十分推崇的一点是对 技术原理 和业务逻辑 要做到心里有数,这样什么事情都水到渠成,不要对那些江湖上流传的“XX秘术”所左右,那些只共参考而已。

  8、对于当下你要如何测试,取决于很多原因,你的资源是有多少,决定了你能做多少事情,详细的是你有多少人,多少时间,这决定了你能做多少的测试,这是一个十分大的话题,大的方向是:先保证功能有效,再保证用户交互是否友好(现在的产品,用户交互非常重要,当然不同的行业的项目很有差别,这只是我的个人经历)再保证性能,再产生安全性等等。

  9、手段不重要:如何去测试不重要,重要的是你得到了正确的结论,那怕你每次手工去保证功能的正确也没有问题,这不会比用自动化来保证功能的人差。这只是取决到成本和收益的比例。

  10、不要有测试人员不受重视的心理,不重要测试的人,那是因为他们无知,测试人员不能被别人认可,这是测试人员的无能。共勉。。。

  先这样吧,这会只想到了这些,如果有说错的地方只当参考。