自动化测试基本策略(3)

发表于:2015-02-10来源:uml.org.cn作者:lusmilings点击数: 标签:自动化测试
很多公司都是将自动化测试和功能测试划分成两个不同的team,自动化测试team的同事实现自动化测试工具的开发,功能测试team的同事向自动化测试team的同

  很多公司都是将自动化测试和功能测试划分成两个不同的team,自动化测试team的同事实现自动化测试工具的开发,功能测试team的同事向自动化测试team的同事提需求,自动化测试team的同事编写代码实现自动化测试工具的功能后提交给功能测试team的同事使用,这是当前非常常见的自动化测试的模式,毕竟每个人都有自己擅长的技能,某个人也不可能面面俱到,通过这样的一种方式可能使自动化测试的门槛变得更低一些。自动化测试工具的开发和自动化测试的使用的确是可以由不同的角色去承担,不过作为自动化架构设计的人员,应该是对系统的功能或需求非常熟悉,同时具有良好的设计和开发能力,才可以设计出适合测试系统的自动化测试架构,否则开发出来的自动化测试工具就只是简单的一个工具,某种程度上会增加维护的成本。

  漂亮的自动化测试架构的设计是一个渐进的过程,但这个渐进是基于对功能熟悉的基础上,全盘考虑之后一点一点的搭建起来的。

  3.2 自动化测试工具的选择

  很多测试的同行或以前的老同事都会问,你们用什么自动化测试工具?几年前入门测试时跟着老前辈写自动化测试工具,后来因为兴趣偶尔玩一下当时流行的自动化测试工具,再到现在毫无选择工具的余地设计自动化测试架构,越来越发觉自动化测试工具真的没有那么的重要。工具始终是工具,思想和架构才是自动化测试的核心,同样的工具不同的人使用会出现完全不一样的结果,而且,不管是什么样的自动化测试工具,原理都有异曲同工之处。所以,不需要把工具看得那么重要,而是把怎样使用工具,怎样利用工具为你服务放在首位。也就是你的思想位于工具之上。

  但是,是不是这就意味着测试工具一点也不重要呢?当然不是,遇上不稳定或不友好的测试工具,可能会浪费大量的时间在调试工具上,也可能会出现因为工具不稳定导致测试结果的不可信任,那么自动化测试不是提高测试效率反而是阻碍了测试的进度了。

  关于工具的选择或开发,基本的原则为:1)首先,能够满足项目的需求,容易扩展,可以满足系统任何重要功能的自动化测试;2)其次,友好易用,容易上手,为测试人员提供较为低的门槛;3)当然最重要的是它的稳定性,是否不需要人工干预就能稳定地批量运行所有的自动化测试脚本,并且能够产出准确的测试报告;4)最后,还有一点就是它的性价比是否值得,免费的软件对公司来说当然是最好:)

  市场上有很多测试工具,在这些测试工具中,puretest是一个性价比很高的自动化测试工具。它容易入门,易于扩展,使用简单,运行稳定,基本上可以满足任何包括GUI、协议和业务逻辑的测试。

  3.3 自动化测试架构设计

  自动化测试架构的设计是整个自动化测试的灵魂核心,它的好坏关系到自动化测试的成败。从系统的基本功能入手,设计自动测试架构,这是软件测试的关键一步。架构的好与坏很重要,它影响到系统的扩展、维护和使用,如果想要系统容易扩展和维护,一定要多花心思在设计上。很多同行问我使用什么测试工具,我会告诉他们,用什么测试工具其实并不那么重要,不同的人使用同样的测试工具,会做出效果完全不一样的自动化测试,那是因为他们的架构不同,设计比工具重要得多。

  怎样的自动化测试架构才算是一个好的架构?首先是容易扩展,能够满足现在的功能需求,也能满足以后需要测试的功能的需求。第二,容易维护,当业务流程、接口或页面变动的时候,只需要做一些简单的修改就可以实现。第三,可读性强,别人能够容易读懂和接手维护。第四,容易使用,项目组的其他人想要使用的时候能够简单地搭建和运行。第五,有统一的编码规范、存储规范和编写风格。第六,方便调试,当脚本运行出现问题的时候,可以方便跟踪问题产生的根源。第七,结构清晰,测试用例与测试工具和代码分离。最后,是最重要的一点,是脚本具有很高的可信性以及自动运行的稳定性。

  在设计架构之前,首先要熟悉测试系统以及这个测试系统需要测试的功能有哪些类型,每种测试类型在测试架构中是否都可以满足。在设计架构时,可以选择覆盖系统基本功能的smoke test测试用例来做基本的测试用例,在实现这些基本的测试用例的自动化测试过程中,对架构进行完善。基本的自动化测试框架实现之后,再回顾一下是否测试系统中需要实现自动化的测试用例,测试架构都可以满足需求,如果不可以满足则需要继续做进一步的开发,如果测试架构可以满足需求,接下来可以让其他的同事使用,收集改进的建议对测试架构进行完善和改进。好的测试架构,是要使用的人觉得舒服。

原文转自:http://www.uml.org.cn/Test/201005042.asp