引言

随着信息技术的飞速发展,软件产品已经应用到社会的各个领域,软件产品的质量逐渐被人们重视,成为共同关注的焦点。目前,我国地震行业已有许多测震专业软件在不同地区、不同条件下进行应用,这些软件作为测震观测系统中的一个组成部分,是关系整个观测系统能否按时、有效产出各类高质量观测数据的一个重要环节。以往对于各类测震专业软件的评测,一般是采取验收测试的办法,每次针对具体的软件系统要临时制订一个验收测试大纲,而且测试过程中所采用的工具也比较“随心所欲”,测试标准、测试内容、测试方法和测试工具均不统一,因此对于软件的性能难以得到统一的评价。

在软件质量保证越来越被重视的前提下,软件测试在整个软件开发中变得越来越重要。在地震行业中,软件测试同样是保证测震专业软件质量的重要手段,将直接影响这些地震专用软件的生命力。将软件测试技术应用到地震专业软件的开发和使用过程中,由此应运而生了“测震专业软件评估平台”。它不仅能够通过合理、有效的测试,评判软件的功能、性能及技术指标;同时,评估平台对于不断改进测震软件的运行质量、完善功能、提高软件性能提供了可靠的实验依据,为推进我国数字地震观测新技术的进步,研究测震台网软件改进与完善提供了一个新的途径,具有非常广阔的应用前景。

1 系统构成、功能和部署
1.1 系统介绍

测震专业软件评估平台是中国数字测震台网质量检测和技术支持系统项目的一个重要组成部分,由中国地震台网中心承担建设,同时还聘请了其它省地震局和研究所的专家参加项目的咨询与指导工作。此系统为应用于测震台网或台站的专业软件评估提供了一个比测运行的软件支撑平台,可满足各类测震专业软件模块性能与功能评测的条件,能够评价被测试软件在数据汇集、数据交换、实时处理、交互处理、地震编目、数据管理与服务等方面的功能和性能指标,并为进一步完善和改进这些测震专业软件提供相应的实验依据。

测震专业软件评估平台由震例库子系统、数据回放子系统、测试评价管理子系统、地震定位测试工具子系统、数据结构测试工具子系统和技术支持网站子系统6个部分构成(见图1)。

图 1测震专业软件评估平台构成图 Fig. 1Structure of the evaluation platform
1.2 功能特性

测震专业软件评估平台以局域网络为基础,采用B/S与C/S相结合的体系结构,其中震例库管理和软件测试管理部分采用B/S架构,数据回放、定位测试工具和数据结构测试工具部分采用C/S架构。主要功能包括:震例数据库及其数据库管理;震例数据回放;测试用例数据库和数据库管理;为地震定位程序测试提供数据准备;对测震软件中输入、输出数据的结构进行准自动化测试;提供专业技术支持与服务交流平台。其功能示意图见图2。

图 2功能示意图 Fig. 2Illustration of the functions

(1)震例库子系统

用于进行数据收集、格式转换以及对数据库中震例的增加、删除、修改等。震例数据库内容包括波形数据、台站仪器参数(台站经纬度、仪器响应参数等)、震相数据(震相到时、振幅、周期等)以及地震参数(发震时刻、震中经纬度、震级等);数据存储格式符合《中国数字测震台网数据规范》;对于速度记录和加速度记录的波形采用数据存储方式,对于位移记录采用记录图纸扫描后的图像存储方式。

(2)数据回放子系统

数据回放软件能够从震例库目录下载任意的事件波形文件,形成实时波形数据流回放在网络平台上,作为被评测软件的数据输入。波形回放过程为评估被测软件的功能、性能及定位程序的定位能力提供一个模拟实验平台,实现了回放过程的波形实时显示、监控、状态检测。在回放震例波形数据前,从数据库中提取该震例相应的台站仪器参数,形成供被测软件读取的当前配置的台站仪器参数表;回放时可选择同时或分别回放到流服务器和消息服务器上;回放数据格式为miniSEED。

(3)测试评价管理子系统

它是一个后台评价被测软件综合性能和功能的电子文档管理系统。用于建立数据库实例,包括测试项目数据库、测试用例数据库等;提供测试管理软件,实现测试用例的追踪和管理、测试项目的存储和管理等;进行测试结果统计分析,根据测试过程中记录的数据,提供度量统计功能,计算各类评价指标(比如误触发率、漏触发率、定位误差等),可以直观的得到测试管理过程中需要进行分析和总结的数据。

(4)地震定位测试工具子系统

按照假想或实际地震台网,针对网内、网缘和网外的不同情况,对设定的震源位置,通过正演方法生成各种地壳模型(走时表)下的台站理论到时,允许加上随机误差以模拟震相读数误差,允许加上台站校正值,为地震定位程序的测试提供数据准备。

(5)数据结构测试工具子系统

