凯云通用装备综合测试仪
单项论证
凯云通用装备综合测试仪
型号规格:凯云通用装备综合测试仪
用途:用于支持装备嵌入式软件配置项级别和系统级别的动态验证与测试;支持开展软件测试项目的信息化管理。不仅可以提高我所装备型号嵌入式软件测试验证的自动化程度,促进嵌入式系统装备软件的研发与生产质量,解决具有复杂交联环境装备嵌入式软件测试环境搭建和测试开发的难题;还可以提高测试人员在承担软件测试任务的标准化、规范化与自动化水平。
一、研制理由
1、通用嵌入式系统测试平台研制理由
我单位承担了大量的装备型号研制与生产任务,这些装备型号研制与生产任务中涉及大量的嵌入式设备,用于一些关键任务的控制和管理,系统的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失,这就要求对嵌入式系统尤其是极易导致错误的嵌入式软件在产品定型或者批量生产前进行严格的测试、确认和验证。目前,我所的装备嵌入式软件还主要依赖于根据不同的设备研发配套的工装系统开展测试与验证工作,通用性较差,难以适应产品型号多样性的特点,测试的充分性难以保证,导致软件质量问题频发。在我所软件测评条件建设中,迫切需要建设一套便携式嵌入式系统半实物测试平台,提高测评中心对多样化测试项目的应对能力。
(1)装备嵌入式软件动态确认测试的需求
开展配置项和系统级别的动态测试是嵌入式系统测试与验证必不可少的重要环节。目前,一些通用的软件测试工具都是针对软件代码及覆盖率进行测试的,无法满足软件配置项级别和系统级别黑盒动态测试方面的要求,而这两个级别的测试直接关系到用户需求,关系到嵌入式产品的顺利上市,迫切需要研制能适合配置项级别或系统级别动态确认测试的装备嵌入式软件测试与验证平台。
(2)适应嵌入式系统接口类型多样性的需求
为适应嵌入式分布处理结构和应用联网要求,新一代嵌入式系统大都具有多种类型的对外接口,包括CAN、RS232/422/485等各类数字I/O接口以及A/D、D/A等接口,为保证嵌入式软件测试平台对这些接口都能适应,必须通过综合集成的办法在底层将这些接口驱动进行有机集成,在上层形成与接口类型无关的软件应用,才能确保更好地适合嵌入式系统多种接口类型互联的测试要求。
(3)嵌入式系统多接口关联测试的需求
一个嵌入式系统中可能存在着很多个接口,这些接口之间具有一定的的逻辑输入或输出关系,虽然,目前市场上有许多可以使用的CAN调试助手以及串口调试助手,但这些工具只能实施单接口的测试,当多个接口之间存在一定的逻辑输入关系时,这些调试助手将无能为力。所以研制一套全新的能保证多个接口测试需要的便携式嵌入式系统半实物测试平台尤为重要。
(4)嵌入式系统快速测试和自动测试的需求
嵌入式系统的测试人员应将主要精力放到测试用例设计上,这样才能确保嵌入式系统测试的完备性,平台需要通过在底层集成各种类型的接口驱动将其转换为网络接口,在应用层通过自动化的测试与监控手段为测试人员提供一个灵活易用的测试设计与执行环境,减轻测试人员在协议分析、测试程序开发、测试数据分析等方面的工作量,提高嵌入式系统的测试和验证效率,确保嵌入式系统的质量和投入运行后的可靠性。
(5)嵌入式系统完备测试和安全测试的需求
系统测试的基本要求是被测系统能尽量运行在真实的环境中,这要求嵌入式软件必须实现实时、闭环、非侵入的系统测试,但如果完全依赖于真实的运行环境,由于很难创造各类可能会引起嵌入式软件故障的输入条件,导致对嵌入式软件的测试很难达到充分性要求。如果在真实环境中进行测试,嵌入式软件如果出错,可能会影响其他交联的系统,对其他系统甚至整个系统造成无法弥补的损失,有些错误还可能威胁到人员的安全。因此,必须建立起能够模拟和仿真被测系统外部交联系统的嵌入式软件测试环境,才能实现嵌入式系统完备测试和安全测试。
目前,我单位尚不具备开发便携嵌入式系统软件测试系统的经验,对测试软件的原理、流程等相关要素还处于探索阶段,因此本项目拟研制1套装有通用嵌入式系统测试平台的通用装备综合测试仪用于辅助我单位开展装备型号嵌入式软件测试环境搭建和装备嵌入式系统软件测试工作。
2、软件测试项目管理系统研制理由
软件测试是产品型号研制必不可少的重要环节,规范化、标准化、自动化的软件测试流程管理是软件测试中心业务开展的基础。我所作为兵器装备集团的计算机研究所,无论是开展本所内部的软件测试还是承接外单位的第三方软件测试,都需要一套符合GJB体系的软件测试项目管理系统,用于支持被测件接收、测试需求分析、测试用例设计、测试执行记录、测试问题处理、测试总结等测试过程的信息化管理。
目前,我所开展的软件测试项目主要依赖于体系规范和Word模板的规定人工进行,大量的工作浪费在文档的整理和人工的数据统计上,测试效率底下,测试管理难度较大,难以形成有效的测试数据积累和测试资源复用。通过软件测试项目管理系统的建设,可以把软件测试中所涉及到的主要任务集成起来,有助于提高我所软件测试中心软件测试项目的信息化与数字化管理能力,是软件测试中心质量管理体系良好运行的关键工具。对于软件测试项目组而言,系统中的被测件文档自动识别、测试追踪关系链的自动管理、自动化批量执行、一键化的测试文档生成,可以将测试人员从大量的重复性劳动中解放出来,大幅提高软件测试项目组开展软件测试工作的效率。对于部门与机构而言,系统中的基础信息定制、人员角色分配、软硬件资源管理、项目数据的统计与分析,可以使管理层随时了解所关心的组织级信息,促进软件测试项目的数据积累,提升测试部门与专业软件测评机构的信息化管理水平与软件测试数据利用水平。
目前,我单位软件测试中心质量体系建设尚处于起步阶段,对军用软件测试过程的信息化管理与应用还处于探索阶段,迫切需要一套符合《GJB 2725A关于军用软件测评实验室附加要求》的软件测试项目管理系统,用于支撑软件测试中心软件测试项目的开展。
二、技术要求及设备选型情况
1、综述
凯云通用装备综合测试仪(Kiyun Tester)主机由硬件和软件两部分组成。硬件部分由机壳、主板、显示屏、外部接口组成。机壳采用了全封闭、无风扇的铝合金加固结构,四角配有橡胶垫,背面配有支架。主板为嵌入式x86架构。显示屏为12寸LCD液晶显示屏,最高分辨率可达1366*768,可支持出触摸操作。外部接口提供了9个航插接口,可以通过线缆提供对RS232/RS422/RS485、CAN、AD、DA、DI、DO、USB、以太网等接口的使用,可以通过USB口连接键盘和鼠标。软件部分由操作系统和应用软件组成,操作系统预置了Windows 7操作系统,安装了测试所需的通用嵌入式系统测试平台和软件测试项目过程管理系统应用软件。
产品结构组成如下图所示。
凯云通用装备综合测试仪产品结构组成
2、产品的硬件应用
凯云通用装备综合测试仪(Kiyun Tester)的硬件应用主要为显示屏和航插接口,其主要外观如下图所示。
凯云通用装备综合测试仪主要外观图
如图所示,其四角均配有橡胶垫,可以有效保护设备坚固耐用。其含有9个外部航插接口,其中屏幕上方侧面有5个;屏幕右方侧面有4个,可以通过线缆外接键盘、鼠标及被测设备,其外部效果如下图所示。
凯云通用装备综合测试仪外部效果示意图
2.1、产品基础应用
凯云通用装备综合测试仪(Kiyun Tester)配有5200mAh内置电池,可以在不接通外部电源的情况下,点击“开机”按钮,启动综合测试仪。综合测试仪启动后,设备自动启动并进入Windows 7操作系统。凯云通用装备综合测试仪(Kiyun Tester)外部提供了标准的航插接口,可以使用对应的线缆连接外部设备,方便用户对于综合测试仪的操作使用。
2.2、产品接口应用
Kiyun Tester 通过航插接口,使用USB口连接线缆可以提供4路标准的USB 接口,每一路均可以连接USB设备,包括键盘和鼠标。USB接口默认采用USB2.0标准,能够通过线缆上的USB接口与被测系统进行连接,开展半实物仿真测试。
USB口的应用示意如下图所示。
USB接口应用示意图
Kiyun Tester 通过航插接口,使用COM口连接线缆可以提供RS232、RS422、RS485各2路的串口。每一路均可以连接对应的串口设备,开始半实物仿真测试。
串口的应用示意如下图所示。
RS232/RS422/RS485接口应用示意图
Kiyun Tester 通过航插接口,使用CAN口连接线缆可以提供2路的CAN接口。每一路均可以连接对应的CAN口设备,开始半实物仿真测试。
串口的应用示意如下图所示。
CAN接口应用示意图
Kiyun Tester 通过航插接口,使用以太网口连接线缆可以提供1路的网络接口。可以连接到被测系统的网络接口,开展半实物仿真测试。
以太网口的应用示意如下图所示。
以太网接口应用示意图
Kiyun Tester 通过航插接口,使用连接线缆可以提供AD、DA各4路的接口。每一路接口都可以连接到被测系统或通过接线端子板连接到信号调理模块上,开展半实物仿真测试。
AD、DA接口的应用示意如下图所示。
AD、DA接口应用示意图
Kiyun Tester 通过航插接口,使用连接线缆可以提供DI、DO各4路的接口。每一路接口都可以连接到被测系统或通过接线端子板连接到信号调理模块上,开展半实物仿真测试。
DI、DO接口的应用示意如下图所示。
DI、DO接口应用示意图
3、通用嵌入式系统测试平台技术要求
系统采用分布式架构,要求接口扩展能力强,可灵活组建不同规模的测试环境;
系统具有集成的统一工作环境。集成的测试设计、执行及管理环境,包括项目管理、仿真建模、接口协议描述、测试资源规划、实时监控设计、测试用例开发及管理、测试执行、测试数据统计及分析、测试报告生成等功能;
支持的I/O接口类型包括:RS232、RS422、RS485、CAN、TCP、UDP、AD、DA、DI、DO、1553B、ARINC429等,并可允许根据测试需求补充扩展;
具有仿真建模手段,支持通过图形化界面对被测设备(系统)外部交联环境进行定义和编辑,并定义协议数据与物理层传输通道;
具有通用化的通信协议定义与描述语言处理环境,可以定义和描述各类结构的总线协议;
具有开放的协议模板管理接口,通过不断在测试中积累各领域的应用层协议,可实现针对不同领域嵌入式系统自动化测试解决方案的快速构建;
支持实时图形化监控窗体,包括控制类、表格类以及显示图形;可通过枚举、虚拟仪表、状态灯、曲线图等手段实时监控关键变量;
支持报警条件设置,在达到报警条件的时候以醒目的方式显示报警数据。
支持监控仪表协议字段绑定方法,支持收发数据字段的双向绑定,并具有表达式绑定能力;
支持多监控窗体设计与运行,支持网络环境下任意桌面的监控窗体运行;
提供测试用例脚本编辑与开发环境,通过简单的通道与协议字段赋值,便可完成测试数据的收发与测试逻辑的判断;
具有插件化的功能扩充能力,无论是通信协议描述还是测试用例描述,平台都均需提供对插件的开发支持;
可按二进制、八进制、十六进制以及解析后的数据的形式监测输入与输出的报文并查询过滤;
支持测试结果的查看、测试报告自动生成;
支持单配置项单接口和多接口以及多配置项的系统测试;
4、软件测试项目管理系统技术要求
具有基础信息维护功能,可以完成用户管理、权限管理、数据字典管理、机构或单位测试资源管理等;
可以管理软件测试中心的角色与人员,包括系统管理员、测试项目负责人、测试人员、SQA 、SCM、技术主管、质量主管、中心领导等信息并进行权限分配;
可以进行功能测试、人机交互界面测试、性能测试、可安装性测试、容量测试等测试类型基础数据定义与描述;
具有测试项目的登记与建立功能,实现项目组成员角色分配与测试项目软件树结构定义;
具有被测件接收与处理功能,可以完成被测件文档及代码的自动接收与分析;
具有软件测试需求分析功能,可以建立软件测试需求项,描述测试要求、设计约束、测试充分性与终止条件、测试项的输入与输出等;
具有软件测试用例的设计与描述功能,提供测试用例的前提与约束、测试步骤操作说明、测试步骤预期结果与评判准则的编辑环境;
具有测试执行任务管理功能,可以完成测试用例执行的指派和任务分配工作;
具有测试执行过程管理功能,在系统中选择测试执行任务,对所设计的每个测试用例进行测试执行,可以支撑测试执行记录、软件问题记录的填写工作;
具有软件问题的管理功能,描述问题的优先级、问题的类型、问题的现象、修改建议等;
具有软件问题的导入与导出处理功能;
提供对软件版本回归测试功能,可自动分析与继承上一轮次的测试需求与测试用例;
提供测试项目的统计与查询功能;
提供多个测试项目的查询、统计与趋势分析功能;
提供测试项目进度与计划管理功能;
提供软件测试项目SQA与SCM流程管理功能;
提供测试需求规格说明、测试说明、测试记录、软件问题记录、软件问题报告、软件测试报告等文档的自动生成功能,支持测试数据与文档的归档处理功能;
支持软件测试项目的多人协同工作,支持30人的同时在线处理;
支持无联网环境下测试任务的分工与测试任务的统合功能;
2、设备的初步选型情况
经调研,目前国内市场上嵌入式系统软件测试工具主要分为以下三类:纯硬件方式、纯软件方式和硬件与软件结合的方式。
纯硬件的嵌入式系统测试平台主要是利用示波器、逻辑分析仪、协议分析仪、波形发生器等仪器设备实现对嵌入式系统的测试,尽管这些仪器设备具有比较高的性能,可以实现对嵌入式系统数据总线和控制总线非侵入式的数据采集和监控,但它们主要应用在嵌入式系统硬件的设计和测试工作中,可以较好地实现硬件层和链路层的测试与分析,对嵌入式软件的测试能力则比较薄弱,不能支持各个测试接口之间的数据关联,对于应用层协议的分析与判读自动化程度不高,对测试结果分析的要求较高。
纯软件方式的嵌入式软件测试平台利用全数字仿真技术,在PC机上模拟整个嵌入式硬件系统,不但包括核心CPU,而且将外围各种器件,如串口、定时器、通用输入输出接口等进行数字化的仿真,嵌入式软件无需改动或者稍加改动就能在这个仿真环境下运行,通过仿真模型内建的测试接口导出和发送测试数据,驱动被测软件运行,实现对嵌入式系统软件动态的封闭测试。纯软件方式的嵌入式软件测试平台难以适应当前硬件芯片不断更新的现状,许多项目也都是针对某一特定的硬件平台进行全数字仿真研究,难以通用,并且尚停留在实验室研究阶段,还没有形成可供选择的有效产品。
硬件与软件结合的嵌入式软件测试平台是当前较为实用的嵌入式系统软件测试解决方案,同时也是发展趋势,这类测试平台又分为两类。一类是以实现嵌入式软件插装和插装信息收集为主要目标的嵌入式软件覆盖率和性能测试工具,如AMC公司生成的CodeTest以及LDRA公司生产的Testbed,这种测试平台通过信号捕捉探头进行插装数据的采集和上传,关注的重点是嵌入式软件内部的逻辑结构,而不是嵌入式软件外部的功能表现,与嵌入式系统确认测试的要求有较大的差距。另一类硬软件结合的嵌入式测试平台则以系统确认测试为主要目标,通过集成各类总线板卡,开发测试应用程序,实现对嵌入式系统非侵入式的闭环测试,测试的主要对象是嵌入式系统的功能、性能、边界、可靠性等外部质量特性,这些外部质量特性也是嵌入式系统用户关切的质量特性。
硬件与软件结合的以系统确认测试为主要目标测试系统比较适合于我单位的测试应用,该类型的测试系统主要有国外的Trace32、Dspaced等,国内的有凯云联创(北京)科技有限公司的ETest_USB。ETest_USB具有完全自主知识产权,主要面向实验室和外场测试的需要,是针对于嵌入式系统进行实时、闭环、非侵入式测试的自动化测试平台,适用于嵌入式系统在设计、仿真、开发、调试、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。系统具有扩展与适应能力强的特点,分层构件化的软件架构使得系统可以灵活集成各类测试仪器,所提供的接口应用协议描述语言及其编译器使得系统可以适应几乎任何类型的自定义通信协议,测试执行监控窗体设计具有友好的人机交互性,可以在不编写任何测试用例脚本的情况下完成基本的测试任务,并提供了高级的测试用例脚本编辑、编译与执行功能,实现更广泛的测试应用能力。
凯云联创(北京)科技有限公司在国产自主可控软件测试类产品的研究、开发方面具有深厚的技术基础和行业背景,主要产品覆盖软件测试业务全过程,其中有自主研发的嵌入式系统测试平台集成开发环境(ETest Studio)、通用装备综合测试仪(Kiyun Tester)、便携式嵌入式系统半实物测试平台(ETest_USB)、工业物理系统测试验证平台(ETest_CPS)、实时级嵌入式系统半实物仿真测试平台(ETest_RT)、嵌入式系统测试教学实训平台、软件测试项目管理系统、测试数据生成与管理软件等。基于ETest Studio所开发的系列产品(ETest_USB、ETest_CPS 、ETest_RT)已在装甲兵工程学院、陆军装备软件测评中心、航天三院33所、合肥电子工程学院、中国工程物理研究院等单位得到成功应用。
综上所述,凯云联创(北京)科技有限公司在公司、产品、技术、服务等方面都具有一定的优势和特色,且较为适用于我单位装备型号的嵌入式软件测试任务的开展和测试平台的研究工作,有利于解决目前测评中心测试环境构建能力以及测试自动化程度不足的问题,实现装备嵌入式软件的深度测试,提高我所装备型号嵌入式软件的质量。因此本项目拟研制1套凯云联创(北京)科技有限公司的Kiyun Tester系统。
三、系统描述
1、拟选厂商简介
凯云联创(北京)科技有限公司(简称:凯云科技)成立于2014年,核心业务是为军方、航空航天、中电、兵器、船舶、核工业、核物理、院校、交通、水利水电、通信以及金融等行业提供软件测试工具与测试服务,并承接软件开发、系统集成及信息技术服务。凯云科技前身是北京凯云创智软件技术有限公司,始创于2005年,自主研发了超过40项拥有全部知识产权的软硬件产品,是国家级高新技术企业、北京市双软认定企业。
凯云科技自创建以来,始终致力于国产自主可控软件测试类产品的研究、开发及培训推广,为国内军用、工业、民用以及院校培训教学提供具有国际领先水平、通用性强、可靠性高、应用成本低的通用嵌入式系统测试及管理环境,同时积极引进国内外先进技术。主要产品覆盖软件测试业务全过程,其中有自主研发的嵌入式系统测试平台系列产品、嵌入式系统测试教学实训平台、软件测试项目管理系统、测试数据生成与管理软件等,引进产品包括各类源代码分析测试、功能测试、性能测试、安全性测试等工具。
基于长期在嵌入式系统及软件测试领域的研究与创新,凯云科技目前已发展为国内软件测试类产品和服务的主要供应商,公司总部位于中关村丰台园区,并在上海、西安、成都设有办事处。在全国有包括:航天、航空、兵器、电子、船舶等400余家高端客户,在装备软件工程与质量检测方面,拥有优异的业绩和良好的口碑。
2、产品的主要配置
2.1、凯云通用装备综合测试仪组成
凯云通用装备综合测试仪(Kiyun Tester)为软、硬件结合的设备,设备的主要硬件配置由测试仪主机、航插线缆(支持串口、网口、CAN口等接口类型)、电源适配器及充电线组成,外购件主要配置由键盘、鼠标和接线端子板组成。所有硬件板卡均集成在一台主机上,从而灵活便携,能适应多种测试环境搭建的需要,同时也有利于充分利用现有的测试资源。软件部分由通用嵌入式系统测试平台和软件测试项目管理系统两部分组成。
2.2、通用嵌入式系统测试平台
2.2.1、通用嵌入式系统测试平台组成
通用嵌入式系统测试平台由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。系统架构如图3-1所示。
图3-1 ETest_USB系统组成
使用ETest_USB平台进行装备嵌入式系统软件测试的步骤如下(见图3-2所示):
首先使用测试设计软件建立待测系统模型、设计测试用例及数据、生成测试目标文件。
然后利用CAN、RS232等各类通信板卡形成适合于待测单配置嵌入式设备或待测嵌入式系统的适配接口,连接到待测系统。
接下来使用测试执行服务软件读取测试目标文件;测试执行服务软件驱动测试执行客户端软件,测试执行客户端软件将测试数据转换为各类板卡的输出数据输出到被测对象,从而驱动被测对象的软件运行。
同时,被测对象运行所产生的输出数据发送到通信板卡接口,通过测试执行客户端软件进入测试执行服务软件中。在测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。
图3-2通用嵌入式系统测试平台使用流程
ETest采用构件化分层的软件开发框架,软件使用Visual Studio 2010开发环境,底层代码采用VC++语言开发,集成框架基于Micosoft .Net 4.0,集成开发语言使用C#,形成图3-3所示的分层结构。
ETes软件由服务器软件与客户端软件形成C/S结构的软件,客户端软件负责运行与通信板卡的交互,服务器软件负责实现测试设计与测试执行调度,一个服务器与多个客户端可以形成不同规模层次的测试系统,以确保满足不同规模的测试需求。
软件架构共分为5层,分别为设备驱动服务层、通信服务层、协议服务层、应用服务层和应用层,通过这5层结构,实现了软件的构件化与模块化,确保能够适应快速变化的测试需求。
图3-3 ETest软件分层结构
驱动层服务层用于在操作系统中安装板卡所带的各种驱动,包括RS232、RS422、RS485、CAN、AD/DA等设备的驱动,实现系统对所有硬件设备的统一管理,通过驱动服务层,测试平台将复杂的硬件设备管理进行封装与统一。
通信服务层用于在驱动层的基础上,封装成程序编程接口,以屏蔽不同的硬件设备通信编程接口的不同,通信服务层包括CAN通信、RS232通信、RS422通信、RS485通信等,通过通信服务层可以确保上层应用软件进行调用通信时能够统一实现。
协议服务层用于对通信协议进行描述与解析,包括DPD语言编译服务、协议模型抽象、通道模型抽象、数据类型抽象、条件逻辑抽象、计算模型抽象、数组模型抽象、校验模型抽象、校验算法接口模型等,通过协议服务层,实现了应用服务层的通信协议编解码。
应用服务层通过系列应用构件为实现测试平台的主体应用奠定了基础,包括了测试方案、测试项目、仿真模型绘制、通道管理、协议管理、外围设备、监控设计、监控运行时、I/O中心、元数据服务器、脚本解析、客户端管理、时序处理、多线程服务、数据对象编码/解码等。
应用层是ETest测试平台的主体应用部分,包括测试设计软件、测试执行服务软件、测试执行客户进程与数据监控软件、设备资源管理软件以及一些工具辅助软件。
2.2.2、通用嵌入式系统测试平台各模块主要功能
(1)测试设计软件模块
测试设计软件模块对待测系统及其对外接口进行建模,进行协议编辑及分析、创建测试监控、建立硬件规划、创建及管理测试用例,确定测试要准备的接口设备数量。其主要功能包括:
(2)测试执行服务软件模块
测试执行软件模块为自动化测试执行软件的主要部分,与客户端软件相配合,驱动测试数据,进行自动化测试执行。主要实现以下功能:
(3)测试执行客户进程及数据监控模块
测试执行客户进程及数据监控模块运行在测试主机。主要实现以下功能:
(4)设备资源管理软件模块
设备资源管理软件模块提供了系统支持的测试设备及通道的管理功能,提供了系统设备扩展的接口。其主要实现以下功能:
(5)辅助工具
工具软件提供了嵌入式系统测试时部分常用的软件工具,主要包括以下软件模块:
具有曲线数据编辑、坐标选择、曲线数据读取、曲线数据存储等功能,配合测试执行软件,提供一种测试数据生成手段。
在测试执行时,可记录测试执行中的数据,供测试执行结束后查看与分析,包括协议选择、数据过滤、报警条件设置功能。
提供应用协议的表格化编辑功能,可以设置协议的字段组成、字段类型、字段默认取值等。
提供CRC校验算法的设计功能,可设计自定义的CRC算法,诊断其算法正确性,并最终形成协议描述语言中的CRC字段算法插件。
2.3、软件测试项目管理系统
2.3.1软件测试项目管理系统组成
软件测试项目管理系统采用C/S软件架构,是一个多人协同工作的环境。系统部署如图3-4所示。
图3-4 软件测试项目管理系统部署关系图
数据库服务器端部署SQL Server数据库,包括人力资源数据库、设备资源数据库、项目管理数据库、测试项目数据库、历史归档数据库。
客户端部署软件测试项目管理系统运行程序,客户端登录数据库服务器端,每个测试项目组都有自己独立操作的测试项目数据库,测试项目组内部协同操作测试项目数据库。
凯云STM软件测试项目管理系统的软件模块组成如图3-5所示。
图3-5 STM软件测试项目管理系统软件模块组成
软件自上而下共分为六层,分别为系统服务层、数据服务层、支撑服务层、基础信息维护层、业务应用层和决策分析层。
系统服务层提供操作系统、字处理环境和数据库引擎服务。
数据服务层提供数据库结构表,包括人力资源数据库、设备资源数据库、项目管理数据库、测试项目数据库、历史归档数据库。
支撑服务层主要用于提供上层应用需要的算法服务,包括文档生成服务、文档解析服务、测试用例生成服务、数据统计分析服务、数据库备份与恢复服务等。
基础信息管理层包括系统管理和测试基础信息管理两部分,系统管理提供用户管理、角色权限管理、系统名词定义、文档书签管理等功能,测试基础信息管理是与测试项目相关的基础信息管理,包括测试类型管理、项目类型管理、软件类型管理、测试级别管理、硬件资源管理、软件资源管理。
业务应用与决策分析是测试项目管理的主要业务流程,业务应用针对单个项目进行,包括项目管理过程和项目技术过程,项目管理过程包括项目登记、计划进度管理、质量保证过程管理、配置管理过程管理、项目归档过程管理,项目技术过程包括被测件接受与处理、测试需求分析过程、测试用例设计过程、测试环境搭建过程、测试执行任务分配与管理、测试执行过程、软件问题处理、回归测试处理,决策分析主要包括项目统计分析、项目趋势对比分析和年度项目分析。
2.3.2、软件测试项目管理系统组成各模块主要功能
对于系统服务层、数据服务层、支撑服务层而言,由于属于软件体系结构设计的范畴,所有涉及业务的功能都在基础信息管理、业务应用和决策分析中,这里对这些涉及业务的功能模块进行说明。
系统管理的主要目的是建立软件测试中心的组织架构与人员组成,为每名成员确定角色与权限,定义系统名词和数据字典,进行文档模板的书签管理。
用户管理管理测试机构内的所有人员,包括用户名称、用户类型、用户权限、联系方式、用户编号;可以进行用户的添加和删除;可以进行用户密码的设置与管理。
角色管理功能管理以下有关软件测试项目的八类角色,主要包括系统管理员、测试项目负责人、测试人员、SQA(软件质量保证)、SCM(软件配置项管理)、技术主管、质量主管、中心领导,支持添加、删除角色的功能,角色属性包括角色名称、角色编码、角色职责描述。
权限管理为测试机构中心的所有角色分配权限,权限指对各个功能模块操作的权限,权限分配包括查看、添加、修改、删除,可分配权限的模块涉及基础信息维护、业务应用和决策分析的所有功能模块。
数据字典提供问题状态、问题属性、问题严重性等级、问题类型、软件中的计量单位等数据字典,用于使STM系统具有更好的适应性。
系统名词定义对STM中出现或使用的简写字母进行注解诠释,主要包括测试级别、测试类型的名词进行统一。
书签管理的主要功能是用来定义和标识文档输出模板中用到的书签信息及书签的数据来源,包括项目编号、项目名称、测试单位、密级、文档日期等于与文档生成密切相关的书签进行管理。
测试基础信息管理主要提供与测试项目相关的信息管理功能,在建立“测试项目”前,必须维护好“测试类型、项目类型、软件类型、测试级别”数据。
测试类型管理可以添加、删除和修改测试类型名称、测试类型标识、测试类型编号、测试类型描述、测试类型目标、测试类型的结果分析要求、测试类型的测试终止条件等,可以管理的测试类型包括功能测试、性能测试、安全性测试、可靠性测试、容量测试、强度测试、数据处理测试、代码审查、代码走查、静态质量分析等。
项目类型管理对测试项目的类型进行管理,主要包括首次开发项目、改造项目还是其他项目,项目类型可以添加、删除与修改。
测试级别管理包括单元级别测试、部件级别测试、配置项级别测试和系统级别测试,测试级别可以添加、删除与修改。
软件类型管理描述待测试的应用程序(软件)属于哪一类,包括嵌入式软件、非嵌入系统软件两大类,软件类型可以添加、删除与修改。
硬件资源管理管理测试单位现有的测试硬件资源,为后面测试环境的搭建提供依据,硬件属性设置包括序号、名称、标识、型号、计量单位、用途、购买日期等,硬件设备可以添加、删除与修改。
软件资源管理管理测试单位现有的测试软件资源,为后面测试环境的搭建提供依据,软件属性设置包括序号、名称、标识、软件版本、用途、购买日期等,软件设备可以添加、删除与修改。
项目管理过程是测试流程管理中的管理过程,包含项目登记过程、测试进度与计划管理、测试项目质量保证过程、测试项目配置管理过程、测试项目归档管理过程。
项目登记是测试中心测试项目的开端,项目登记过程包括创建新测试项目,进行角色分配,创建软件结构定义,还包括删除某个测试项目。
测试项目可输入的内容包括项目编号、项目名称、项目类型(新研、改造)、项目状态、委托单位、研制单位、测试单位、项目开始时间、项目预期结束时间、项目密级(内部、秘密、机密、绝密)、项目属性(内部测试、第三方测试、定型测评)。
创建新测试项目时需要分配项目组成员,包括测试项目负责人、测试人员、SQA人员、SCM人员。
创建新测试项目时需要录入被测系统的软件结构定义,包括系统的子系统以及子系统下软件配置项以及配置项下软件单元的组成信息,每个对象的基本信息包括软件名称、软件标识、软件类型(嵌入式、非嵌入式)、软件开发语言(汇编、C、C++、Java、C#、VB),软件运行环境(WindowsXP、Windows 7、VxWorks等)、软件研制单位、软件概要描述等。
计划进度管理主要确定测试项目的进度及任务分配,测试项目的进度确定里程碑节点,任务分配确定每个人所承担的项目子任务。
里程碑节点确定被测件接收、测试需求分析、测试设计、测试执行的起始时间、完成时间、评审时间、结束时间。其中完成时间是指任务的完成时间,而结束时间是指评审通过并修改完成后的里程碑节点关闭时间。
在每一个进度阶段中确定该进度阶段的任务组成,包括任务名称、任务标识、任务概述、任务开始时间、任务结束时间、任务预计的工作量(人时)、任务的成果。
在测试项目推进过程中,可以根据实际进度不断调整进度计划方案,并确定预测进度与工作量与实际的偏离程度。
质量保证过程主要是在项目的阶段中开展质量保证活动,主要包括制定项目的质量保证计划、审核工作产品、评审项目流程。每个阶段所产生的工作产品有所不同,被测件接收阶段的工作产品为被测件文档接收清单,测试需求分析阶段的工作产品为测试需求规格说明、测试设计阶段的工作产品为测试说明、测试执行阶段的工作产品为测试记录、测试问题记录、测试问题报告。评审项目流程主要评审项目是否按照任务分配和流程股的要求开展,主要包括是否开展了评审工作、配置管理工作是否满足要求等。
配置管理过程主要是在项目的各个阶段中开展配置管理活动,主要包括制定项目的配置管理计划,确定各个工作产品的名称、标识与控制要求,在各个项目阶段进行配置项的入库、出库及发布等工作。入库填写入库的配置项名称、版本、标识、申请入库的人员及角色。出库填写出库的配置项名称、版本、标识、申请出库的人员及角色。发布时填写需要发布的配置项名称、版本、标识、发布的人员及角色、发布的时间。
项目归档管理是在项目结束后进行项目的归档,主要包括归档文档的生成、归档数据的打包,填写归档时间、归档人、档案保管年限等,将测试项目的测试数据从管理系统中的数据库中备份,形成历史归档库。
对于在测试项目登记过程中已经确定出项目组成、软件规模、总体进度要求的项目,可以按照模型自动生成进度计划管理、质量保证过程、配置管理过程的数据。
项目的技术过程是测试项目所工作的主要技术内容,主要包括被测件的接收与处理、测试需求的分析、测试用例设计、测试环境搭建、测试任务分配、测试任务的执行、软件问题的处理、回归测试。
被测件接收过程管理和接收由研制方提供的待测试应用程序(软件)的相关资源,如,源代码、设计文档、设计说明、软件需求、规格说明、使用手册、安装包等。
被测件接收的文档中如果提供的资源中存在Word文档并且具有规范的文档结构,导入完成后,该Word文档同时被增加到引用文档,包括Word文档的章节,用于后续应用程序(软件)的测评追踪。
被测件接收时可以自动分析研制方提供的目录,并按照各个软件配置项的文档、代码、安装包的形式组织被测件接收目录,可以添加、删除与修改被测件资源存储的位置。
被测件接收时可以确定引用文档的组成,添加、删除与编辑引用文档属性,包括引用文档标识、名称、版本、发布日期、编制单位、文档页数等信息。
测试需求分析过程依据应用程序(软件)研制时的需求,添加、删除和修改测试项、测试类型,确定测试项的需求追踪关系。
测试项基本信息包括测试项名称、测试项标识、测试项测试类型、优先级、创建时间、创建人、测试项描述、测试项的软件设计约束、测试的充分性与终止条件、测试项的输入与输出。
测试项创建完毕后,需要编辑和修改测试项的追踪关系,测试项追踪关系可以为一对多关系。测试需求项追踪可以直接在界面中选择所需追踪到的文档的小节号。
在测试项下可以有测试子项,每个测试子项所需要编辑的内容与测试项相同。
测试用例为测试项下测试类型的测试用例,测试用例设计提供测试用例的新建、删除、移动、编辑等功能。
测试用例需要编辑的内容包括测试用例标识、测试用例名称、测试用例需要使用的测试工具、测试用例执行的前提和约束、测试用例的测试目的、测试用例所采用的测试方法、测试用例正常终止条件、测试用例异常终止条件。
每个测试用例都需要具有测试步骤设计,测试步骤设计提供添加、删除、修改、上移、下移操作,每个测试操作步骤包括步骤描述、步骤预期结果。
在测试用例的前提和约束、步骤操作描述、步骤预期结果描述中可以增加描述参数,实现测试用例的实例化参数描述。
测试用例无论有无参数,都默认实例化一个测试用例实例。
在测试用例具有参数描述时,测试用例的实例化用表格的形式显示出每个实例所取得的参数值。
对于具有实例化的测试用例,可以按照组合测试用例设计自动生成满足组合覆盖要求的测试用例。
组合测试用例生成时,可以输入实例化参数的取值范围、枚举取值,通过参数范围值的输入可以自动生成符合要求的测试用例。
测试用例的实例可以添加、删除和修改。
测试环境搭建模块从测试信息管理模块的硬件资源管理、软件资源管理中选择所需的硬件和软件搭建测试环境,也可以根据需要临时添加本项目所需要的额外的硬件和软件设备进行测试环境搭建。
测试环境中的硬件描述中需要描述硬件名称、硬件标识、硬件来源、硬件知识产权、硬件的用途。
测试环境中的软件描述中需要描述软件的名称、软件标识、软件来源、软件知识产权、软件的用途。
测试环境搭建中可以为测试环境添加附图,附图为测试环境拓扑图,附图的格式支持Visio、JPG、BMP、Word等。
测试任务分配功能主要是创建测试任务,指定任务包含的测试用例,为所有的测试用例指定具体的测试执行人员(测试人员)。
测试任务可以建立、删除、上移、下移。
测试任务编辑的内容包括任务号、任务名称、任务开始时间、任务结束时间、创建人、负责人、监测人、任务的状态、任务的执行人。
任务的执行人可以是一个,也可以是多个。
为每个测试任务分配测试任务的测试用例,测试任务中的测试用例可以添加与删除。
测试用例添加到测试任务中后,待分配测试用例列表中将消失,测试用例从测试任务中删除后,待分配测试用例列表中将增加该用例。
测试任务分配完成后进入测试执行过程,测试执行过程选择一个测试实例执行,每选择一个测试实例时要求显示出该测试实例的描述及步骤。
测试执行中填写测试执行的每个测试步骤的实际运行结果,当实际运行结果与预期结果不一致时,可以选择测试步骤失败选项,对于失败的测试步骤自动弹出测试问题描述窗体。
测试执行中每个测试步骤显示出该测试步骤的执行状态、执行状态包括未执行、通过、未通过,自动给出测试执行时间。
每个测试用例的测试执行生成测试原始记录,原始记录可以查看,但不允许编辑和修改,原始记录包括测试执行过程描述及总结、测试过程监督情况说明。
测试任务中的测试用例列表中可以按照用户选择显示出已执行用例、未执行用例、通过用例、未通过用例以及显示全部。
测试问题描述窗口中描述问题标识、问题状态、问题类型、问题严重等级、问题处理优先级、问题发现时间、问题描述、问题修改建议等。
所弹出的问题描述窗口中自动在问题描述编辑框中描述相应的问题信息,便于测试人员在此基础上修改问题描述。
对于具有软件问题的测试用例执行结果,可以附加软件问题的截图描述。
每个测试用例的执行可以产生多个软件问题,可以查看和修改软件问题描述。
测试完成后需要对软件中产生的软件问题进行处理,软件问题处理包括导入、导出问题列表,开发方逐个问题的同意与拒绝,对于拒绝的问题,需要给出拒绝的理由。
可将原始问题全部导出或部分导出,由开发方统一填写拒绝理由,再导入数据库。
可以进行原始问题的归并处理,以便将根据多个软件问题现象归并出实际的软件问题,每个归并的软件问题需要填写问题标识、问题类型、问题严重性等级、问题优先级、问题属性,问题所对应的测试项、问题描述、问题修改建议。
原始问题归并处理后,在归并问题列表中选择某个问题,给出该问题的原始问题列表积极问题描述。
当被测软件被修改后,可以选择之前第一轮测试的测试内容进行回归测试,回归测试可以自动根据上一轮次测试结果继承全部测试内容,也可以选择仅继承未通过的测试内容。
回归测试轮次中的测试项、测试类型、测试用例可以添加、删除与修改,测试项删除后,该测试项下的所有子项及其关联的测试类型、测试用例均被删除。
回归测试轮次可以增加,也可以删除,删除某个测试轮次后,该测试轮次的测试项、测试用例、测试执行结果等均被删除。
每一轮回归测试均包括被测件接收、测试需求分析、测试用例设计、测试环境搭建、测试任务分配、测试执行等过程。
决策分析主要用于支撑测试项目组和测试中心领导层分析软件测试项目的开展成果,进行市场、技术等的决策判断,决策分析需要支持项目统计分析、项目趋势对比分析和年度项目分析功能。
项目统计分析以单个项目为基础进行统计分析,可统计分析的量包括测试项统计分析、测试用例统计分析、测试类型统计分析、软件问题统计分析等。
测试项统计分析以列表的形式显示单个测试项目中各个测试级别的测试项数量和测试项总数量。
测试用例统计分析以列表的形式显示单个测试项目中各个测试级别的测试项下的测试用例数量和测试实例数量,并具有统计测试级别测试用例数量、测试实例数量以及项目级别的测试用例数量、测试实例数量的功能。
测试类型统计分析以列表的形式显示单个测试项目中各个测试级别下的测试类型数量及单个测试项目所涉及到的测试类型数量,还可以按照嵌入式软件、非嵌入式软件统计分类。
软件问题统计分析以列表的形式显示单个测试项目中各个测试级别下的所发现的软件问题数量以及致命问题、严重问题、一般问题、建议改进问题的数量,并能给出单个项目项目级的问题统计结果。
软件问题统计分析还可以按照测试类型/问题级别、测试类型/问题属性的方式进行统计分析。
项目趋势对比分析可以对比分析各个测试项目的技术特征变化,包括测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标的项目间对比分析,以判断某个测试项目是否过分偏离总体特征。
项目趋势对比分析时,可以按照不同的项目类型建立趋势对比分析,在趋势对比分析时,添加某个项目后就自动按照统计特征值进行趋势对比分析。
年度项目统计分析可以统计出每个年度或某个时间段的项目整体情况,包括项目数量、已完成数量、未完成数量,对于未完成的区分处于测试的哪个阶段,处于每个阶段的测试项目数量。
年度项目统计分析可以统计分析已完成项目的成果,包括软件配置项数量、测试需求项数量、测试用例项数量、涉及到的测试类型数、测试实例项数量、涉及的软件代码行、发现的软件问题总数。对于发现的软件问题数可以进一步细分为致命问题数、严重问题数、一般问题数、建议改进问题数。
年度项目统计分析时,所有项目数据都可以按照嵌入式、非嵌入式分类统计分析。
年度项目统计分析时,可以计算所有统计量的统计值,包括均值、均方差、中位数、最大值、最小值等,还能计算测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标及其离散程度。
年度项目统计分析可以进行年度间的趋势对比分析,包括测试项/代码行、测试实例/代码行、测试用例/代码行、问题数/代码行、问题数/测试实例数等复合计算指标的项目间对比分析,以判断某个年度测试项目是否过分偏离总体特征,以做出市场及技术的管理决策。
为了确保在不联网环境下测试项目能够异地测试,然后再进行项目整合,需要按照测试级别导出某个测试级别树下的所有测试数据,然后再在回到有联网环境时,导入该个测试级别树下的所有测试数据。