实时数据库集成测试方法研究与应用
2019-12-16张冉高雪莲冯曦冯文楠胡毅唐晓柯
张冉 高雪莲 冯曦 冯文楠 胡毅 唐晓柯
摘要:实时数据库是DCS系统的关键组成部分,实时数据库内核相当于一个数据处理中心,起到数据交换区的作用。实时数据库内核维护系统调用时产生的动态数据和系统所需的各种内部信息,保证实时数据的完整性、实时性以及时间一致性;集成测试是测试过程中的一个重要环节,集成测试方法主要分为基于调用图的集成测试、基于分解的集成测试以及基于类间继承关系的集成测试,通过分析实时数据库内核的特性,最终选用基于调用图的集成测试和基于类间继承关系集成测试相结合的方式完成数据库内核的集成测试,通过实际应用证明了采用组合的测试方法强化了两种测试方法的,可以缩短测试周期,降低测试难度,提高测试准确度,该方法在其他项目中具有实际指导意义。
关键词:实时数据库;集成测试;DCS
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)29-0005-03
1概述
在电厂DCS系统中实时数据库是数据处理和数据管理的核心,实时数据库内核负责处理从控制器采集的数据、发送数据到组态软件及实现数据库软件所有功能,数据库内核对数据库软件的可用性有重要的影响。
集成测试作为测试活动的重要环节之一,是保证软件的质量必不可少的一步。为了提高数据库的集成测试的测试效率,不在采用原来单一的集成测试方法,而是选用多种测试方法相结合的形式,有效缩短了测试周期,将电厂DCS实时数据库软件用于实例研究,验证所提出方法的有效性。
2集成测试方法
常用的集成测试方法主要有基于调用图的集成测试、基于分解的集成测试以及基于类间继承关系的集成测试,下面具体介绍这三种集成测试方法。
2.1基于调用图的集成测试
根据模块或者函数之间的调用关系,采用调用图的方式可以使测试更趋向于结构性,同时免除了桩/驱动器的开发工作量。基于调用图的集成测试包括成对集成测试和相邻集成测试。成对集成测试是为了免除桩驱动器的开发,对调用图中的每条边进行一个集成测试;相邻集成测试是将一个节点的所有邻居集成在一起,包括所有直接前驱节点和直接后继节点。
基于调用图的集成测试的优点是可以降低集成测试的会话数量,所需测试时间短;其缺点是调用分析的过程比较复杂,对于出现问题的部分很难定位。该方法适合存在多调用的模块或软件。
2.2基于分解的集成测试
基于分解的集成测试是基于软件功能分解的测试,包括非渐增式集成测试和渐增式集成测试两种方法。非渐增式集成测试是采取一步到位的方式来构造函数,按照程序功能结构图将各个模块连接起来作为一个整体进行测试;渐增式集成测试是从一个模块开始,边组装边测试,同时又分为自顶向下集成、自底向上集成和混合集成。
基于分解的集成测试优点是测试结构清晰,能够方便测试人员定位异常;其缺点是测试过程中需要开发桩或驱动,工作量较大并增加了测试的难度。该方法适合系统结构层次清晰具有交互复杂的模块或软件。
2.3基于类间继承关系的集成测试
基于类间继承关系的测试首先通过测试独立类(即非系统中已经测试正确的祖先类的子类)来开始构造系统,在完成独立类测试后,下一层继承独立类的类(依赖类)继续被测试,这个依赖类层次的测试序列一直持续到构造完整的系统。
基于类间继承关系的集成测试的优点是测试分析过程简单,测试全面;其缺点是被测试集合较多,测试周期长,与单元测试有重复。该方法适用于使用面向对象编成语言编写的程序软件。
3具体应用
上述讨论的通用集成测试方法,根据电厂DCS实时数据库特性,进行集成测试方法的选用,并将调用图和基于类间继承关系相结合的方法应用在电厂DCS实时数据库的集成测试中,证明相结合方法能够有效提高测试准确度,下面选用实时数据库内核部分进行集成测试方法的应用。
3.1实时数据库内核
实时数据库内核作为一个数据处理中心,提供了对外接口,这些接口函数是其他软件(如HMI、控制器)对实时数据库内核的调用方式。即这些接口函数,是由具有调用关系的一些函数组成的;实时数据库内核是采用C++语言编写,其程序编程的方式是采用了面向对象的编程,主要进行类的编写;实时数据库内核是采用类间独立的函数组成的,这些函数本身结构关系独立、交互关系较弱。
所以,根据实时数据库内核本身的特点,基于调用图的集成测试方法和基于类间继承的集成测试方法更适合对实时数据库内核进行集成测试。
3.2采用调用图集成测试方法
在实时库内核模块体系结构中存在实时数据库内核对外接口,分析接口函数的调用图,接口函数本身是将流程图上所有相邻的函数集成在一起。在实时数据库内核中共有35个接口函数,下面以添加标签点函数(AddTag)为列,具体执行调用图集成测试方法:
3.2.1AddTag调用图分析
图1是AddTag接口函数实现过程调用的所有函数流程图。
函数说明:添加一个标签点,并为其赋予基本属性。如下表所示:
3.2.3AddTag具体测试及结果
通过分析AddTag接口调用流程图和AddTag函数,给出具体的测试思路和方法并执行测试,得出最后的测试结果:
测试思路为:给出函数的输人值,查看函数的返回值。具体设计为下表所示:
测试方法:按照上述测试思路编制测试代码,在测试环境下执行测试代码。具体测试伪代码编制如下图:
测试结果:在输入中配置正确的属性,标签名合法正确,测试执行测试代码后,发现返回值是34587;这条测试代码是不通过的。
根據测试返回值发现异常是添加标签点属性值违法。但是无法确认是添加基本属性值违法,还是添加模拟量属性值违法。