李淼
摘要:随着我国地理信息产业的蓬勃发展,各行业空间数据的数据量和复杂度迅猛提高,数据质量的好坏关系到国计民生,地理信息质检软件则为数据的正确性和可靠性提供了有力的保障。地理信息质检系统的质量优劣对于全面检查、评价和保障测绘行业数据产品质量等方面意义重大。软件测试是保障软件质量的重要手段,文章以地理信息质检软件为研究对象,主要研究针对空间数据、功能模块和业务流程的黑盒测试方法,以及针对稳定架构的自动化测试方法。
关键词:地理信息 质检系统 黑盒测试 稳定架构 自动化测试
中图分类号:X832 文献标识码:A 文章编号:1672-3791(2016)04(a)-0013-03
近年来,我国地理信息产业蓬勃发展,规模迅猛增长,地理信息服务已经贯穿于国民经济和社会发展的各个方面,在国土资源、环境保护、交通运输、农林水利、公共应急等领域,地理信息已经成为必不可少的信息资源支撑。在这一发展趋势下,各行业空间数据日趋复杂,数据增长迅速,地理信息产业对各行业应用数据的精度和可靠性提出了更高的要求,人们对地理信息质检软件的使用和依赖程度业越来越深。随着地理信息质检软件规模不断扩大,功能不断增加,智能程度和复杂程度不断提高,使得软件质量更加难以保障,提高软件质量成为质检业务领域的重要任务。
地理信息质检软件是地理信息数据质量保障的软件,软件的可靠性尤为重要。该文结合地理国情质检软件,依据地理信息质检软件的特点,研究其测试的方法、流程和要点。
1.地理信息质检软件测试概述
1.1软件测试定义
IEEE软件测试定义为:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异。简单的说,软件测试是指为评价软件质量而展开的活动。
地理信息质检软件测试是使用人工或自动手段来测定评价质检软件的过程,其目的在于检验系统是否能检查并定位数据错误,是否能评价和输出统计结果。地理信息质检软件测试有周期,测试从需求开始,并贯穿整个开发过程,结合多种测试方法设计测试用例,保证软件质量,从而提高软件的可靠性。
1.2软件测试流程
根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试。体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”,该文主要针对地理信息质检软件的系统测试方法进行研究(见图1)。
2.地理信息质检软件特点分析
(1)空间数据源多样性,数据量一般较大,元素较多,且数据结构也相对复杂,质检软件支持DLG(PGDB和FGDB)、DOM(TIFF)、DEM(GRID)多种数据格式。
(2)图形属性结合性,地理信息数据不仅表达空间实体的位置和几何形状,同时也记录空间实体对应的属性,这决定了GIS数据包含图形数据和属性数据两部分,属性数据放在关系数据库中,图形数据放在图形文件中,质检软件支持图形和属性的检查。
(3)拓扑检查规则通用性,市场上各类地理信息质检软件或商业平台拓扑检查规则具有通用性,质检结果应保持一致。
(4)方案检查自动性,质检软件基于“规则检查项方案质检评价”的体系结构,同时通过质量数据库对检查结果进行管理,内部接口主要是与底层的规则库以及质量数据库之间的接口,实现基于方案的自动化检查。
3.地理信息质检软件测试方法
3.1测试方法分析
从是否关心软件内部结构和具体实现的角度划分,可分为黑盒测试和白盒测试;从执行测试时软件运行状态划分,可分为静态测试和动态测试;从测试时采用的工具划分,可分为自动化测试和手工测试。在测试的时候,按照具体测试范围、目的和过程会采用不同的测试方法,甚至完成一个软件的测试需要将多种方法结合使用,才能达到最好的测试效果。
地理信息质检软件是跟地理信息数据生产强相关的软件,从方案制作到错误检查再到质量评价,完整的体现了质检流程,因此,对于地理信息质检软件的测试应采用模拟运行测试方法,在真实或者模拟环境下运行系统,从而测定各项功能指标和综合处理能力,采用专项功能和系统综合测试相结合的方式,先在系统开发阶段针对需求文档或设计文档对功能模块进行专项测试,集成阶段针对整个地理信息数据质检流程来运行整个软件系统,从而得出系统总体的质量水平。这是一种比较直接和全面的测试方法,测试的结果较准确和可靠,适用于流程性强、专用性强的应用型软件。因此,针对地理信息质检软件的特点和图形系统的具体业务要求,经常采用以下3种测试策略。
(1)针对空间数据的黑盒测试。
由于地理信息数据结构复杂,数据量巨大,所以数据生产人员在处理数据过程中难免有错误发生,这就需要测试人员在针对空间数据进行质检软件测试时要对地理信息数据复杂的拓扑结构和属性结构进行设计,并设计地理信息数据的相互几何关系,试图发现软件底层隐藏的问题。
(2)针对质检业务流程的黑盒测试。
地理信息质检软件要求測试人员熟悉地理信息质检业务,包括质检方案制作、自动检查、人工检查、评价方案制作、质量评价,不但要测试验证正确的质检业务流程,也要设计异常事件流来验证质检软件的鲁棒性。
(3)针对稳定架构的自动测试。
当系统架构、接口稳定时,可以进行自动化测试,提高测试效率,减小测试成本。
3.2针对空间数据的黑盒测试
地理信息,是与空间数据分不开的,因此,需要针对地理信息数据的质量评价特眭进行测试验证。
(1)空间数据属性测试。
对数据方案中图层结构、属性结构进行编辑功能正确性的测试,对属性检查功能进行验证。采用的测试方法是对图层名和图层属性字段进行新增、删除和修改的反复操作,对已定义属性字段类型的属性值进行非法输入,验证软件的正确性、鲁棒性和稳定性;重点对质检系统的属性字段中的枚举值、必填值、默认值检查功能进行验证测试,验证属性值的符合情况。
(2)空间数据类型测试。
对于点、线、面三种类型空间数据的显示、查询、定位,验证其功能正确性,对系统所支持的多种数据格式进行测试,对不同数据格式的数据方案获取和质量检查功能进行验证。
(3)拓扑错误类型测试。
对于点、线、面之间的拓扑关系进行检查正确性的测试,包括重叠点检查、线重叠检查、悬挂点检查、线自相交/打折检查、同一图层中面重叠检查、不同图层面重叠检查、多边形缝隙检查、线穿越面检查等,以及其他点、线、面之间的关系检查,在对拓扑类检查功能进行测试时应重点关注缓冲区功能、空间查询定位功能。图2为几种常见的拓扑错误。
(4)多元地理信息数据联合质检算法测试。
地理信息质检软件提供DLG和DEM成果联合质检的技术,因此我们在开展联合质检算法测试的时候,需要通过以下测试方法对软件正确性进行验证:通过等高线、高程点与DEM之间高差对比,检查等高线的合理性;通过DLG数据获取水面范围,检查DEM水面高程是否置平。
3.3针对质检流程的黑盒测试
地理信息质检软件基于“规则-检查项-方案-质检-评价”的体系结构,完整实现地理信息数据从检查到评分的全过程,这里将结合质检业务主要说明正常事件流和异常事件流的测试过程(见表1,表2)。
3.4针对稳定架构的自动测试
在如何提高测试效率方面进行考虑,笔者在系统架构基本稳定的时候进行自动化测试,将若干个测试用例用测试用例管理器进行打包管理,在不占用人工的情况下批量执行,可以大幅度提高测试效率,从而节省测试成本。
考虑到测试数据的保密性、复用性及存储空间的高利用率,规定如下:自动化测试数据不单独再占用机器,尽可能使用现有数据服务器中的测试数据;为了保持自动化测试数据的一致性;不修改、破坏原始数据的用例可直接使用现有的测试数据;要修改破坏原始数据的测试案例,在开发自动化测试代码时需要拷贝一份数据来单独执行,执行完成后删除;新增的自动化测试数据按照功能模块上传到测试数据服务器相应的目录中。
由于地理信息质检软件主要输入对象是数据和参数,因此采用“数据/参数驱动思想”来设计测试用例,用Excel测试用例文档作为测试用例管理器,它是输入条件,如图3结构。
开发人员开发功能测試模块的*.exe,测试人员添加测试用例(输入条件)并执行产品化测试中,从而得到测试结果。*.exe存储在编译的Bin目录中,*.bat在设计开发时需要增加测试用例优先级的参数设置,以便区分执行冒烟测试用例和功能测试用例。
4.结语
地理信息数据的质量是地理信息产业数据使用用户关注的重点,而地理信息质检软件的质量是是地理信息产业数据生产和数据质检用户关注的重点,也是质检软件开发人员为之奋斗的目标。
地理信息质检软件的质量要素很多,如功能正确性、结果精确性、可靠性、容错性、效率、易用性、可扩展性等。这些质量因素相辅相成,互相依赖,彼此影响。其中“正确性与精确性”是地理信息数据的重中之重,这一切质量的保证,依赖于遵循软件工程技术的软件测试,因此地理信息软件的测试方法还有待于深入探讨和研究。