中国电子商会信息工程测试专业委员会主办
今天是 2024年 12月 09日 星期一
中国电子商会信息工程测试专业委员会
Integrity archives
诚信档案
技术前沿 您的位置:主页 > 诚信档案 > 技术前沿 >
工业软件测试验证体系
2023-05-26 返回列表

导语:提出了包含测试标准 方法 工具 环境 用例和人才等要素的工业软件测试验证体系 在一定程度上缓解了工业软件测试验证的难题

工业软件是工业技术/知识、流程的程序化封装与复用,能够在数字空间和物理空间定义工业产品和生产设备的形状、结构,控制其运动状态,预测其变化规律,优化制造和管理流程。工业软件来源于工业产品研制过程中的应用需求,按照工业产品研制的全生命周期流程,工业软件可分为研发设计、生产制造、服务保障和经营管理4个方面。

 

研发设计软件主要服务于工业产品需求、系统设计与仿真、详细设计与仿真等阶段,主要包含基于模型的系统工程(MBSE)、计算机辅助设计(CAD)、计算机辅助工程(CAE)和电子领域的设计仿真(EDA)等软件;生产制造类软件主要服务于工业产品工艺规划分析、生产排程等阶段,主要包含计算机辅助工艺规划仿真分析(CAPP)软件、制造执行(MES)系统和计算机辅助制造(CAM)等;

 

经营管理类软件主要服务于工业产品研制流程中涉及的项目管理、财务管理等,主要包含项目管理(PM)软件、企业资源计划(ERP)软件和客户关系管理(CRM)软件等类别;服务保障类软件主要服务于工业产品的维修阶段,主要包含故障预测与健康管理软件(PHM)、交互式电子手册(IETM)等类别。

 

针对通用软件的测试,参考国家标准规范可把测试类别分为单元测试、集成测试和系统测试,针对委托开发的软件产品,还存在验收测试,通过各个级别的软件测试,保障产品质量。工业软件也属于软件产品,遵循软件工程的开发方法,经过单元测试、集成测试、系统测试和验收测试能保障其质量,提升其成熟度。然而,工业软件来源于工业需求,除了具备软件属性,还具备工业属性,而且后者是其最重要的属性之一,因此其测试验证方法与通用软件的测试验证方法有所不同。

 

工业软件测试验证的挑战

 

由于工业软件来源于工业应用需求,并作为生产力工具服务于工业产品的研制,在功能、性能效率、兼容性、可靠性和安全性等方面有着极高的要求,一个小的软件缺陷就有可能会给用户带来不可估量的财产损失,威胁到人身安全甚至国家安全,合格的工业软件产品应具备功能正确、高性能效率、高可靠性、高安全性和数据互联互通等特点。

 

工业软件属于软件产品,为保障工业软件产品质量,其研发过程也要遵循软件工程的开发方法,需在研制全生命周期中进行“需求分析”“概要设计”“详细设计”“编码”“单元测试”“集成测试”和“系统测试”,如图1所示,测试作为工业软件研制全生命周期的重要内容,对保障产品质量,提升产品成熟度具有重要的作用。

图 1 软件开发模型

 

通过单元测试、集成测试和系统测试来验证各个阶段的成果是否符合阶段研制需求,经过测试的工业软件产品在功能、性能效率等方面具有较大的提升,亦能减少软件故障、安全漏洞等缺陷。然而,大量的实践表明,工业软件研制厂商经过“单元测试”“集成测试”和“系统测试”能解决软件的大部分缺陷,但是仍然会存在部分问题,此时的工业软件产品若投入市场,会给用户带来诸多不便,因此工业软件的研制过程还远没有结束。

 

工业软件来源于工业应用需求,软件形式是其载体,工业机理模型、算法是核心,工业属性是其重要属性之一,对于工业软件特别是研发设计类工业软件,科学计算是其本质。

 

针对工业属性的测试验证是工业软件测试验证的重点,工业属性测试反映在功能测试和性能测试上,因此,在其研制流程中还需补充“工程化应用验证”,即在实际的工业应用场景中,由工业软件用户主导对其功能、性能效率、兼容性、可靠性和安全性等特性进行测试,从而验证工业软件是否符合用户的需求。

 

