基于用户历史数据的工业软件现场测试中边界值测试方法与流程

文档序号:14279666阅读:333来源:国知局
基于用户历史数据的工业软件现场测试中边界值测试方法与流程

本发明属于工业软件测试技术领域,具体涉及一种基于用户历史数据的工业软件现场测试中的边界值测试方法。



背景技术:

工业软件相关技术在不断地发展,工业装置的在线软件也在更新换代,很多老的过程工业生产装置现在仍然需要长期正常运行,这些装置的在线软件系统也可能需要更新。但其中也有新软件系统在工业生产装置现场试运行失败的现象,比如石化生产高温高压、易燃易爆、风险太大,用户一发现新软件有bug,立刻停止试运行,不敢继续冒险。其实在这些失败的现场试运行之前软件开发公司也尽力进行了认真的非现场测试,在实验装置甚至其它类似生产装置已经测试成功,但仍然在这个具体的生产现场运行失败,总结实践教训,一个主要问题就是:在用户生产现场试运行之前缺乏一定程度的现场测试。

在非真实现场测试环境下,可能与真实生产现场有各种细小的不同偏差,但是这些偏差有可能导致测试结果与真实现场环境下的运行结果不完全一致,会产生错误的测试结论,软件在真实目标现场环境下的现场测试不能被非现场测试环境完全替代。经验表明,新的工业软件边界值附近出错的概率更高,更需要实施边界值测试。

实践中,工业软件的现场测试有不少的困难,现场测试的方法要受到用户实际生产业务的各种约束。被动测试是常采用的方法,但被动测试问题较多:难以主动控制测试目标与过程,不设计测试用例,测试效率普遍较低、覆盖率低等。测试人员当然希望用主动测试方法,但现场主动测试可能给用户生产造成事故风险,有时即使是合法的输入数据也有可能导致事故的出现,有可能对现场生产带来严重的损失。尤其在现场测试实践中的边界值测试方法的问题更为严重,边界值附近的刚刚合法数据和刚刚非法数据容易引起生产事故。



技术实现要素:

本发明提供一种基于用户历史数据的工业软件现场测试中边界值测试方法,用于解决现有边界值测试方法在现场实施过程中的实践问题,克服了常用的现场被动测试的各种缺点,如难以主动控制测试目标与过程,不设计测试用例,测试效率普遍较低、覆盖率低等,防范了主动测试中边界值附近的刚刚合法数据和刚刚非法数据容易引起生产事故等技术问题。

为解决上述技术问题,本发明所采用的技术方案如下:

一种基于用户历史数据的工业软件现场测试中边界值测试方法,步骤如下:

s1,获取用户的历史生产数据库。

s2,对于被测软件所处理的某个业务参数,设定非法数据的查找条件,从历史生产数据库中搜索连续的非法数据段,所述连续的非法数据段的意思是非法数据不是单个孤立的数据点,连续的非法数据的个数至少3个,并且连续数据的个数下限设定值可根据行业数据经验调整加大。

s3,如果找不到连续的非法数据段,则转到步骤s7。

s4,把所找到的每个连续非法数据段的第一组数据作为初始点,按时间顺序对历史生产数据库的数据记录逐个往前推,找到合法数据,因为工业生产一般是正常工况,所以一般能前推到合法数据,如果找到了连续的合法数据段,那么将这个连续合法数据段的最后一组数据作为最近合法数据。

假设找到n个连续非法数据段,对于第i(i=1,2,......,n)个连续非法数据段进行如下处理:

其具体步骤为:

s4.1,获取第i个连续非法数据段对应的历史数据;

s4.2,以第i个连续非法数据段的第一组非法数据点为起点,按照过程时间往前推,找到连续的合法数据段,并将连续合法数据段中的最后一组数据作为第i个最近合法数据。

s5,将每个最近合法数据后面的第一个连续非法数据段的第一组数据作为最近非法数据。

所述最近非法数据是对于被测软件所处理的某个业务参数,用户业务现场历史上曾出现的连续非法数据段中最接近边界值的非法数据;连续非法数据段指的是非法数据不是单个孤立的数据点,连续的非法数据的个数至少3个,连续数据的个数下限设定值可根据行业数据经验调整加大;所述最近合法数据是对于被测软件所处理的某个业务参数,用户业务现场历史上曾出现的连续合法数据段中最接近边界值的数据;连续合法数据段指的是合法数据不是单个孤立的数据点,连续的合法数据的个数至少3个,连续数据的个数下限设定值可根据行业数据经验调整加大。

