面向安全苛刻系统的自动化测试资源管理方法及其平台的制作方法

文档序号:6429633阅读:248来源:国知局
专利名称:面向安全苛刻系统的自动化测试资源管理方法及其平台的制作方法
技术领域
本发明属于计算机应用领域,具体涉及一种面向安全苛刻系统的自动化测试资源的管理方法及其平台。
背景技术
目前,应用系统软件规模不断扩大,复杂度不断增加,应用系统的质量和可靠性受到越来越多的重视,尤其是针对一些安全苛刻系统,对其进行测试管理自动化非常有必要。 所述的安全苛刻系统本身具有如下特点系统庞大,安全可靠性要求高,分布式,多用户权限操作,具有复杂的地形操作和显示功能。系统的庞大和安全苛刻的高要求使得在功能测试和接口测试要尽可能的自动化,以提高效率和减少人为误操作。而该分布式系统各个模块因为需要协同操作和系统本身复杂的地形操作使目前已有的功能测试自动化工具无法满足要求,因而目前已经开发完成了专用的功能和接口自动化测试工具,用来实现自动执行测试脚本和自动验证被测系统的通信消息字段,这就需要在管理测试用例时需要支持这些专用的功能和接口自动化测试工具。当前通用的软件测试管理工具众多,它们的一个普遍特点是以一个或多个软件测试标准为基础,涵盖软件测试的诸多方面,主要涉及测试流程管理、测试资源管理、缺陷管理、用户权限管理、报告管理、与其他自动化测试工具的互操作性、应用编程接口(API)支持和部署方式。虽然这些通用测试管理工具的覆盖范围广,但是对于某些特定系统的测试管理的某些方面支持并非都是完美的,以下将围绕这几方面介绍该安全苛刻系统在测试管理方面的特点,以及目前已有的开源和商用测试管理工具在这些特点上的优势与不足。较为成熟的技术主要以实现测试资源和缺陷管理的自动化为核心关注点,以数据为核心的管理技术较为成熟,而测试流程管理的自动化技术本身复杂度较高,相关的主流解决方法,如工作流技术,远不如数据管理的发展成熟,还有很多要解决的关键问题。在测试资源的管理方法方面,主要是管理测试中使用的主要工件(Artifacts),比如被测对象、 测试需求、测试计划、测试用例、各种文档等,并定义它们之间的关联以自动实现管理过程各种资源的一致性。在像 HP Quality Center 和 IBM Rational Quality Manager 这类典型的商用测试管理工具中,初始输入一般为测试需求,根据测试需求生成测试计划,编写具体的测试用例的原则与指导。而测试用例根据测试计划以向导的方式创建,由于测试需求与测试用例的关联,使得自动分析当前测试用例的覆盖度成为可能。这些成熟的管理方式能胜任大部分软件的测试管理工作,但是在所述的安全苛刻性系统的测试管理中由于专用自动化测试功能的引入,管理粒度要比测试用例小得多,在测试用例下还涉及多个脚本的管理,每个脚本有附带的数据分组,包含多个附加文件。目前缺陷管理工具较多,采用的管理方法或模型通常是定义缺陷状态,并对其进行跟踪,这种管理方法流程清晰,而且较为容易地覆盖缺陷的生命周期。但是这些工具大都独立于测试管理工具单独存在,也可以集成于测试管理工具中。而缺陷往往和测试执行的用例紧密相关,属于测试资源的范畴,所以将缺陷管理工具集成化是当前的主流趋势。
用户权限设计是整个测试管理工具安全性的重要决定因素,同时也是支持多种角色的用户在测试管理工具上协同工作的要求。目前成熟的大型商用测试管理工具都支持基于角色的访问控制,用户可以新建角色并定制角色的权限。但是负责所述的安全苛刻系统的测试组没有覆盖所有角色,而且测试组要求的一些粒度更细的权限往往在这些通用的测试管理工具没有体现,比如评审员只能允许评审测试用例和大纲是否通过。同时,放开让用户可以定制每个角色的既有权限也降低了安全性,因为除评审员以外的其他角色也可以被赋予评审权限,这将成为潜在的安全隐患。报告管理是软件测试管理工具的必备功能,在该安全苛刻系统测试过程中需要的报告包括测试大纲,测试用例设计说明,测试结果报告等。基本覆盖了测试管理工具所有工件具体信息的导出。目前已有的测试管理工具都具有报告生成功能,但是报告的定制性有强有弱,比如大型的商用工具IBM Rational Quality Manager的报告不能同时包含需求、 用例和执行结果,定制性不强。关于报告管理的另一个重要方面是测度与度量的支持。测度和度量是指对软件测试过程的量化方案,以及量化数据的收集和统计等。比如测试用例覆盖度、Bug密度,测试用例时间进展等指标。对测试过程进行量化有利于对整个测试过程进行更好的控制。目前的通用测试管理工具支持测度和度量,但是可选择的指标对于大型安全苛刻系统的测试来说并不充足。针对所述的安全苛刻系统,在测试管理工具中需要集成该安全苛刻系统专用的自动化测试脚本和数据的编辑界面以及诸如启动录制命令和文件组织的支持。测试管理工具提供应用编程接口是一个比较高级的应用要求。所提供的API的组织方式有多种接口面板是一种简洁的方式,它将接口封装在一个类中,但是这种方式在接口很多且具有一定层级关系时显得混乱;另一种方式是带有控制器的接口面板,可以根据请求返回不同的面板操作数据,避免了单一面板可能引起的接口爆炸;一种类似文档对象模型(DOM)的接口方式完全是一种层次型组织,这种方式需要考虑实体间的关系,且实现难度大,但是在业务实体间具有很明显的单棵树的树型组织时这种方法比较直接。在应用编程接口的提供方面,一般开源的管理工具甚至某些成熟的商用的测试管理工具对此的支持都不够,比如IBMRational Quality Manager,只有针对重置(REST)请求的API,但是没有相关的文档支持。在测试管理工具体系结构的选择上,一般采用浏览器/服务器(B/S)较多,这种方式部署简单,客户端占用资源少,但是表现力和交互能力不如客户机/服务器(C/S)结构, 因此,在具有控制功能特点的测试管理系统多见C/S结构,需要与自动化的执行程序交互, 如果选择B/S结构就不能很好的完成任务。