事实证明,经过工程化应用验证的软件产品能够解决大部分缺陷,确保工业软件产品可用、好用。工业软件产品测试框架如图2所示。

图2 工业软件产品测试框架

 

针对工业软件的特殊性,其测试验证存在如下挑战。

 

a)对测试人员的要求极高

 

由于工业软件具备多学科融合、应用场景多样等特点,因此研发工业软件既需要擅长软件开发,又需要擅长物理、数值计算,并深刻地了解工程的复合型人才,当然对测试人员也提出了极高的要求。

 

b)标准测试用例的设计难度较大

 

由于工业软件门类众多,应用场景复杂,需要测试人员对软件的应用场景进行深入的研究,从不同的维度对工业软件测试用例进行设计。

 

c)软件结果的可信性度量难度大

 

工业软件特别是研发设计类工业软件的重要功能之一是在计算机环境中对工业产品的强度等进行虚拟仿真,因此计算结果的精度影响着用户对软件的信任程度。然而,目前并没有一种对软件可信度进行度量的方法,度量难度极大。

 

工业软件测试验证体系研究

 

在执行工业软件测试时,其测试流程一般包括4项活动,按照顺序分别是:测试策划、测试设计、测试执行和测试总结,如图3所示。

 

图 3 工业软件测试流程

 

a)测试策划

 

测试策划主要是进行测试需求分析,依据标准、客户需求和申报书等顶层文件来确定需要测试的内容或质量特性,编写测试说明,并制定测试计划(含资源计划和进度计划),最终形成测试大纲。

 

b)测试设计

 

测试设计是指依据测试需求,分析并选用已有的测试用例或设计新的测试用例,获取并验证测试数据,校准测试环境,并进行测试就绪评审,主要评审测试大纲的合理性,测试用例的正确性、有效性和充分性等是否符合要求。

 

c)测试执行

 

依据测试用例对软件进行测试,获取测试结果;分析并判断测试结果,对测试过程的正常或异常终止情况进行核对。

 

d)测试总结

 

整理和分析测试数据,评价测试效果,编制测试报告。

 

标准是为在一定范围内获得最佳秩序,对活动或其结果规定共同的和重复使用的规则、导则或特性的文件。标准对行业具有规范和引领作用。同样,工业软件测试标准作为测试体系的重要组成部分,同样具有规范和引领工业软件行业的作用,在工业软件生态建设中占据重要的位置。

 

工业软件测试过程中应尽量地采用经过验证的测试工具来提高测试效率,减少人工工作。此外,在测试过程中还需要测试数据与用例、测试环境等方面的支撑。

 

工业软件测试验证体系如图4所示。

图 4 工业软件测试验证体系

 

2.1 测试标准与方法

 

测试标准的制定可分为两种策略:

 

1)针对工业软件制定通用的测试标准;2)针对工业软件所涉及的各个领域分别制定专用测试标准。若选择策略一,工业软件通用测试标准与专业领域产品标准结合,可编制测试大纲,指导测试机构进行测试,然而,现阶段专业领域产品标准缺失,且通用测试标准因为太通用而缺乏针对性,因此只研制通用测试标准不足以支撑工业软件测试的需求;若选择策略二,由于军工工业软件门类众多,针对各个领域分别制定测试标准的工程量大,难度极大,周期极长,很难满足现阶段的需求,因此可以采取“通”“专”结合的方式,即面向工业软件的通用测试标准与CADCAE等领域的专用测试标准相结合的方式,组成工业软件的测试验证标准体系,如图5所示。

图 5 工业软件测试验证标准体系

 

首先,遵循国家标准提出的质量模型,工业软件通用测试标准亦可从软件的功能、性能效率、兼容性、可靠性、安全性、易用性和维护性,以及可移植性等方面规定其测试内容,其测试内容和详细要求如表1所示。

 

表 1 工业软件测试内容

 

根据图5,工业软件通用测试标准作为测试标准体系的总纲,指导CADCAE等专用领域测试标准的制定。参考通用测试标准,CADCAE等专用领域测试标准依据本软件领域的特点对其测试内容和方法进行进一步的细化。

 

除了传统的静态方法和动态方法,针对工业软件中工业属性的测试验证,可以采用案例库测试、物理试验和比对测试的方法对其进行测试验证。

 

