一种支持自动化测试的测试管理工具的实现

发表于:2011-10-20来源:未知作者:领测软件测试网采编点击数: 标签:测试管理
摘 要 软件测试管理是为了使软件测试项目能够按照预定的成本、进度、质量顺利完成而对成本、人员、进度、质量、过程和风险等进行分析和管理的活动。测试管理关注人员、过程、产品三要素的互动和变化,测试过程和阶段的相互作用,测试与开发团队的相互关联与协

  摘 要 软件测试管理是为了使软件测试项目能够按照预定的成本、进度、质量顺利完成而对成本、人员、进度、质量、过程和风险等进行分析和管理的活动。测试管理关注人员、过程、产品三要素的互动和变化,测试过程和阶段的相互作用,测试与开发团队的相互关联与协调配合,为使这些过程能有序的进行,开发出适合自己项目组的测试管理工具是必需的,同时由于自动化测试的普及,如何将自动化测试融入进来也是一个挑战。本文描述了我们项目组开发的支持自动化测试的测试管理工具的结构和功能实现。

  关键字 自动化测试;测试管理;软件测试

  1 引言

  为了保证软件产品的质量,需要对软件过程进行控制,同时也需要对软件产品本身进行检测,在目前形式化方法和程序正确性证明还无望成为使用性方法的情况下,软件测试在将来的相当长一段时间仍然将是软件质量保证的有效方法[1]。

  软件测试管理就是通过一定的管理方法和工具来对整个软件测试过程进行监控,从而提高软件测试的绩效。由于软件测试管理的复杂性,没有特别的辅助工具,只是依靠人工处理是很麻烦甚至是不现实的。

  对于测试工具的选择一般来说有自己开发、商业工具和开源工具三种选择。第三方工具包括已经成熟的商业软件和开放源代码的开源工具,它们都是经过证明的可以放心使用的工具,但是最主要的不足之处在于它们往往为了通用的考虑,按照自己的理解标准化了流程,并且价格不菲。但是对刚起步的中小企业来说,购买和使用这样的通用工具而只使用到其中一小部分功能,甚至有些有自己项目组特色的东西还得不到支持,往往不是最合理的选择。

  随着近些年测试自动化的呼声越来越高,如何将自动化测试的效率提高到应有的水平,成了各个测试机构首要考虑的问题[2]。我们认为,先进的测试管理流程与一流的自动化测试工具包是实施自动化测试不可或缺的。为更好的对测试流程进行控制,使之能充分利用自动化测试带来的好处,现代测试管理系统应该能支持自动化测试。

  结合公司的实际情况,我们选择了自己开发和开放源代码相结合的方式,并采用缺陷跟踪驱动测试的模型开发出了自动化测试管理系统ATMS(Automatic Testing and Management System)来作为支持自动化测试的基础设施。

  本文分析了ATMS的体系结构和各部分组成,并对其中一些关键技术进行了讨论。

  2 体系结构

  现在基于源代码的软件测试工具已经开始被业界广泛使用,以求提高软件的可重用性,可维护性等质量属性,由于本项目组的软件自动化测试才刚起步,ATMS应该能和以后可预期的测试过程的进一步完善和需求的变更同步,这样,ATMS在设计之初就应该有良好的可扩展性和可重复性。

  ATMS在逻辑上采用了以中心数据库为核心的体系结构,ATMS目前分为测试文档管理系统、缺陷跟踪管理和自动化测试支持系统三大部分(体系结构图如图1所示),为了降低它们之间的耦合性,它们都通过共同的中心数据库进行交互,以后要进行扩展的话只需要围绕中心数据库进行操作即可。

  图1

  3 测试文档管理系统

  软件测试文档是指导和管理软件测试过程的重要依据,测试文档包括测试计划、测试进度、测试用例缺陷管理文档、进度报告等。这里介绍ATMS中我们主要分为测试用例管理和测试文档管理(包括测试计划,测试进度等测试文件的模板)。

  3.1 测试用例组成

  ATMS中用例分为三个部分,用例逻辑、用例数据和用例代码。其中用例逻辑和用例数据是文本格式,由用例管理系统负责创建;用例代码由自动化支持系统在CPPUNIT中创建,它是自动化运行的基础。它们的关系如图2所示。

  图2

  3.2 测试用例存储和执行结果

  为更有效组织这些测试用例,采用测试用例数据库进行集中管理。这样就可以按照测试阶段和被测模块清晰地组织测试用例,并可以按照用户的不同查询条件显示不同的数据信息(如测试用例执行状态,执行结果,时间等)。

  3.3 测试用例的维护

  为保证测试用例库中测试用例的有效性,必须对测试用例库进行维护。包括如下四个方面:

  ● 删除过时的测试用例

  因为需求的改变等原因可能使一个测试用例不再合适被测系统,这时就应该将其删除。

  ● 删除冗余的测试用例

  如果存在两个或更多测试用例针对一组相同的输入和输出进行测试,那么就是冗余的,它们的存在会降低回归测试的效率,需要定期进行整理。

  ● 添加新的测试用例

  如果发现某个关键接口还没有被测试,就应该开发新的测试用例重新对其进行测试,并将新的测试用例合并到测试用例库中。

  3.4 测试文档模板管理

  为有效进行软件测试管理,在项目准备阶段创建测试过程中用到的各种管理模板,项目测试执行过程中填充和更新模板内容,这样可以保证不会遗漏重要测试内容并保持文档格式一致性。

  目前ATMS中存在如下模板:

  ● 测试用例模板(测试用例逻辑部分)

  ● 每日进度模板

  4 缺陷跟踪数据库

  缺陷跟踪数据库DTD(Defect Tracking Database),是对软件缺陷进行系统管理和跟踪控制的数据库,它记录软件测试、缺陷修正和验证过程的全部缺陷的处理信息,ATMS中的测试是以它为驱动进行的。

  ATMS中,对缺陷进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容。每个bug都有它的生命周期,从被报告开始到被解决结束。在这个生命周期中它在不同状态中转换。在ATMS中,我们为缺陷设计了如下缺陷跟踪管理状态模型。

  4.1 缺陷报告

  标识一个缺陷的时候,能正确给它分配严重程度、可视性和优先级别是很重要的。其中严重程度标识了一个bug对系统执行的破坏度,可视性是哪个能观察到这个bug,优先级别标识bug何时修复。

原文转自:http://www.ltesting.net