s6,从所获得的最近非法数据和最近合法数据中挑选作为边界值测试的输入数据的备选数据。备选数据的选取是先获取与最近非法数据和最近合法数据相对应的历史生产过程数据,依据相关的历史生产过程数据所反映的生产工况,分析生产工况对用户生产的影响程度及导致的事故过程是否可控,并选取最近合法数据和最近非法数据中风险可控的部分作为现场测试的输入数据的备选数据,并转到步骤s8。

s7,统计相关参数的历史数据最大值和最小值,把历史数据的最大值、最小值作为现场测试的边界值测试的备选输入数据。

s8,列出所有的可作为现场测试输入数据的最近合法数据、最近非法数据及步骤s7所得到的输入数据,作为现场边界值测试的输入数据的备选数据,并报给用户单位审批。

s9,对于所确定的每一组测试输入数据,从历史生产数据库中找到这些输入数据对应的响应过程数据,作为被测软件系统的测试输出数据的比对依据(或作为期望输出的设计依据)。

本发明克服了经典的被动测试和主动测试的缺点:被动测试依赖于用户正常生产数据,现场测试效率低,测试过程不可控,很难进行边界值测试;经典的主动测试中的边界值测试方法可能导致的风险难以控制,容易导致事故,给用户带来损失。这个新的工业软件现场测试中的边界值测试方法在防范风险的前提下,能够控制测试目标和测试过程,在现场实施的效率高,而且能够把被测的新软件系统的测试输出与老系统的对应历史数据进行比对(以精确评价新软件的质量)。事实上,工业用户的现场生产的历史大数据很大程度地反映了具体用户业务数据的个性特点,基于具体用户生产历史数据的处理而得到的边界值数据,其中一部分恰恰就是容易出现的数据,从经验来看更贴近用户的真实情况。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的简易步骤流程图。

图2为本发明的具体步骤流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示,一种基于用户历史数据的工业软件现场测试中边界值测试方法,步骤如下:

s1,获取用户的历史生产数据库。

s2,对于被测软件所处理的某个业务参数,设定非法数据的查找条件,从历史生产数据库中搜索连续的非法数据段,所述连续的非法数据段的意思是非法数据不是单个孤立的数据点,连续的非法数据的个数至少3个,并且连续数据的个数下限设定值可根据行业数据经验调整加大。

s3,如果找不到连续的非法数据段,则转到步骤s7。

s4,把所找到的每个连续非法数据段的第一组数据作为初始点,按时间顺序对历史生产数据库的数据记录逐个往前推,找到合法数据,因为工业生产一般是正常工况,所以一般能前推到合法数据,如果找到了连续的合法数据段,那么将这个连续合法数据段的最后一组数据作为最近合法数据。

假设找到n个非法数据段,对于第i(i=1,2,......,n)个连续非法数据段进行如下处理:

其具体步骤为:

s4.1,获取第i个连续非法数据段对应的历史数据;

s4.2,以第i个连续非法数据段的第一组非法数据点为起点,按照过程时间往前推,找到连续的合法数据段,并将连续合法数据段中的最后一组数据作为第i组最近合法数据。

s5,将每个最近合法数据后面的第一个连续非法数据段的第一组数据作为最近非法数据。

所述最近非法数据是对于被测软件所处理的某个业务参数,用户业务现场历史上曾出现的连续非法数据段中最接近边界值的非法数据;连续非法数据段指的是非法数据不是单个孤立的数据点,连续的非法数据的个数至少3个,连续数据的个数下限设定值可根据行业数据经验调整加大;所述最近合法数据是对于被测软件所处理的某个业务参数,用户业务现场历史上曾出现的连续合法数据段中最接近边界值的数据;连续合法数据段指的是合法数据不是单个孤立的数据点,连续的合法数据的个数至少3个,连续数据的个数下限设定值可根据行业数据经验调整加大。

s6,从所获得的最近非法数据和最近合法数据中挑选作为边界值测试的输入数据的备选数据。备选数据的选取是先获取与最近非法数据和最近合法数据相对应的历史生产过程数据,依据相关的历史生产过程数据所反映的生产工况,分析生产工况对用户生产的影响程度及导致的事故过程是否可控,并选取最近合法数据和最近非法数据中风险可控的部分作为现场测试的输入数据的备选数据,并转到步骤s8。

s7,统计相关参数的历史数据最大值和最小值,把历史数据的最大值、最小值作为现场测试的边界值测试的备选输入数据。