发明内容
本发明的目的是为了解决所述的安全苛刻系统缺失一种集成的、适用的自动化测试资源管理方法,提出一种面向安全苛刻系统的自动化测试资源管理方法及其平台。本发明一种面向安全苛刻系统的自动化测试资源管理方法包括以下步骤步骤1 对用户输入的用户名和密码进行验证,若用户名和密码验证未通过,提示用户重新输入用户名和密码,直到用户名和密码验证通过,在用户名和密码验证通过后,如果用户具有系统管理员角色,则判断该用户是否要进行用户管理操作,若是,进行用户管理操作,若否,执行步骤2。步骤2 创建测试工程并填写其属性,或者从数据库中读取已有的测试工程,所述的测试工程代表对某一版本的安全苛刻系统的测试。步骤3 选择测试管理类型如果选择测试用例管理,转至步骤4 ;如果选择测试过程管理,转至步骤7 ;如果选择文档管理,转至步骤10。步骤4 在指定的测试工程下添加测试项,测试项下能再继续添加测试项,并填写测试项的属性信息。步骤5 在指定的测试项下创建测试用例并填写测试用例的属性信息,测试用例具有版本特征。步骤6 编辑测试项和测试用例的详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件。在测试项和测试用例建立完毕后自动生成测试说明文档,然后返回步骤3 ;所述的测试项的详细信息包括测试项所涉及的测试类型,以及每个测试类型中包括的测试方法、测试输入、测试输出和判断准则;所述的测试用例的详细信息包括各个测试步骤的步骤描述和预期结果。每个测试用例的脚本文件可以包括多个数据文件,每个数据文件可以提供脚本完整执行一次所需的全部数据,这体现了数据驱动测试的思想。步骤7 在指定的测试工程下创建测试阶段,所述的测试阶段可以包括自测试、系统测试、验收测试和任意用户自定义的测试阶段;所述的测试阶段下包括一个以上文档,每个文档包括一个以上文档版本。步骤8 为已有的测试用例指定测试阶段,若不存在所需要的测试用例,则转步骤 5创建所需要的测试用例。步骤9 执行测试用例,如果测试用例执行不成功,则执行Bug管理活动,并在测试阶段的Bug管理活动结束之后生成阶段测试报告,然后结束执行本次自动化测试资源管理方法;如果测试用例执行成功,则将测试用例的存入数据库中,然后结束执行本次自动化测试资源管理方法;所述的Bug管理活动结束的标志是该测试阶段下的所有Bug报告都已经为关闭状态,所述的Bug管理活动具体是定义Bug节点,通过Bug状态监控组件对Bug状态变化进行跟踪管理,所述的Bug节点与具体的测试用例引用关联。步骤10 在指定的测试阶段下创建文档,或创建文档的新版本,并对文档进行下载、上传或删除的操作,然后转步骤3执行。本发明一种面向安全苛刻系统的自动化测试资源管理平台,包括包括客户端和服务器端,服务器端包括关系型数据库,客户端包括核心模块、测试用例管理模块、测试过程管理模块、文档管理模块、Bug管理模块;测试用例管理模块、测试过程管理模块、文档管理模块与Bug管理模块都包括界面层子模块和业务层子模块,核心模块包括核心界面层子模块、核心业务层子模块和核心数据层子模块。核心界面层子模块定义了主界面以及各个布局,并通过抽象接口 Context定义了对主界面的所需操作,还提供了用于验证用户名和密码的界面以及对系统管理员提供了进行用户管理操作的功能,测试用例管理模块、测试过程管理模块、文档管理模块与Bug管理模块的界面层子模块都通过抽象接口 Context操作主界面;核心业务层子模块定义了抽象节点类Node,加载或者创建测试工程;核心数据层子模块在核心业务层子模块加载或者创建测试工程时从关系型数据库中读取相应树型组织和实体类节点的数据传送给测试用例管理模块、测试过程管理模块、文档管理模块和Bug管理模块的业务层子模块,并将测试用例管理模块、测试过程管理模块、文档管理模块和Bug管理模块的业务层子模块更新的树型组织和实体类节点的数据传送给关系型数据库进行保存。测试用例管理模块的业务层子模块用于定义测试用例管理的树型组织和实体类节点,具体是在指定的测试工程下添加测试项,在测试项下继续添加测试项或者创建测试用例,填写测试项和测试用例的属性信息以及详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件,所述的测试用例具有版本特征;测试过程管理模块的业务层子模块用于定义测试过程管理的树型组织和实体类节点,具体是在指定的测试工程下创建测试阶段,为已有的测试用例指定测试阶段,若不存在所需要的测试用例,通过测试用例管理模块的业务层子模块中创建所需要的测试用例,所述的测试阶段下包括一个以上文档,每个文档包括一个以上文档版本;文档管理模块的业务层子模块用于定义文档的结构组织和实体类节点,具体是在测试阶段下添加文档,在文档下增加文档版本,文档管理模块的业务层子模块还在测试项和测试用例建立完毕后自动生成测试说明文档,以及在测试用例执行完毕后自动生成测试报告;Bug管理业务层子模块用于定义Bug节点,通过Bug状态监控组件对Bug状态变化进行跟踪管理,所述的Bug节点与具体的测试用例引用关联,并在测试阶段的Bug管理活动结束之后生成阶段测试报告;测试用例管理模块、测试过程管理模块和文档管理模块的业务层子模块中定义的实体类节点,以及Bug管理模块中定义的 Bug节点均继承自核心模块的业务层子模块定义的抽象节点类Node。本发明为具有分布式、操作系统异构性的特点的安全苛刻系统的自动化测试资源提供诸如用例管理、文档管理以及Bug管理的统一服务,同时资源管理从时间上覆盖测试阶段,有效支持对安全苛刻系统的黑盒测试。与传统的软件测试管理方法和工具相比,本发明的优点与积极效果在于(1)本发明统一管理了软件测试中通常被独立的资源,比如文档管理和Bug管理, 集成的管理方法利于这些资源与测试管理中的核心部分的关联,避免了将这些管理软件独立出来后产生的管理混乱。同时针对被测系统较为复杂的特点,将测试计划和测试需求整合在一起形成一个称为测试项的节点,各个测试用例是测试项的子节点,这种树型结构和每个节点形象地表达了测试需求、测试计划和测试用例的各自信息和内在联系,简化了用户操作。(2)本发明支持不同视角的软件测试管理,即静态纵向的测试用例组织,以及动态横向以时间为视角的测试阶段定义和管理,多重视角的测试资源管理符合测试人员的实际测试需求。(3)本发明可对测试对象各个分系统与配置的管理,并符合安全苛刻系统的具体组成,能够使测试者明确测试用例与具体测试对象的对应关系。(4)本发明支持该安全苛刻系统专用自动化测试工具,在测试用例编辑中可以上传不同主机节点的脚本文件,每个脚本文件可以创建不同数据分组,每个分组有一个数据文件和多个附加文件,以支持基于数据驱动的软件自动化测试,符合当今软件测试从手工逐步转化为自动化测试的趋势。(5)本发明支持大部分实体的属性和详细信息以常见格式进行数据导出,也具有按照GJB-438B标准的要求自动生成测试说明文档和测试报告的功能,提高了自动化测试资源管理的互操作性和可用性。


