一、系统描述
1、厂家选择
基于长期在软件测试领域的研究与创新,凯云科技目前已发展为国内软件测试类产品的主要供应商,公司总部位于中关村丰台园区,并在上海、西安、成都设有办事处。在全国有包括:航天、航空、兵器、电子、船舶等400余家高端客户,在装备软件工程与质量检测方面,拥有优异的业绩和良好的口碑。
2、系统组成
凯云STM软件测试项目管理系统采用C/S软件架构,是一个多人协同工作的环境。系统部署如图3-1所示。
图3-1 STM软件测试项目管理系统部署关系图
数据库服务器端部署SQL Server数据库,包括人力资源数据库、设备资源数据库、项目管理数据库、测试项目数据库、历史归档数据库。
客户端部署软件测试项目管理系统运行程序,客户端登录数据库服务器端,每个测试项目组都有自己独立操作的测试项目数据库,测试项目组内部协同操作测试项目数据库。
凯云STM软件测试项目管理系统的软件模块组成如图3-2所示。
图3-1 STM软件测试项目管理系统软件模块组成
软件自上而下共分为六层,分别为系统服务层、数据服务层、支撑服务层、基础信息维护层、业务应用层和决策分析层。
系统服务层提供操作系统、字处理环境和数据库引擎服务。
数据服务层提供数据库结构表,包括人力资源数据库、设备资源数据库、项目管理数据库、测试项目数据库、历史归档数据库。
支撑服务层主要用于提供上层应用需要的算法服务,包括文档生成服务、文档解析服务、测试用例生成服务、数据统计分析服务、数据库备份与恢复服务等。
基础信息管理层包括系统管理和测试基础信息管理两部分,系统管理提供用户管理、角色权限管理、系统名词定义、文档书签管理等功能,测试基础信息管理是与测试项目相关的基础信息管理,包括测试类型管理、项目类型管理、软件类型管理、测试级别管理、硬件资源管理、软件资源管理。
业务应用与决策分析是测试项目管理的主要业务流程,业务应用针对单个项目进行,包括项目管理过程和项目技术过程,项目管理过程包括项目登记、计划进度管理、质量保证过程管理、配置管理过程管理、项目归档过程管理,项目技术过程包括被测件接受与处理、测试需求分析过程、测试用例设计过程、测试环境搭建过程、测试执行任务分配与管理、测试执行过程、软件问题处理、回归测试处理,决策分析主要包括项目统计分析、项目趋势对比分析和年度项目分析。
对于系统服务层、数据服务层、支撑服务层而言,由于属于软件体系结构设计的范畴,所有涉及业务的功能都在基础信息管理、业务应用和决策分析中,这里对这些涉及业务的功能模块进行说明。
- 系统信息管理
系统管理的主要目的是建立软件测试中心的组织架构与人员组成,为每名成员确定角色与权限,定义系统名词和数据字典,进行文档模板的书签管理。
- 用户管理
用户管理管理测试机构内的所有人员,包括用户名称、用户类型、用户权限、联系方式、用户编号;可以进行用户的添加和删除;可以进行用户密码的设置与管理。
- 角色管理
角色管理功能管理以下有关软件测试项目的八类角色,主要包括系统管理员、测试项目负责人、测试人员、SQA(软件质量保证)、SCM(软件配置项管理)、技术主管、质量主管、中心领导,支持添加、删除角色的功能,角色属性包括角色名称、角色编码、角色职责描述。
- 权限管理
权限管理为测试机构中心的所有角色分配权限,权限指对各个功能模块操作的权限,权限分配包括查看、添加、修改、删除,可分配权限的模块涉及基础信息维护、业务应用和决策分析的所有功能模块。
- 数据字典管理
数据字典提供问题状态、问题属性、问题严重性等级、问题类型、软件中的计量单位等数据字典,用于使STM系统具有更好的适应性。
- 系统名词管理
系统名词定义对STM中出现或使用的简写字母进行注解诠释,主要包括测试级别、测试类型的名词进行统一。
- 文档书签管理
书签管理的主要功能是用来定义和标识文档输出模板中用到的书签信息及书签的数据来源,包括项目编号、项目名称、测试单位、密级、文档日期等于与文档生成密切相关的书签进行管理。
- 测试基础信息管理
测试基础信息管理主要提供与测试项目相关的信息管理功能,在建立“测试项目”前,必须维护好“测试类型、项目类型、软件类型、测试级别”数据。
- 测试类型管理
测试类型管理可以添加、删除和修改测试类型名称、测试类型标识、测试类型编号、测试类型描述、测试类型目标、测试类型的结果分析要求、测试类型的测试终止条件等,可以管理的测试类型包括功能测试、性能测试、安全性测试、可靠性测试、容量测试、强度测试、数据处理测试、代码审查、代码走查、静态质量分析等。
- 项目类型管理
项目类型管理对测试项目的类型进行管理,主要包括首次开发项目、改造项目还是其他项目,项目类型可以添加、删除与修改。
- 测试级别管理
测试级别管理包括单元级别测试、部件级别测试、配置项级别测试和系统级别测试,测试级别可以添加、删除与修改。
- 软件类型管理
软件类型管理描述待测试的应用程序(软件)属于哪一类,包括嵌入式软件、非嵌入系统软件两大类,软件类型可以添加、删除与修改。
- 硬件资源管理
硬件资源管理管理测试单位现有的测试硬件资源,为后面测试环境的搭建提供依据,硬件属性设置包括序号、名称、标识、型号、计量单位、用途、购买日期等,硬件设备可以添加、删除与修改。
- 软件资源管理
软件资源管理管理测试单位现有的测试软件资源,为后面测试环境的搭建提供依据,软件属性设置包括序号、名称、标识、软件版本、用途、购买日期等,软件设备可以添加、删除与修改。
- 项目管理过程
项目管理过程是测试流程管理中的管理过程,包含项目登记过程、测试进度与计划管理、测试项目质量保证过程、测试项目配置管理过程、测试项目归档管理过程。
- 项目登记
项目登记是测试中心测试项目的开端,项目登记过程包括创建新测试项目,进行角色分配,创建软件结构定义,还包括删除某个测试项目。
测试项目可输入的内容包括项目编号、项目名称、项目类型(新研、改造)、项目状态、委托单位、研制单位、测试单位、项目开始时间、项目预期结束时间、项目密级(内部、秘密、机密、绝密)、项目属性(内部测试、第三方测试、定型测评)。
创建新测试项目时需要分配项目组成员,包括测试项目负责人、测试人员、SQA人员、SCM人员。
创建新测试项目时需要录入被测系统的软件结构定义,包括系统的子系统以及子系统下软件配置项以及配置项下软件单元的组成信息,每个对象的基本信息包括软件名称、软件标识、软件类型(嵌入式、非嵌入式)、软件开发语言(汇编、C、C++、Java、C#、VB),软件运行环境(WindowsXP、Windows 7、VxWorks等)、软件研制单位、软件概要描述等。
- 计划进度管理
计划进度管理主要确定测试项目的进度及任务分配,测试项目的进度确定里程碑节点,任务分配确定每个人所承担的项目子任务。
里程碑节点确定被测件接收、测试需求分析、测试设计、测试执行的起始时间、完成时间、评审时间、结束时间。其中完成时间是指任务的完成时间,而结束时间是指评审通过并修改完成后的里程碑节点关闭时间。
在每一个进度阶段中确定该进度阶段的任务组成,包括任务名称、任务标识、任务概述、任务开始时间、任务结束时间、任务预计的工作量(人时)、任务的成果。
在测试项目推进过程中,可以根据实际进度不断调整进度计划方案,并确定预测进度与工作量与实际的偏离程度。
- 质量保证过程
质量保证过程主要是在项目的阶段中开展质量保证活动,主要包括制定项目的质量保证计划、审核工作产品、评审项目流程。每个阶段所产生的工作产品有所不同,被测件接收阶段的工作产品为被测件文档接收清单,测试需求分析阶段的工作产品为测试需求规格说明、测试设计阶段的工作产品为测试说明、测试执行阶段的工作产品为测试记录、测试问题记录、测试问题报告。评审项目流程主要评审项目是否按照任务分配和流程股的要求开展,主要包括是否开展了评审工作、配置管理工作是否满足要求等。
- 配置管理过程
配置管理过程主要是在项目的各个阶段中开展配置管理活动,主要包括制定项目的配置管理计划,确定各个工作产品的名称、标识与控制要求,在各个项目阶段进行配置项的入库、出库及发布等工作。入库填写入库的配置项名称、版本、标识、申请入库的人员及角色。出库填写出库的配置项名称、版本、标识、申请出库的人员及角色。发布时填写需要发布的配置项名称、版本、标识、发布的人员及角色、发布的时间。
- 项目归档管理
项目归档管理是在项目结束后进行项目的归档,主要包括归档文档的生成、归档数据的打包,填写归档时间、归档人、档案保管年限等,将测试项目的测试数据从管理系统中的数据库中备份,形成历史归档库。
对于在测试项目登记过程中已经确定出项目组成、软件规模、总体进度要求的项目,可以按照模型自动生成进度计划管理、质量保证过程、配置管理过程的数据。
- 项目技术过程
项目的技术过程是测试项目所工作的主要技术内容,主要包括被测件的接收与处理、测试需求的分析、测试用例设计、测试环境搭建、测试任务分配、测试任务的执行、软件问题的处理、回归测试。
- 被测件接收
被测件接收过程管理和接收由研制方提供的待测试应用程序(软件)的相关资源,如,源代码、设计文档、设计说明、软件需求、规格说明、使用手册、安装包等。
被测件接收的文档中如果提供的资源中存在Word文档并且具有规范的文档结构,导入完成后,该Word文档同时被增加到引用文档,包括Word文档的章节,用于后续应用程序(软件)的测评追踪。
被测件接收时可以自动分析研制方提供的目录,并按照各个软件配置项的文档、代码、安装包的形式组织被测件接收目录,可以添加、删除与修改被测件资源存储的位置。
被测件接收时可以确定引用文档的组成,添加、删除与编辑引用文档属性,包括引用文档标识、名称、版本、发布日期、编制单位、文档页数等信息。
- 测试需求分析
测试需求分析过程依据应用程序(软件)研制时的需求,添加、删除和修改测试项、测试类型,确定测试项的需求追踪关系。
测试项基本信息包括测试项名称、测试项标识、测试项测试类型、优先级、创建时间、创建人、测试项描述、测试项的软件设计约束、测试的充分性与终止条件、测试项的输入与输出。
测试项创建完毕后,需要编辑和修改测试项的追踪关系,测试项追踪关系可以为一对多关系。测试需求项追踪可以直接在界面中选择所需追踪到的文档的小节号。
在测试项下可以有测试子项,每个测试子项所需要编辑的内容与测试项相同。
- 测试用例设计
测试用例为测试项下测试类型的测试用例,测试用例设计提供测试用例的新建、删除、移动、编辑等功能。
测试用例需要编辑的内容包括测试用例标识、测试用例名称、测试用例需要使用的测试工具、测试用例执行的前提和约束、测试用例的测试目的、测试用例所采用的测试方法、测试用例正常终止条件、测试用例异常终止条件。
每个测试用例都需要具有测试步骤设计,测试步骤设计提供添加、删除、修改、上移、下移操作,每个测试操作步骤包括步骤描述、步骤预期结果。
在测试用例的前提和约束、步骤操作描述、步骤预期结果描述中可以增加描述参数,实现测试用例的实例化参数描述。
测试用例无论有无参数,都默认实例化一个测试用例实例。
在测试用例具有参数描述时,测试用例的实例化用表格的形式显示出每个实例所取得的参数值。
对于具有实例化的测试用例,可以按照组合测试用例设计自动生成满足组合覆盖要求的测试用例。
组合测试用例生成时,可以输入实例化参数的取值范围、枚举取值,通过参数范围值的输入可以自动生成符合要求的测试用例。
测试用例的实例可以添加、删除和修改。
- 测试环境搭建
测试环境搭建模块从测试信息管理模块的硬件资源管理、软件资源管理中选择所需的硬件和软件搭建测试环境,也可以根据需要临时添加本项目所需要的额外的硬件和软件设备进行测试环境搭建。
测试环境中的硬件描述中需要描述硬件名称、硬件标识、硬件来源、硬件知识产权、硬件的用途。
测试环境中的软件描述中需要描述软件的名称、软件标识、软件来源、软件知识产权、软件的用途。
测试环境搭建中可以为测试环境添加附图,附图为测试环境拓扑图,附图的格式支持Visio、JPG、BMP、Word等。
- 测试任务分配
测试任务分配功能主要是创建测试任务,指定任务包含的测试用例,为所有的测试用例指定具体的测试执行人员(测试人员)。
测试任务可以建立、删除、上移、下移。
测试任务编辑的内容包括任务号、任务名称、任务开始时间、任务结束时间、创建人、负责人、监测人、任务的状态、任务的执行人。
任务的执行人可以是一个,也可以是多个。
为每个测试任务分配测试任务的测试用例,测试任务中的测试用例可以添加与删除。
测试用例添加到测试任务中后,待分配测试用例列表中将消失,测试用例从测试任务中删除后,待分配测试用例列表中将增加该用例。
- 测试执行
测试任务分配完成后进入测试执行过程,测试执行过程选择一个测试实例执行,每选择一个测试实例时要求显示出该测试实例的描述及步骤。
测试执行中填写测试执行的每个测试步骤的实际运行结果,当实际运行结果与预期结果不一致时,可以选择测试步骤失败选项,对于失败的测试步骤自动弹出测试问题描述窗体。
测试执行中每个测试步骤显示出该测试步骤的执行状态、执行状态包括未执行、通过、未通过,自动给出测试执行时间。
每个测试用例的测试执行生成测试原始记录,原始记录可以查看,但不允许编辑和修改,原始记录包括测试执行过程描述及总结、测试过程监督情况说明。
测试任务中的测试用例列表中可以按照用户选择显示出已执行用例、未执行用例、通过用例、未通过用例以及显示全部。
测试问题描述窗口中描述问题标识、问题状态、问题类型、问题严重等级、问题处理优先级、问题发现时间、问题描述、问题修改建议等。
所弹出的问题描述窗口中自动在问题描述编辑框中描述相应的问题信息,便于测试人员在此基础上修改问题描述。
对于具有软件问题的测试用例执行结果,可以附加软件问题的截图描述。
每个测试用例的执行可以产生多个软件问题,可以查看和修改软件问题描述。
- 软件问题处理
测试完成后需要对软件中产生的软件问题进行处理,软件问题处理包括导入、导出问题列表,开发方逐个问题的同意与拒绝,对于拒绝的问题,需要给出拒绝的理由。
可将原始问题全部导出或部分导出,由开发方统一填写拒绝理由,再导入数据库。
可以进行原始问题的归并处理,以便将根据多个软件问题现象归并出实际的软件问题,每个归并的软件问题需要填写问题标识、问题类型、问题严重性等级、问题优先级、问题属性,问题所对应的测试项、问题描述、问题修改建议。
原始问题归并处理后,在归并问题列表中选择某个问题,给出该问题的原始问题列表积极问题描述。
- 回归测试处理
当被测软件被修改后,可以选择之前第一轮测试的测试内容进行回归测试,回归测试可以自动根据上一轮次测试结果继承全部测试内容,也可以选择仅继承未通过的测试内容。
回归测试轮次中的测试项、测试类型、测试用例可以添加、删除与修改,测试项删除后,该测试项下的所有子项及其关联的测试类型、测试用例均被删除。
回归测试轮次可以增加,也可以删除,删除某个测试轮次后,该测试轮次的测试项、测试用例、测试执行结果等均被删除。
每一轮回归测试均包括被测件接收、测试需求分析、测试用例设计、测试环境搭建、测试任务分配、测试执行等过程。
- 决策分析
决策分析主要用于支撑测试项目组和测试中心领导层分析软件测试项目的开展成果,进行市场、技术等的决策判断,决策分析需要支持项目统计分析、项目趋势对比分析和年度项目分析功能。
- 项目统计分析
项目统计分析以单个项目为基础进行统计分析,可统计分析的量包括测试项统计分析、测试用例统计分析、测试类型统计分析、软件问题统计分析等。
测试项统计分析以列表的形式显示单个测试项目中各个测试级别的测试项数量和测试项总数量。
测试用例统计分析以列表的形式显示单个测试项目中各个测试级别的测试项下的测试用例数量和测试实例数量,并具有统计测试级别测试用例数量、测试实例数量以及项目级别的测试用例数量、测试实例数量的功能。
测试类型统计分析以列表的形式显示单个测试项目中各个测试级别下的测试类型数量及单个测试项目所涉及到的测试类型数量,还可以按照嵌入式软件、非嵌入式软件统计分类。
软件问题统计分析以列表的形式显示单个测试项目中各个测试级别下的所发现的软件问题数量以及致命问题、严重问题、一般问题、建议改进问题的数量,并能给出单个项目项目级的问题统计结果。
软件问题统计分析还可以按照测试类型/问题级别、测试类型/问题属性的方式进行统计分析。
- 项目趋势对比分析
项目趋势对比分析可以对比分析各个测试项目的技术特征变化,包括测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标的项目间对比分析,以判断某个测试项目是否过分偏离总体特征。
项目趋势对比分析时,可以按照不同的项目类型建立趋势对比分析,在趋势对比分析时,添加某个项目后就自动按照统计特征值进行趋势对比分析。
- 年度统计分析
年度项目统计分析可以统计出每个年度或某个时间段的项目整体情况,包括项目数量、已完成数量、未完成数量,对于未完成的区分处于测试的哪个阶段,处于每个阶段的测试项目数量。
年度项目统计分析可以统计分析已完成项目的成果,包括软件配置项数量、测试需求项数量、测试用例项数量、涉及到的测试类型数、测试实例项数量、涉及的软件代码行、发现的软件问题总数。对于发现的软件问题数可以进一步细分为致命问题数、严重问题数、一般问题数、建议改进问题数。
年度项目统计分析时,所有项目数据都可以按照嵌入式、非嵌入式分类统计分析。
年度项目统计分析时,可以计算所有统计量的统计值,包括均值、均方差、中位数、最大值、最小值等,还能计算测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标及其离散程度。
年度项目统计分析可以进行年度间的趋势对比分析,包括测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标的项目间对比分析,以判断某个年度测试项目是否过分偏离总体特征,以做出市场及技术的管理决策。
- 测试项目异地协同处理
为了确保在不联网环境下测试项目能够异地测试,然后再进行项目整合,需要按照测试级别导出某个测试级别树下的所有测试数据,然后再在回到有联网环境时,导入该个测试级别树下的所有测试数据。