s8,列出所有的可作为现场测试输入数据的最近合法数据、最近非法数据及步骤s7所得到的输入数据,作为现场边界值测试的输入数据的备选数据(实践中需用户单位审批)。

s9,对于所确定的每一组测试输入数据,从历史生产数据库中找到这些输入数据对应的响应过程数据,作为被测软件系统的测试输出数据的比对依据(或作为期望输出的设计依据)。

对具体实施的关键技术步骤解释如下,如图2所示:

(1)步骤1:尽量找到历史数据中最靠近边界值的数据。如果边界值查找条件过于苛刻,符合条件的数据会减少;条件放宽,符合条件的数据可能过多。初始时,查找条件设置得尽量宽松,在步骤3中使条件范围逐步苛刻、逼近边界值。当然这个边界值查询条件的设置还要考虑硬件设备的测量误差。

(2)步骤2:实际装置生产的历史数据中出现边界值附近的数据是不确定的,要排除失真数据。单个非法数据可能有很多原因产生(噪声、失真等),所以需要连续的数据段,连续数越大越难找,但不能太小(连续的非法数据个数下限至少为3,根据经验,连续数据的个数下限设定值可根据行业数据经验调整加大)。

(3)步骤3:如果找到的连续非法数据段过多,可把条件修改得苛刻一些,使得数据结果质量更高。

(4)步骤4:对于每一个非法数据段,挖掘所有的与这个非法数据段的连续过程有关的历史数据,局部时间段的数据尽量充分,数据采集周期尽量短。过程工业生产的历史数据库中包含多年的可自动采集数据,可自动采集数据的采集周期一般是秒级、分级等,实时数据库是主要来源,实践中需要检验数据是否失真(测量设备故障、噪声干扰等引起),但很可能没有集成相关的不可自动采集数据,不可自动采集数据(如人工化验数据)的采集周期时间一般较长,这种情况下,需要找到对应的相关的人工化验等历史数据库,可从用户单位多个部门的各种数据档案、相关信息库等中去挖掘,不同数据库保存的方法不一样,需对原始的生产历史数据库进行加工,进行针对性的切分、集成关联处理。

(5)步骤5:从这个非法数据段(当时很可能已是事故状态)按时间顺序逐个数据往前推,找到合法数据(因为装置生产一般是正常工况,所以一般能前推到合法数据),但瞬时的合法数据不能作为正常工况数据,所以要判断这个合法数据点之前的连续过程数据是否合法,如果是连续的合法数据段,其中的最后一组数据作为最近合法数据。

(6)步骤6:最近合法数据段后面的连续非法数据段的第一组数据即可作为最近非法数据。

(7)步骤7:一般情况下,过程工业企业生产现场出现的事故过程数据一般很少,但对于现场测试来说这些数据却很珍贵。数据挖掘成本可能较高,可以根据需要的非法数据的具体细节针对性地挖掘,以减少挖掘成本并尽可能挖掘充分。这里特别提醒:事故工况、开工、停工、工艺方案切换过程中等容易包含非法数据。

(8)步骤8:很多工业装置长时间稳定正常运行,非法数据很少,如果从已有的全部生产历史数据库中找不到需要的非法数据,那么这种情况下可以统计生产参数的历史数据最大值和最小值,其实这些最大、最小值也很大程度地反映了这个工业装置实际生产的数据范围和业务特点,可把历史数据的最大和最小值作为边界值测试的输入数据的设计依据。

(9)步骤9:挖掘最大、最小值对应的历史过程数据及对应的工况信息,判断能否作为测试输入数据。

(10)步骤10:对于每一个“最近合法数据”和“最近非法数据”:挖掘对应的历史生产过程数据,依据相关的历史生产过程数据反映的生产状况,分析对用户生产的影响程度及导致的事故过程是否可控,判断可否作为现场测试的输入数据(实践中,需用户生产技术专家参与这步工作,并需由用户生产安全部门审批后方可作为现场测试的输入数据)。一般情况下,选取最近合法数据和风险可控的部分最近非法数据作为现场测试的输入数据。

(11)步骤11:对于已确定的边界值测试的输入数据,从生产历史数据库中找到这些输入数据所对应的响应过程数据,作为新的被测软件系统的测试输出数据的比对依据(或作为期望输出的设计依据),这样可以和老软件处理的过程数据进行对应比较,对于相同的输入数据能够更清晰地量化比较评价新的被测软件系统相对老软件的质量提高程度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1