通过与“数据规范”比较,进行数据库表结构一致性检查,实现对被测软件中输入、输出数据的结构进行准自动化测试,对数据结构的可用性、合理性、完整性、是否符合相关规范等给出评测结果;测试数据范围包括台站仪器参数、在线波形数据、归档波形数据、地震目录、震相、标定等各种处理结果、各种管理日志的存储结构,以及“数据规范”规定的各类交换数据结构等。

(6)技术支持网站子系统

仪器维护和技术交流的一个技术支持平台。网站的主要栏目包括新闻消息、仪器评测结果查询展示、软件评测结果查询展示、相关仪器及软件技术资料下载、仪器和软件使用报告、BBS论坛、质检中心服务指南、相关链接等。

1.3 系统部署

测震专业软件评估平台部署在中国地震台网中心大楼的计算机网络环境下,主要由若干台服务器、磁盘阵列、交换机、KVM控制装置和后台运行工作站、台式机设备组成。根据评估平台的功能要求和任务部署,系统配备震例库服务器、流服务器、消息服务器、数据库服务器、比测处理服务器和网站服务器,以及用于震例回放、交互分析和测评管理的工作站和台式机。硬件系统拓扑图见图3。

2 测试实施
2.1 测试方法

鉴于对测震专业软件的测试主要是一种软件确认测试,由于不能假定测试者全面了解程序内部逻辑结构,因此,难以做到对所有的软件逻辑路径进行穷举测试,故软件测试一般是采取动态的“黑盒测试”,这种软件行为的测试方法主要着眼于程序外部结构、而不考虑内部逻辑结构,是针对软件界面和软件功能进行的测试(李翼等,2012)。

图 3系统拓扑图 Fig. 3Topology of the system
2.2 测试内容

针对测震专业软件的测试内容主要涵盖功能测试和性能测试。从国内测震台网(台站)使用的专用软件中归纳出针对测震专业软件的测试用例,一般包括实时数据处理、人机交互分析处理、地震编目、监控、数据管理与服务等部分。

(1)实时数据处理

对软件实时数据处理的测试,是通过启动被测试的实时数据处理系统,检查实际地震波形数据流的接收功能;并回放测试所准备的数据波形数据,检查单台触发、综合触发、自动读取震相、自动定位等功能;同时,计算误触发率和漏触发率,将被测试软件测定的结果与“标准”结果进行比较,计算定位结果偏差和震级偏差,并按网内、网缘和网外进行统计,判定该实时数据处理软件的性能。

(2)人机交互分析处理

对软件人机交互分析处理的测试,是通过从地震波形数据库中读入指定事件的波形数据,依次检查被测软件是否具备如下功能:

地震波形显示;

接收数据交换平台的实时系统的自动处理结果和震相数据;标注自动读取的震相、到时数据与残差;

按到时、震中距或方位排序;

理论到时计算、标注;

地震信号滤波、仿真处理;

自动和快速人机交互读取震相,可人工方便地修改、删除、增加震相数据或选择参加交互处理的地震台站;

地震定位和震级计算,存储计算结果;

显示定位台站分布、震中图(根据震中位置和台站分布自动匹配底图);

发送地震速报到交换平台(消息中间件)或监控系统;

序列处理功能:台网按各自区域的地震情况,向模板序列提交一些典型地震。在台网序列地震的批量处理中选用相应模板进行快速定位;

人机交互测定地震矩张量、标量地震矩、震源机制解等震源参数,按地震数据规范要求格式存入数据库并以图形显示测定结果。

最后,比较由被测试软件得到的结果参数与从可靠来源获得的供测试震例的结果参数,判定测试结果的正确性和准确性。

(3)地震编目

利用被测试的编目软件对地震数据库中存在的地震定位结果和震相数据编辑月报目录、周报目录、日报目录以及相应的地震观测报告;以数据库格式、适于应用软件使用的文件格式以及适于阅读和生成纸介质文本的格式,存储所生成的地震目录和地震观测报告;对数据库中至少两个区域地震台网生成的地震月报目录和地震观测报告进行合并,检验合并结果的正确性;显示所生成地震目录中地震的二维和三维分布图,检验图形的正确性等。

(4)监控

依次测试该软件是否具备如下功能:

实时波形显示,数据中断报警;

台站地震仪器状态信息显示,数据质量判别,异常报警;

实时处理结果显示,地震报警;

其它台网地震速报信息显示、报警;

台网中心系统(服务器、其它实时运行的软件模块等)运行状态显示、报警;

系统运行状况分析统计与存储;

生成监控信息日志。

(5)数据管理与服务

