软件测试自动化的探索与管理(十三)

发表于:2011-6-01 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lyscser    来源:51Testing软件测试博客

第四章 自动化测试建设和发展

  1、自动化测试的体系建设

  上文阐述过什么自动化测试框架,那么自动化测试框架和自动化测试体系之间有什么关系呢?它们是否是同一种东西?存在的形式有什么异同呢?下面笔者将凭自己的理解简单地、理论化地表达一下自己的见解。

  (a)自动化测试体系的特征

  首先,上文提到的自动化测试框架内容包含很多,但是是不是每一个测试框架都要包含全部这些内容呢?当然不是,并且也会有些框架也不止包含这些内容。所以自动化测试框架从其定义上看,只要达成“组合测试组件”的效果即可,在不同的情况或者项目应用中并不需要所有模块都要使用上,否则,这么完备的一个自动化测试框架可能就是臃肿而低效的。但是对于自动化测试体系来说,它需要面面俱到,要能够达成一切可能需要达成的目标,比如说单元测试、集成测试、性能测试、自动化UI测试、安全性测试等等;换个角度说,自动化测试体系可能要包含自动化知识管理、自动化测试管理、自动化技术储备、自动化团队建设等很多内容。

  体系是一个比较抽象的名词,根据百科词条给出的解释,它是泛指一定范围内或同类的事物按照一定的秩序和内部联系组合而成的整体,是一组不同的“小系统”组成的“大系统”。据此定义,我们可以联想一下自动化测试体系,看看它有什么特点。在笔者看来,自动化测试要达到体系化的程度则必须做到如下几点:

  ◆ 范围界定。在实际的自动化测试实践中,我们所能够想到的、实现的方法和途径都可以纳入自动化测试体系中来有序化管理。例如,为了测试一组EAI服务,我们设计了一个模拟器来实现自动化的定期执行,那么设计模拟器、实现定期执行的这种思路与方法就是自动化测试体系中所应该包含的一部分。与自动化测试框架不同的是,自动化测试体系应该可以理解为“能够支持一切无法通过手工完成的测试”的方法论或者管理实例。因此,自动化测试框架内容是可裁剪的,而自动化测试体系所包含的内容则是不可裁剪的。

  ◆ 足够细化。自动化测试应该能够应用框架,将每一个组件元素的集合系统化管理,不会因为他时异地而不同。那么自动化测试框架可能是一个小系统,自动化知识管理可能是一个小系统……有此方能组合出一个大系统:自动化测试体系。若非如此,支离破碎的组件之间、框架之间没有统一的方法论,则不能够被视作一类,因而根本不可能在底层形成系统化管理的方法,更无法向上升级到更高的高度,直至体系化。

  ◆ 有序整合。万物皆有序,四时有序、长幼有序……有序二字主要体现在事物的内部规律上(并非单纯地停留在时间的不可逆性上)。我们在自动化测试实践中也会发现,有些事情必须早做,比如调研,有些事情必须后做,如结果分析;有些事情必须做,如依赖测试框架,有些事情不可做,如简单的录制回放。对于自动化测试体系来说,我们需要将拆解细化并且已经被系统化管理的各个自动化测试的组成部分按照一定的逻辑关系组合在一起,并且这个逻辑必须要能够满足自动化测试的高效、可靠性等原则。

  (b)自动化体系建设关注点

  简单概括地看过自动化测试体系的概念之后,我们需要看一下如何才能建立起我们所需要的自动化测试体系,在实际操作的过程中应该注意些什么。

  1)自动化测试基础建设

  做要到上节所陈述的几点,就是要理解我们所要建设的是一个系统化的方法与机制,并且在自动化测试实际操作过程中把自动化测试的每部分内容细化、分类管理,最后要将自动化测试所包含的所有分类按照一定的层次关系组织在一起。下面简单看一下,自动化测试体系从实现目标和功能角度的分类包含哪些方面。

  ◆ 自动化测试技术建设

  自动化测试必不可少的基础就是自动化测试技术,它是软件开发这一个行业所共有的发展水平。从整个软件开发领域看来,从未见软件测试技术大幅领先于软件开发本身的技术,也不会出现软件测试技术水平长期制约软件开发的发展的情况。

  首先,我们在做自动化测试技术选择的时候需要考虑当前整个领域的技术水平,因为选择太过落后的技术可能会无法满足发展的需要,而选择太过新生的技术可能大部分员工普遍无法接受。其次,除了领域技术,还要考虑所在组织的整体技术层次,由此才能决定我们应该选择什么样的技术来达成我们的测试需求。通过了解自己所在组织的整体技术层次,除了特殊需求决定的必须使用某种特定的技术外,基本能够保证所采用的技术能够被大部分人理解和接受。例如,我们部门大部分同事是编码“白丁”,最多只能够使用QTP这种容易上手的工具进行简单的录制、修改,如果突然决定要用Ruby + Perl来实现我们的测试自动化,估计很多人一时半会是无法得其精要的,大量的低质量脚本和重复开发工作都是非常让人烦心的事。反之,如果大部分测试人员的技术都比较强、比较全面,如果引进QTP作为核心测试工具的话,估计很多人只能保持几天的新鲜感,一段时间过后很多人对这种傻瓜式的测试工具就会失去兴趣,虽然有可能他们实际上还没有入门。最后,我们还要考虑这项测试技术能否能够支持今后的发展需要,例如,我们目前还没有开展敏捷开发,如果不远的将来需要进行这项工作,那么测试所使用的技术可能不能单纯的选择UI自动化测试工具和框架了,具体原因我们后文在敏捷测试讨论的时候再进行分析。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号