论“自动化测试能做什么”

来源:互联网 发布:南平网络培训平台 编辑:程序博客网 时间:2024/04/29 17:21

最近在论坛、QQ群里,经常看到有人问:自动化测试能做什么,还有人曾经发消息给我,提出在需求阶段自动化测试能做什么这样的问题。本人并不觉的这样的问题有什么不妥,而且我相信很多人都在为这样的问题而困扰。我从事测试工作的时间也不是很长,做自动化测试也就一年多点的时间,在这里我就结合我的一些体会,和大家一起讨论一下自动化测试的一些问题吧,想到哪儿说到哪儿。欢迎大家交流,如要转载请注明出处:http://blog.csdn.net/wyp_810618。感激不尽

    首先讨论自动化测试能做什么这个问题,要回答它就需要提这个问题的人首先回答另一个问题,那就是你希望自动化测试做什么。自动化测试只是一种测试活动之一,和我们熟悉的功能测试、系统测试没什么区别。我们已经很习惯在功能测试、系统测试、性能测试等测试过程中去定义测试目标、安排测试计划、设计测试方案,自动化测试也一样啊,它也有测试目标、测试计划(脚本开发计划)、设计测试方案等活动。我从来没见过有人问系统测试能做什么,性能测试能做什么的问题,自动化测试也有它擅长的领域,自动化测试并不神秘,我想很多人真正迷惑的地方并不是自动化测试能做什么,他们真实困惑的是我希望自动化测试做什么

扩展一下上面的那个我希望自动化测试做什么的问题,其实这个问题本身就是一个测试需求设计的问题。我希望大家能接受测试需求这个概念,不是只有客户才有需求,我们测试人员也有同样有测试需求,这个需求来源于我们希望改进测试过程、提高测试执行的效率和可靠性,扩大测试的覆盖率。其实功能测试、系统测试、性能测试等都会有测试需求,只是大家可能对这些需求太熟悉,所以反而都忽略了。测试需求就是我们的测试目标,自动化测试的需求就是我们的自动化测试目标,就是我们希望自动化测试做什么。举一个具体的例子,我们有一个软件,有一天测试人员甲反映了一个问题:在每次发版后,都需要验证数据保存的正确,但是这个功能已经开发N年了,比较稳定,可是不测试一遍又总觉的不放心,但是每次测试又耗费了大量的时间,还没有效果,时间长了就厌倦了。OK,我们看到自动化测试的需求已经提出来了,那就是发版后对数据保存功能的验证测试。我们希望能通过自动化测试的方式完成每次发版后的数据保存功能的测试,让测试人员甲可以把精力放在更需要人主观能动性的工作上,这也就回答了“我希望自动化测试能做什么”的问题。

现在我们讨论第二个问题:自动化测试能做什么。当我们明确了自动化测试的目标后,并不是马上着急动手写脚本。为什么呢,因为在我们的工作中,提出自动化测试需求的人往往不是自动化测试工程师,而是手工测试人员。就象上面那个例子中的测试人员甲。测试需求提出后我们不能立刻去实现,而是要对测试需求进行分析,此时关注的重点就是需求的合理性。自动化测试不是阿拉丁神灯,它有人工测试无法比拟的优势,但是它也有自身的局限性。我们需要分析在提出的测试需求中,哪些需求是适合用自动化测试实现的。也许有人问,那到底什么样的需求才是适合用自动化测试实现的呢?对不起,这个问题小马我也无法回答,因为这个问题才宽泛了,要看需求是什么样,所采用的自动化测试框架是什么样的,还要看自动化测试工程师的代码能力。换句话,自动化测试能做什么,与所测试的软件、测试流程、测试人员的技能有很大的关系,当然,这些都取决于一个根本问题,那就是“自动化测试需求”

讨论完这两个问题,我们再来讨论“需求阶段自动化测试能做什么”,对于这个问题,我还是刚才的观点,首先提问题的人你要回答“你希望在需求阶段自动化测试做什么”,这样回答并不是托词,大家想一想,如果我们还不能明确需求阶段我们要做什么工作,就算没有自动化测试,我们的工作也没法开展。所以对于这个问题,我希望大家能拆成几个小问题来回答:第一,需求阶段我们有哪些工作要做?第二、这些工作项中又有哪些是适合用自动化测试来做的?第三,我们用什么样的工具去实现。最后就是去实现它。

说到实现,我们要讨论的第三个问题就来了,那就是如何做自动化测试。这个问题曾经也困扰过我很长时间,到现在很多人也在提这个问题。但是我觉的这个问题同样是一个无法回答的问题,为什么呢,因为这个问题也很宽泛,不是回答了你做完一二三四后,就实现自动化测试了。自动化测试本身也是一个开发过程,它涉及到需求分析、框架设计、脚本开发、运行维护等。如果真要回答如何做自动化测试这个问题,就要分别回答如何做自动化测试需求、如何设计自动化测试框架、如何进行开发测试脚本、如何运行维护等等,哪个问题讨论的话都能写本书出来。我曾经开过一个玩笑,如何自动化测试的问题等同于问如何让航天飞机上天,因为它们都包含了很多的子过程和方法论,而且答案不是唯一的。有人可能会说我故弄玄虚,因为现在很多测试工具都提供了脚本录制功能,自动化测试真的有那么难吗?对于这样的疑问,我也不想多做讨论,我只提出一个针锋相对的问题:使用自动化测试工具等于自动化测试吗?

刚才讨论了三个问题,但是还有很多问题没有讨论。自动化测试是一个博大精深的领域,着实令人着迷。希望刚才小马的一些想法能对大家有所帮助,那样的话也不枉我打这么多字了,呵呵。

原创粉丝点击