使用工具或手工检查数据库结构和存储数据内容是否符合“测震数据规范”要求;模拟输入多通道数据,测试连续波形数据接收存储功能所能支持的台站通道数量;使用人机交互软件读取连续波形数据,记录读取时间,以检验数据库(文件)性能;检查生成的台站卷SEED文件和台网卷SEED文件的完整性,使用软件工具检查文件的格式是否符合相关的“标准”和“规范”;检查数据库管理功能、波形数据格式转换功能;检查用户权限和安全认证机制等。

2.3 测试过程

测震专业软件的测试评估过程是通过多次震例回放和多次运行被测软件对已知地震事件进行实验评测,根据实验结果评估被测软件的地震定位能力、检查被测软件运行基本功能与性能情况。测试流程图见图4。

首先,通过台网中心大楼的网络从地震台网部接入了全国地震监测台网的448个台站(含通过Internet网接入的国外30个台站)的实时波形数据流,对这些台站的基本信息(经纬度、仪器类型、仪器参数等)进行目录编辑,导入震例库中形成台站信息列表,以供震例事件波形回放时,进行震例回放事前的台站信息检索使用。其次,使用评估平台中工作站运行的数据处理系统对接收的台网事件进行事件检测与实时处理,在管理平台通过人工方式把检测到的地震事件进行目录操作、分类比较、编辑整理,把可以作为测试用例的检测事件,通过管理平台导入震例数据库。也可在管理平台直接把典型震例导入震例库,近震数据的收集来源主要是国内各区域台网的记录,优先收录“十五”建设台网记录的事件,考虑到实时处理软件检测的需求,震级范围包括微小地震和中强地震。远震数据的收集来源于覆盖大、小尺度台网,包括全球台网(GSN)、国家台网和区域台网的数据。深震可选择中国东北和印尼JAVA岛的深震。加速度记录主要收集首都圈台网的加速度记录。

图 4软件测试流程图 Fig. 4Flow chart of software testing

通过震例回放管理软件,把震例库中的震例波形数据与台站参数文件数据作为实验震例源回放到流服务器与消息服务器上,用于测震专业软件评估实验或对在不同操作系统下运行的测震专业软件进行比测实验使用。

2.4 测试实例

在评估平台上运行了“十五”的JOPENS系统软件,对其实时数据处理系统进行了测试,震例选择2007年12月26日辽宁海城地震。在进行软件测试时,测试人员首先通过后台管理平台启动进入震例管理系统操作界面,点击选择震例目录下的实验震例,使被测软件的波形显示或实时处理及定位处理程序运行处于等待状态,通过输入命令的方式回放震例数据(见图5)。然后按照制定的测试内容,逐一对被测软件进行功能及性能方面的检测。在被测软件顺利通过波形显示、单台触发、综合触发、自动读取震相、自动定位等基本功能的测试后,可得到被测软件的自动定位结果(见图6)。

图 5被测软件接收波形回放过程图 Fig. 5Playback of waveform from testing software
图 6被测软件的地震定位结果图 Fig. 6Earthquake locating results of testing software

将被测软件的自动定位结果与从中国地震台网(CSN)正式地震目录中获得的“标准”定位结果进行比较,得到了两者的定位结果偏差(见表1)。进而根据震中位置的偏差计算公式:

,其中,(φ1λ1)和(φ2λ2)分别为两者震中位置的纬度和经度。

计算出两者的震中偏差为5.52km。由此得到的对被测软件实时数据处理系统的评估结论为:自动定位结果较为可靠,自动定位性能较好。

表1
Table 1

表1 定位结果比对 Table 1 Comparison of earthquake locating results
3 结语

软件测试技术在地震行业的应用,为地震行业专用软件的质量保证起到了积极的作用。测震软件评估平台的应用不仅为测震专业软件性能的完善提供了试验依据,使测震专业软件测试流程的标准化和测试过程的规范化成为可能,也为今后促进地震专业软件研制、生产的系统化和专业化做了铺垫,更重要的是为今后我国地震监测、地震科研、地震预测服务提供了可用的试验观测数据。

测震软件评估平台的建设仅仅是我国数字地震观测技术在软件测试技术领域应用发展的一个起步,有许多与软件测试相关的新技术、新方法需要在实际应用中去发现和摸索。测震软件评估平台的完善与提高,还有许多工作要做,尤其是充分利用过去地震台网记录的大量地震事件波形数据,包括一些有位移记录和加速度记录的典型特定震例(远震、近震、爆破),来不断扩充评估平台的震例库,为今后我国地震监测、地震科研、地震预测服务提供大量真实、可用的观测数据。相信随着相关工作的进一步开展,测震软件评估平台将发挥更大的效益。

参考文献
[1]佟伟光,.软件测试技术. 北京:人民邮电出版社 [本文引用:1次]
[2]李翼,陈创,2012.计算机软件测试技术浅谈. 计算机光盘软件与应用 ,(11):113-115[本文引用:1次]
[3]中国地震局监测预报司,2003.数字地震观测技术. 北京:地震出版社 [本文引用:1次]