2.2 测试工具与环境

 

软件测试工具按照其功能可分为静态测试工具、动态测试工具和测试管理工具。静态测试工具一般是指不运行被测软件的情况下,对软件代码的语法、结构和接口等进行检查的工具。由于工业软件与传统软件并无区别,所以大多数传统软件采用的静态测试工具均可用于工业软件的静态测试,如安全漏洞分析软件等。动态测试工具是指支持执行测试用例和评价测试结果的工具,包括支持选择测试用例、设置测试环境、运行算选择测试用例,记录执行结果、故障分析和测试工作的有效性评价等。

 

然而,对于功能测试,由于工业软件种类的不同,接口各异,使用的测试方法也不同,必然会导致测试工具的不同。传统软件的通用动态测试工具并不能完全满足工业软件的测试需求。

 

以三维CAD软件为例,若采用比对测试方法,由于针对两款CAD软件在相同的测试环境中同时进行测试,此时的测试工具须与两款软件(被测CAD软件与基准软件如CATIA、PTC等)同时进行适配,市面上并没有一款通用的测试工具能满足三维CAD软件的比对测试需求,因此,需要研发专用的测试工具。

 

测试管理工具,顾名思义,是测试机构进行软件测试时,对其过程实现规范化管控的工具或平台,为工业软件产品的测试过程控制和质量数据统一管理提供支持,保障工业软件产品的测试质量。

 

测试环境是指为了完成软件测试工作所必需的计算机硬件、软件、网络设备和历史数据的总称,主要包括测试运行环境和测试工具环境。

 

2.3 测试用例

 

测试用例是测试有效性和充分性的根本保障,是软件测试过程中的重要资产。软件测试用例的设计是整个测试工作的重点和难点,根据ISO/IEEE—24765的定义,测试用例是对输入、执行条件、测试过程和预期结果的规范,这些规范定义了为实现特定的软件测试目标而执行的单个测试,例如:执行特定的程序路径或验证是否符合特定的需求。设计测试用例时,应遵循以下原则。

 

a)基于测试需求原则

 

应按照测试类别的不同要求,设计测试用例。

 

b)基于测试方法的原则

 

为了达到不同的测试充分性要求,应采用相应的测试方法,如等价类划分、边界值分析和因果图等方法。

 

c)兼顾测试充分性和效率的原则

 

测试用例集应兼顾测试的充分性和测试效率,工业软件的测试用例应至少包含单个功能测试用例、多功能集成测试用例和工程测试用例;每个测试用例的内容应该完整,具有可操作性。

 

d)测试执行的可再现性原则应保证测试用例执行的可再现性。

 

2.4 测试人才

 

软件测试在软件研发全生命周期中具有重要的地位。目前大部分工业软件研发企业中依然存在“重开发、轻测试”的情况,由于测试团队人员严重不足,导致软件测试工作进展缓慢,不能保障工业软件的质量和成熟度。

 

由于工业软件来源于工业应用需求,既包含工业属性,又包含软件属性,而目前工业软件研发企业中的大部分测试人员为软件工程专业人才,使得测试人员由于不了解工业应用场景而无法深度解决测试软件问题,因此急需大量投入培养工业软件测试方面的专业人才。

 

3 结束语

 

合格的工业软件产品应具备功能正确、高性能效率、高可靠性、高安全性和强兼容性等特点,构建工业软件研制全生命周期的测试验证体系对工业软件的发展具有重要的促进作用。本文提出的由测试标准、测试方法、测试工具、测试环境、测试用例和测试人才等要素组成的工业软件测试验证体系,在一定程度上能保障工业软件的产品质量,提升其成熟度,填补了技术的空白。

 

作者:工业和信息化部电子第五研究所 刘务 杨春晖 薛智锋  林军

 

二维码
中国电子商会信息工程测试专业委员会 电话:010-87660482 传真:010-87660482 邮箱:ceietn@sina.com 地址:北京经济技术开发区博兴六路17号院1号楼3层(100176)
Copyright © 2021-2027 中国电子信息工程与测试网 版权所有 主办单位:中国电子商会信息工程测试专业委员会 技术支持:电设信科(北京)技术有限公司 备案号:京ICP备11002915号-001