图1为本发明的自动化测试资源管理方法的步骤流程图;图2为本发明自动化测试资源的管理平台的模块结构示意图;图3为本发明多叉树形所表示的对测试资源组织的实施例示意图;图4为本发明的自动化测试资源的管理方法与平台中的数据库存储的实体-关系表图。
具体实施例方式下面将结合附图和实施例对本发明作进一步的详细说明。本发明针对一种大型分布式安全苛刻系统的测试,采用基于Qt的C/S架构设计并实现测试管理方法及相应平台,重点关注测试工件之间的关联、审计管理、测度和度量,以及支持专用自动化测试工具这几方面,而不对众多复杂的测试管理标准、规范和其他管理细节面面俱到。如图1所示,本发明提供的一种面向安全苛刻系统的自动化测试资源管理方法, 由如下步骤组成步骤1 用户验证。首先对用户输入的用户名和密码进行验证,若验证错误,即出现用户名错误或者密码错误的情况,提示用户重新输入用户名和密码,直到用户名和密码验证通过。若验证通过,判断是否要进行用户管理操作,若是,则进行用户管理操作,如果用户具有系统管理员的角色,可以选择用户管理操作,例如创建新的用户,为已有用户添加和删除角色,以及删除用户等。若不再进行用户管理操作,执行步骤2。步骤2 创建测试工程并填写其属性,或者从数据库中读取已有的测试工程。所述测试工程代表对某一版本的安全苛刻系统的测试,是所有测试实体的顶层组织。所述的测试工程的属性主要包括名称、创建时间、创建者以及相关备注信息等。步骤3 进行测试管理类型选择如果选择测试用例管理,则转至步骤4 ;如果选择测试过程管理,则转至步骤7 ;如果选择文档管理,则转至步骤10。所述的测试用例管理、测试过程管理和文档管理均设计了人机交互界面,使方便用户的查看和操作。所述的测试用例管理是测试用例的静态组织,是一种多叉树型的结构,根节点是某一测试工程,测试工程下包括若干测试项,测试项可以嵌套包括子测试项,也可包括测试用例,同一测试用例包括若干版本,测试用例版本是测试用例管理的树型结构组织的叶子节点。所述的测试过程管理是以时间为视角对测试用例等测试资源的组织,也是一种多叉树型结构,根节点也是某一测试工程,测试工程下包括若干测试阶段。实际上在测试资源管理中,测试阶段是测试用例的一个属性。测试阶段下包括若干文档,文档包括若干版本, 文档的版本定义和测试用例的版本定义相同,文档版本是测试过程管理的树型结构组织的叶子节点。所述的文档管理是指对测试阶段下的文档的管理,在测试阶段下添加文档,在文档下增加文档版本,对文档进行新建、删除、上传、下载等操作。
步骤4 在指定测试工程下添加测试项并填写测试项的相关属性信息。所述的测试项的相关属性信息主要包括名称、唯一标识、创建者和创建时间、参考引用、描述、设计约束、测试约束、内容与要求以及停止条件等。测试项是对测试用例的一种层次化组织,可以赋予测试项具体的意义,比如代表一个分系统的测试或者一个模块的测试,测试项可以嵌套,比如代表某个分系统的测试项可以包括若干代表模块的测试项。步骤5 在指定测试项下创建测试用例并填写测试用例的相关属性信息。所述的测试用例的相关属性信息包括名称、唯一标识、创建者、创建时间、版本、测试用例状态、测试类型、描述、前置条件以及参考文件等,测试用例具有版本特征,即某个名称的测试用例可以包含多个版本。所述的测试用例支持多版本管理,版本号采用三段式,包括小版本号、中版本号和大版本号,版本号起始是1.0. 0。小版本号是未评审的更新,在未评审时,每做一次改动,用户可以选择增加小版本号;中版本号是评审号,在同一个测试阶段内,每经过一次评审,中版本号增加;大版本号与测试阶段相关,如果测试用例被复用到其他测试阶段作为测试用例,而且名称没有改变,则增加大版本号。版本号也可以是用户自定义的任意字符串。步骤6 编辑测试项和测试用例的详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件,在测试项和测试用例建立完毕后自动生成测试说明文档,然后返回步骤3。所述的测试项的详细信息包括测试项所涉及的测试类型,如接口测试、功能测试等,以及每个测试类型中包括的测试方法、测试输入、测试输出和判断准则;测试用例的详细信息包括各个测试步骤的步骤描述和预期结果。步骤7 在指定的测试工程下创建测试阶段,测试阶段是从时间角度对测试资源的划分,测试阶段包括自测试、系统测试、验收测试等。各测试阶段下包含一个或多个文档, 每个文档下又包含一个或多个文档版本。步骤8:为已有的测试用例指定测试阶段。测试用例的测试阶段也可以在步骤5新建测试用例中完成。若当前没有所需要的测试用例,则转步骤5执行,创建所需要的测试用例,若存在,为该测试用例指定测试阶段。由于对自动化软件测试的支持,测试用例包含可执行的测试脚本和数据文件,这样测试用例便具有可执行特征,同时测试用例是测试脚本编辑器和测试任务执行器的输入。所述的测试脚本编辑器和测试任务执行器为外界组件, 测试脚本编辑器用于编辑测试用例下各个可以自动执行的脚本文件,测试任务执行器用于将已有的测试用例组织成测试任务,并控制测试任务下测试用例的执行、暂停、停止,以及执行结果的收集。步骤9 执行测试用例,如果测试用例执行不成功,则执行Bug(缺陷)管理活动, 监控Bug的状态变化,直至所有Bug处于关闭状态。所述的Bug管理活动具体是定义Bug 节点,通过Bug状态监控组件对Bug状态变化进行跟踪管理。所述的Bug管理中的Bug与具体的测试用例引用关联,Bug生命周期的状态包括初始态、就位态、反馈态、解决态和关闭态,Bug管理将监督每个Bug在生命周期中的各个状态,直至Bug被关闭为止。在测试阶段的Bug管理活动结束之后生成阶段测试报告,然后结束执行本次自动化测试资源管理方法。所述的Bug管理活动结束的标志是该测试阶段下的所有Bug报告都已经为关闭状态。 如果测试用例执行成功,则更改该测试用例的状态为“成功执行”,同时由测试任务执行器将测试用例的执行结果存入数据库,然后结束执行本次自动化测试资源管理方法。步骤10 在指定的测试阶段下创建文档或已有文档的新版本,并对文档进行下载、上传、删除等操作,然后转步骤3执行。一种面向安全苛刻系统的自动化测试资源管理平台,基于Qt类库构建,为C/S (客户端/服务器端)结构,客户端采用C++语言以面向对象方法开发。本发明自动化测试资源管理平台的核心包括对各个管理实体比如测试工程、测试项和测试用例等的定义和关联, 以及对整个测试资源的状态和行为定义。如图2所示,所述的自动化测试资源管理平台的客户端包括核心模块1、测试用例管理模块2、测试过程管理模块3、文档管理模块4、Bug管理模块5,其中,测试用例管理模块2、测试过程管理模块3、文档管理模块4以及Bug管理模块5都分别包括界面层子模块与业务层子模块,具体是测试用例管理模块2包括测试用例管理界面层子模块21和测试用例管理业务层子模块22,测试过程管理模块3包括测试过程管理界面层子模块31和测试过程管理业务层子模块32,文档管理模块4包括文档管理界面层子模块41和文档管理业务层子模块42,Bug管理模块5包括Bug管理界面层子模块51和Bug管理业务层子模块52。核心模块1包括核心界面层子模块11、核心业务层子模块12和核心数据层子模块13。所述的自动化测试资源管理平台的服务器端包括关系型数据库6。所述的关系型数据库6用于持久化自动化测试资源管理平台中的需要保存的数据,例如如图4所示的测试工程信息、测试阶段信息、测试项信息、测试用例信息等等,还包括测试用例执行结果。核心界面层子模块11定义了界面布局,为测试用例管理界面层子模块21、测试过程管理界面层子模块31、文档管理界面层子模块41和Bug管理界面层子模块51提供基本的界面容器和工具。核心业务层子模块12为测试用例管理业务层子模块22、测试过程管理业务层子模块32、文档管理业务层子模块42和Bug管理业务层子模块52提供了一些顶层抽象。核心界面层子模块11通过继承自Qt主界面模板QMainWindow定义了主界面,以及各个布局。布局主要包括六个部分,分别是菜单栏、工具栏、Dock列表区、属性Dock区、 编辑区和状态栏。Dock是图形用户界面中能够悬浮或者加载到主界面之上的一种界面元素控件。其中,Dock列表区在主界面上共有四个部分,均可以显示测试资源管理涉及的实体组织结构及相关操作的视图。以上各个区域中的控件应继承自Qt的相关控件类。核心界面层子模块11通过抽象接口 Context定义了对主界面的所需操作,如添加菜单,添加Dock 区控件等,测试用例管理界面层子模块21、测试过程管理界面层子模块31、文档管理界面层子模块41和Bug管理界面层子模块51通过抽象接口 Context操作主界面。核心业务层子模块12定义了抽象节点类Node,树型关系结构中的各个功能模块的业务层子模块组成的树形结构的各个实体节点均继承自Node,如图3所示。核心数据层子模块13用于为测试用例管理业务层子模块22、测试过程管理业务层子模块32、文档管理业务层子模块42和Bug管理业务层子模块52提供数据库数据的增加、删除、修改和获取操作,并负责对数据库6的连接管理。核心数据层子模块13将更新的数据传送给数据库6中保存,或者从数据库6中读取数据传送给测试用例管理业务层子模块22、测试过程管理业务层子模块32、文档管理业务层子模块42和Bug管理业务层子模块52。测试用例管理界面层子模块21包括测试项树型列表组件,测试用例树型列表组件,测试工程、测试项和测试用例的属性编辑组件,以及测试项和测试用例的详细信息编辑组件。测试用例管理界面层子模块21为用户操作提供可视化界面,用于显示测试用例管理的数据和数据组织,并通过测试用例管理业务层子模块22对测试工程、测试项和测试用例的属性进行编辑,对测试项和测试用例的详细信息进行编辑。所述的测试工程的属性主要包括名称、创建时间、创建者以及相关备注信息等。所述的测试项的属性主要包括名称、唯一标识、创建者和创建时间、参考引用、描述、设计约束、测试约束、内容与要求以及停止条件等。所述的测试用例的属性主要包括名称、唯一标识、创建者、创建时间、版本、测试用例状态、测试类型、描述、前置条件以及参考文件等。所述的测试项的详细信息包括测试项所涉及的测试类型,以及每个测试类型中包括的测试方法、测试输入、测试输出和判断准则。 所述的测试用例的详细信息包括各个测试步骤的步骤描述和预期结果。测试用例管理业务层子模块22中主要用于定义测试用例管理的树型组织和实体类节点,具体是在指定的测试工程下添加测试项,在测试项下继续添加测试项或者创建测试用例,填写测试项和测试用例的属性信息以及详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件,所述的测试用例具有版本特征。测试用例管理业务层子模块22通过核心数据层子模块13对关系数据库6中存储的树型组织和实体类节点的数据进行更新操作。测试用例管理业务层子模块22定义的测试用例管理的多叉树组织,按照树的层次关系,其节点类型依次包括测试工程节点I^rojectNode、静态组织节点MaticOrgNode,测试项节点TestltemNode、测试用例节点CaseNode、测试用例版本节点CaseVersionNode,其中,测试项节点TestItemNode也可以嵌套包括本身类型的节点。 TestItemNode节点上层是一种组织类型的节点MaticOrgNode,类似于节点集合。测试过程管理界面层子模块31包括测试阶段树型列表组件。测试过程管理界面层子模块31为用户操作提供可视化界面,通过测试过程管理业务层子模块32对测试阶段进行删除、新建和重命名等操作,以及对数据实体的编辑功能,包括属性编辑和详细信息编辑。测试过程管理业务层子模块32主要用于定义测试过程管理的树型组织和实体类节点,具体是在指定的测试工程下创建测试阶段,为已有的测试用例指定测试阶段,若不存在所需要的测试用例,通过测试用例管理模块的业务层子模块中创建所需要的测试用例,所述的测试阶段下包括一个以上文档,每个文档包括一个以上文档版本。测试过程管理业务层子模块32通过核心模块数据层对关系数据库6中存储的树型组织和实体类节点的数据进行更新操作。测试过程管理业务层子模块32主要是测试过程管理的多叉树组织, 按照树的层次关系,其节点类型依次包括测试过程组织节点I^rocOrgNode、测试阶段节点 WiaseNode、其中ftOcOrgNode不属于实际的实体节点,是对下级节点的一种组织。文档管理模块4从业务逻辑角度属于测试过程中的资源组织。文档管理界面层子模块41包括文档组织树型列表组件、文档版本列表组件和文档属性编辑组件。文档管理界面层子模块41的功能是对文档组织树型列表和文档版本列表组件进行显示和操作,对文档属性进行编辑。文档管理业务层子模块42主要用于定义文档的结构组织和实体类节点,具体是在测试阶段下添加文档,在文档下增加文档版本。文档管理业务层子模块42通过核心模块的数据层对关系型数据库6中的文档结构组织和实体类节点数据进行更新操作,同时文档管理业务层子模块42还实现了测试说明和测试报告的自动生成,测试说明是在测试项和测试用例建立完毕后自动生成,按照GJB-438B标准编写的模板,将生成的测试工程、测试项和测试用例信息填入模板中生成的。测试报告在一个测试阶段的测试用例执行完成之后生成,测试阶段完成的标志是该测试阶段下的Bug报告都已经关闭,Bug管理活动已结束。文档管理业务层子模块42中定义的文档的结构组织,节点类型包括文档组织节点 DocumentOrgNode、文档节点 DocumentNode 禾口文档版本节点 DocumentVersionNode,所有节点隶属于某一测试阶段节点WiaseNode。Bug管理界面层子模块51包括Bug管理树型列表组件和Bug属性组件,为用户操作提供可视化界面。Bug管理界面层子模块51的功能为Bug管理树型列表的显示包括创建Bug报告、填写Bug报告单的Bug描述、所属用例版本、复现方法、提交目标信息。Bug管理业务层子模块52用于定义Bug节点BugNode,Bug节点BugNode属于测试阶段节点WiaseNode,并与具体的测试用例引用关联,Bug状态监控组件负责实现Bug状态变化的跟踪管理。在测试阶段的Bug管理活动结束之后Bug管理业务层子模块52生成阶段测试报告。图2中各个业务层子模块之间的双向箭头指的是依赖关系,具体为测试用例管理业务层子模块22的测试用例对象和文档管理业务层子模块42中的文档对象需要了解所属的测试过程管理业务层子模块32中那个测试阶段对象,而测试过程管理业务层子模块32 中的测试阶段对象也需要了解本身包括哪些测试用例和文档对象。Bug管理业务层子模块 52中的Bug对象属于测试用例管理业务层子模块22中的某个测试用例对象,而测试用例管理业务层子模块22中的测试用例对象包括Bug管理业务层子模块52中的多个Bug对象。本发明的自动化测试资源管理平台是人机交互驱动的,平台的界面行为和状态反映该平台当前运行情况。测试资源的管理以测试工程为基础,再加上数据一致性而导致的状态,平台的状态可以分为初始态、数据一致态、数据正向非一致态、数据反向非一致态和数据混合非一致态。以下具体说明这些状态,以及之间的转化。初始态是指平台启动,初始化各个功能模块界面层的组件,并添加到统一的界面平台的相应位置,但是没有加载测试工程以及其他数据。数据一致态是指已经加载测试工程,而且平台数据与服务器端数据库6中的数据一致。数据正向非一致态是指已经加载测试工程,但是用户在平台中修改了数据,但是没有写入数据库6,这时需要保存操作到达数据一致态。数据反向非一致态是指已经加载测试工程,但是数据库6中数据被其他用户修改,当前平台的数据已经过期,这时平台需进行刷新操作到达数据一致态。数据混合非一致态较为复杂,是指平台已经加载了某测试工程,但是数据库6中的某些数据被其他用户修改造成平台的这些数据过期,同时平台的另一些数据被用户修改,但是还没有写入到数据库6中,这时既有数据正向非一致态,也有数据反向非一致态。 这时如果用户保存的是过期后修改的脏数据,平台应报错并提示用户先刷新,用户如果保存的数据不是过期后修改的数据,则写入正常。
以数据一致性和测试工程加载为中心划分状态很重要,因为对这些状态的考虑能够在退出平台运行或者关闭界面某些组件时提示用户保存数据,避免用户丢失数据,这对于以数据管理为核心的资源管理平台意义重大。下面以一个实例介绍本发明面向某安全苛刻系统的自动化测试资源管理平台的操作流程。首先平台进行初始化过程,在核心界面层子模块11定义的主界面中激活测试用例管理模块2、测试过程管理模块3、文档管理模块4以及Bug管理模块5的界面层子模块, 测试用例管理模块2、测试过程管理模块3、文档管理模块4以及Bug管理模块5的界面层子模块创建空的树型列表视图组件,并放在主界面的相应Dock列表区,初始化各个模块的菜单单例对象并放在主界面菜单栏上,主界面为初始态。以上涉及的组件在平台的声明周期内均为单例。初始化结束后选择打开指定的测试工程,测试用例管理模块2、测试过程管理模块 3、文档管理模块4以及Bug管理模块5在平台中可见的树型列表视图控件根据测试工程加载相应数据。用户可以选择进行测试用例管理模块2、测试过程管理模块3或文档管理模块4的操作,以进行测试过程管理模块2操作为例,可以在测试阶段列表视图中通过右键对测试阶段进行删除、添加、显示属性等操作,例如选择某个测试阶段的属性菜单项,在界面的属性编辑区将出现测试阶段属性编辑控件的实例,可以在控件中重新编辑测试阶段的各个属性并保存至数据库。在对测试用例管理模块2、测试过程管理模块3进行操作中,可以拖动测试用例到测试任务执行器和测试脚本编辑器,即向外界组件提供测试用例,以支持测试的自动化要求。可以在测试资源管理平台处于数据一致的状态下以常见格式如Html、Word,导出大部分数据实体对象,以及包含的子对象,比如测试工程、以及包含的测试项、测试用例等。 导出的数据实体对象主要是对象的属性信息和详细信息,同时根据这些信息提供测试说明文档的自动生成功能。在测试阶段的Bug管理活动结束之后,可以自动生成测试报告。在任务执行完毕后,根据任务执行情况启动Bug管理,可以在Bug管理视图和Bug 属性视图中跟踪Bug的状态。在本实施例的实施中,平台与数据库的通信遵循“惰性加载”原则,用户只有需要获取数据库的数据时才进行具体的通信操作,而不是初始时便加载数据库中的所有测试用例信息,而是根据界面显示的需要按需获取,不管用户是否用到。“惰性求值”策略有利于在一定程度上平衡负载,在一定程度上提高了平台的可用性和易用性。如图3所示,为一对测试资源的组织采用多叉树形结构表示的示意图,代表本发明所述的测试资源管理平台各个模块所有业务层子模块中所有对象的组织关系。根节点是测试工程对象ftOjectNode,它包括两种组织节点,StaticOrgNode和ftx)cOrgNode对象,分别代表静态测试资源的组织管理和动态测试资源的组织管理。静态测试资源管理包括测试项节点TestItemNode对象和测试用例节点CaseNode对象,其中测试项节点可以包括下级测试项节点,也可以包括测试用例节点。动态测试资源管理节点缺陷管理节点BugOrgNode 对象和文档组织节点DocumentOrgNode对象,缺陷管理节点包括各个缺陷节点BugNode对象,文档组织节点包括各个文档节点DocumentNode对象。 如图4所示,为测试资源管理平台数据存储的实体-关系模型。平台的所有数据通过八个表存储在关系型数据库6中=Project表存储测试工程信息;Phase表存储测试阶段,依赖Project表;TestItem表存储测试项信息,依赖于Project表和TestItem本身; Case表存储测试用例信息,依赖于Project表、Phase表和iTestItem表;Func_kript_File 表存储自动化测试脚本信息,依赖于Case表;FUnC_Data_File表存储自动化测试脚本所需的数据文件信息,依赖于FunC_SCript_File表;Document表存储文档信息,依赖于ftOject 表和Phase表;Bug表存储Bug报告信息,依赖于Case表。
权利要求
1.一种面向安全苛刻系统的自动化测试资源管理方法,其特征在于,具体步骤如下 步骤1 对用户输入的用户名和密码进行验证,若用户名和密码验证未通过,提示用户重新输入用户名和密码,直到用户名和密码验证通过,在用户名和密码验证通过后,如果用户具有系统管理员角色,则判断该用户是否要进行用户管理操作,若是,进行用户管理操作,若否,执行步骤2;步骤2 创建测试工程并填写其属性,或者从数据库中读取已有的测试工程,所述的测试工程代表对某一版本的安全苛刻系统的测试;步骤3 选择测试管理类型如果选择测试用例管理,转至步骤4 ;如果选择测试过程管理,转至步骤7 ;如果选择文档管理,转至步骤10 ;步骤4 在指定的测试工程下添加测试项,测试项下能再继续添加测试项,并填写测试项的属性信息;步骤5 在指定的测试项下创建测试用例并填写测试用例的属性信息,测试用例具有版本特征;步骤6 编辑测试项和测试用例的详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件,在测试项和测试用例建立完毕后自动生成测试说明文档,然后返回步骤3 ;所述的测试项的详细信息包括测试项所涉及的测试类型,以及每个测试类型中包括的测试方法、测试输入、测试输出和判断准则;所述的测试用例的详细信息包括各个测试步骤的步骤描述和预期结果;步骤7 在指定的测试工程下创建测试阶段,所述的测试阶段可以包括自测试、系统测试、验收测试和任意用户自定义的测试阶段;所述的测试阶段下包括一个以上文档,每个文档包括一个以上文档版本;步骤8 为已有的测试用例指定测试阶段,若不存在所需要的测试用例,则转步骤5创建所需要的测试用例;步骤9 执行测试用例,如果测试用例执行不成功,则执行Bug管理活动,并在测试阶段的Bug管理活动结束之后生成阶段测试报告,然后结束执行本次自动化测试资源管理方法;如果测试用例执行成功,则将测试用例的存入数据库中,然后结束执行本次自动化测试资源管理方法;所述的Bug管理活动结束的标志是该测试阶段下的所有Bug报告都已经为关闭状态,所述的Bug管理活动具体是定义Bug节点,通过Bug状态监控组件对Bug状态变化进行跟踪管理,所述的Bug节点与具体的测试用例引用关联;步骤10 在指定的测试阶段下创建文档,或创建文档的新版本,并对文档进行下载、上传或删除的操作,然后转步骤3执行。
2.根据权利要求1所述的一种面向安全苛刻系统的自动化测试资源管理方法,其特征在于,步骤5中所述的测试用例具有版本特征,具体是指测试用了支持多版本管理,版本号采用三段式,包括小版本号、中版本号和大版本号,版本号起始是1.0.0 ;小版本号是未评审前的更新,在未评审时,每做一次改动,增加小版本号;中版本号是评审号,在同一个测试阶段内,每经过一次评审,增加中版本号;大版本号与测试阶段相关,如果测试用例被复用到其他测试阶段作为测试用例,并且测试用例的名称没有改变,则增加大版本号。
3.应用权利要求1所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,该自动化测试资源管理平台包括客户端和服务器端,服务器端包括关系型数据库,客户端包括核心模块、测试用例管理模块、测试过程管理模块、文档管理模块、Bug管理模块; 测试用例管理模块、测试过程管理模块、文档管理模块与Bug管理模块都包括界面层子模块和业务层子模块,核心模块包括核心界面层子模块、核心业务层子模块和核心数据层子模块;核心界面层子模块定义了主界面以及各个布局,并通过抽象接口 Context定义了对主界面的所需操作,还提供了用于验证用户名和密码的界面以及对系统管理员提供了进行用户管理操作的功能,测试用例管理模块、测试过程管理模块、文档管理模块与Bug管理模块的界面层子模块都通过抽象接口 Context操作主界面;核心业务层子模块定义了抽象节点类Node,加载或者创建测试工程;核心数据层子模块在核心业务层子模块加载或者创建测试工程时从关系型数据库中读取相应树型组织和实体类节点的数据传送给测试用例管理模块、测试过程管理模块、文档管理模块和Bug管理模块的业务层子模块,并将测试用例管理模块、测试过程管理模块、文档管理模块和Bug管理模块的业务层子模块更新的树型组织和实体类节点的数据在关系型数据库中保存;测试用例管理模块的业务层子模块用于定义测试用例管理的树型组织和实体类节点, 具体是在指定的测试工程下添加测试项,在测试项下继续添加测试项或者创建测试用例, 填写测试项和测试用例的属性信息以及详细信息,为测试用例添加自动化测试所需的脚本文件和相应的数据文件,所述的测试用例具有版本特征;测试过程管理模块的业务层子模块用于定义测试过程管理的树型组织和实体类节点, 具体是在指定的测试工程下创建测试阶段,为已有的测试用例指定测试阶段,若不存在所需要的测试用例,通过测试用例管理模块的业务层子模块中创建所需要的测试用例,所述的测试阶段下包括一个以上文档,每个文档包括一个以上文档版本;文档管理模块的业务层子模块用于定义文档的结构组织和实体类节点,具体是在测试阶段下添加文档,在文档下增加文档版本,文档管理模块的业务层子模块还在测试项和测试用例建立完毕后自动生成测试说明文档,以及在测试用例执行完毕后自动生成测试报生 P=I ;Bug管理业务层子模块用于定义Bug节点,通过Bug状态监控组件对Bug状态变化进行跟踪管理,所述的Bug节点与具体的测试用例引用关联,并在测试阶段的Bug管理活动结束之后生成阶段测试报告;测试用例管理模块、测试过程管理模块和文档管理模块的业务层子模块中定义的实体类节点,以及Bug管理模块中定义的Bug节点均继承自核心模块的业务层子模块定义的抽象节点类Node。
4.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的测试用例具有版本特征,具体是指测试用了支持多版本管理,版本号采用三段式,包括小版本号、中版本号和大版本号,版本号起始是1.0.0 ;小版本号是未评审前的更新,在未评审时,每做一次改动,增加小版本号;中版本号是评审号,在同一个测试阶段内,每经过一次评审,增加中版本号;大版本号与测试阶段相关,如果测试用例被复用到其他测试阶段作为测试用例,并且测试用例的名称没有改变,则增加大版本号。
5.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的测试用例管理模块的界面层子模块提供可视化界面给用户,包括测试项树型列表组件,测试用例树型列表组件,测试工程、测试项和测试用例的属性编辑组件,以及测试项和测试用例的详细信息编辑组件。
6.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的测试过程管理模块的界面层子模块提供可视化界面给用户,包括测试阶段树型列表组件。
7.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的文档管理模块的界面层子模块提供可视化界面给用户,包括文档组织树型列表组件、文档版本列表组件和文档属性编辑组件。
8.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的Bug管理模块的界面层子模块提供可视化界面给用户,包括Bug管理树型列表组件和Bug属性组件。
9.根据权利要求3所述的一种面向安全苛刻系统的自动化测试资源管理平台,其特征在于,所述的关系型数据库与客户端的核心模块之间的数据通讯采用惰性加载原则,根据界面显示的需要,核心模块从关系型数据库获取相应数据。
全文摘要
本发明为一种面向安全苛刻系统的自动化测试资源管理方法和平台,应用于系统庞大、安全可靠性要求高的安全苛刻系统。该方法在用户验证通过后创建测试工程,并设置了测试用例管理、测试过程管理和文档管理三种管理类型,用户选择相应管理类型进行测试资源管理。该平台基于管理平台采用以Qt库为基础的C/S架构,服务器端为数据库,客户端包括核心模块、测试用例管理模块、测试过程管理模块、文档管理模块和Bug管理模块,客户端各模块定义了测试资源的树型组织和实体类节点数据,以及对该数据的操作。本发明实现了对安全苛刻系统的自动化测试资源的统一管理,同时资源管理从时间上覆盖测试阶段,有效支持对安全苛刻系统的黑盒测试。
文档编号G06F11/36GK102331970SQ20111021397
公开日2012年1月25日 申请日期2011年7月28日 优先权日2011年7月28日
发明者余丹, 储大为, 张强, 张杨, 王志超, 马世龙 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1