摘要:在软件测试技术的不断发展过程中,自动化测试技术作为软件测试技术的一个分支,被越来越多的使用在软件测试的各个阶段,大大节省了软件测试成本、提高了测试效率、缩短了软件开发周期。本文结合自动化测试理论与技术,基于现有的自动化测试技术、测试框架以及自动化测试工具进行了研究,提出了一种基于当前较成熟的软件测试自动化技术一关键字驱动的自动化测试技术而构建的自动化测试框架模型,并在此框架模型的基础上,设计实现了基于Selenium 的自动化测试框架。

  关键词:自动化测试;Selenium;测试框架

  0、引言

  在现代化管理中,如优化问题、信息系统、决策支持系统等,都要广泛地应用软件。软件质量的优劣是通过对软件的功能、性能和可靠性等质量要素进行验证的,发现软件缺陷并帮助定位和修复缺陷,确保软件系统功能满足需求的活动。根据多年软件工程研究和实践经验,认为通过在软件项目中执行如下佳

  经验,可以有效提高软件质量,确保项目进度:

  a)强化开发人员测试;

  b)尽早引入性能测试;

  c)实施测试管理自动化;

  d)引人功能测试执行自动化。

  可以说,实施测试自动化是软件行业一个不可逆转的趋势,如果在这个领域走在了前列,无论从企业的核心竞争力还是个人的工作技能来说,都有巨大的优越性。

  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。相对于手工测

  试而言,测试自动化通常具有速度快、执行效率高、测试全面,可连续工作,执行过程受外界因素干扰小、测试结果准确等优点。缺点是前期投入较大,所以在采用测试自动化之前需做好相应的评估工作。本文以Selenium 自动化测试框架为应用背景,对测试自动化在系统测试过程中的应用做了初步的研究。

  1、软件测试的优化分析

  随着人们对软件质量重视程度的提高,软件测试的地位逐步提高,软件测试技术也随之快速发展,逐渐从过去手工式的测试向测试自动化方向发展,引发了软件测试自动化的研究和应用热潮。目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先,自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率;其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义;此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想。根据Oppenheimer Funds的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。

  然而,存在优势并不一定意味着选择自动化测试方案都能为企业带来效益汇报,在决定是否引人自动化测试或使用合适的自动化测试方案以前,需从以下方面进行分析:

  (1)选择合适的自动化测试方案测试自动化的引进和实施,不仅涉及测试工作本身流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方面的配合。如果对这些必要的因素没有考虑周全的话,必然在实施过程中处处碰壁,既定的实施方案也无法开展。

  (2)尽管自动化测试可以降低人工测试的工作量,但并不能完全取代手工测试。100% 的自动化测试只是一个理想目标,即便一些如SAP、Oracle ERP等测试库规划十分完善的套件,其测试自动化率也不会超过70% 。所以一味追求测试自动化只会给企业带来运作成本的急剧上升。再次,实施测试自动化需要企业有相对规模的投入,对企业运作来说,投入回报率将是决定是否实施软件测试自动化的终指挥棒,因此企业在决定实施软件测试自动化之前,必须要做量化的投资回报分析。

  (3)实施软件测试自动化并不意味着必须采购强大的自动化软件测试工具或自动化管理平台,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同,甚至在一个应用中可能跨越了多种平台,或同~应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸多方面的风险和成本开销。毕竟软件质量的保证不是依靠产品或技术,更多的因素在于高素质的人员和合理有效的流程。