GIS平台软件自动化测试框架

崔雪,王少华,蔡文文

(1.北京超图软件股份有限公司,北京100015;2.中国科学院 地理科学与资源研究所,北京100010)

论文来源:《测绘科学》第42卷第4期 2017年4月

摘要:针对GIS平台软件规模不断增大导致的软件测试工作量加重,手工测试无法保证GIS平台软件高质量运行的问题,该文提出了一套适用于地理信息领域的软件自动化测试与监控管理体系。在分析GIS软件测试流程和需求的基础上,结合 TeamCity、Sonar、WhiteBox等20多个管理软件,研发了适用于GIS软件的自动化测试和持续集成系统,构成了软件测试与监控的管理体系。这一自动化测试框架在GIS软件生产流程的应用表明,该框架可保障GIS平台软件的高效运行。

关键词: GIS,平台软件,自动化测试框架

0 引言

软件测试是保障和提高软件质量的重要手段。一个广泛应用的GIS平台软件,软件开发者和使用者必须对软件进行充分的测试,以确保其正常工作。以往在GIS平台产品研发过程中,软件测试工作量往往占总工作量的40%以上。随着超图平台产品的不断完善,软件规模的不断加大,平台软件总的有效代码数已经突破500万行,代码总量已经相当于半个linux。这么大体量的代码,单纯依靠传统的手工测试是较难实现的;并且GIS平台软件因为其自身的特点,如高并发、数据量大,使人工测试变得无法满足需求。因此为了提高测试效率,越来越多的测试工作引入了自动化测试的思想和方法。实践证明,软件自动化测试技术提高了软件测试的速度和效率,节省了软件测试成本,缩短了产品发布周期。自动化测试可以减少人工干预,避免人为原因给测试工作带来的误差。所以,采用自动化测试方法和相应的测试框架成为了软件开发组织测试工作的重要支撑手段。本文给出了一种实用、有效的自动化测试框架,并验证了该框架在自动化测试领域的实用性和优越性。

1 GIS软件测试体系特点

GIS平台软件因其自身的特点,决定着GIS测试体系不仅具备其他测试体系的特点,还需满足如下要求:能够验证高并发性;能够验证数据安全性,严格保障地理数据的安全性;能够验证网络信息安全性;能够随时更换不同的测试数据,全方位验证功能的正确性和承压性;能 够随时更换功能执行顺序,执行顺序不同,结果不同;由于 GIS数据量非常大,因此性能测试指标的重要性与功能正确性同等重要。

2 自动化测试框架的开发原则

根据GIS软件测试体系特点,同时参考国内外主流测试技术的功能,本文在设计自动化测试框架时,遵循以下原则

  • 1)实时,有针对性。GIS平台软件采用敏捷的研发流程],开发人员每天需提交大量的代码。原有测试原则是每个开发人员先手工测试自己的代码,测试通过后再提交到测试代码库,然后每天全部集成到一起进行编译打包成一个版本统一测试,测试后发现和定位问题都很困难。亟待能提交代码后立即测试,发现问题立即反馈给提交人的框架。
  • 2)全自动化流程。在整个测试环节中尽量减少人工干预,从代码生产、测试、验证和打包的整个流程都能自动完成。一个流程工作完毕后能够有序地进入到下一个流程中,无须人工干预和驱动,既可节省人力和时间成本,又能提高工作效率。
  • 3)数据与关键字驱动测试。不能将数据与测试用例的执行顺序在自动化测试框架中固定,需能够随时更改,做到数据驱动和关键字驱动,这样的框架能够更加灵活实用。测试框架易于扩展、维护。测试框架实现高度模块化,可提高框架的维护性,并且该框架要易于扩展,以适应不断更新的平台产品和不断变化的测试方式。
  • 4)测试脚本所使用的测试语言与框架相互独立。对于 SuperMap GIS平台产品,既有Java应用程序,也有.Net应用程序,该测试框架应独立于测试脚本所使用的语言,不能统一规定仅适用某一种语言。
  • 5)框架简单易用。测试人员的精力应投入到设计高效实用的自动化测试案例上,真正对产品功能和性能起到验证作用的是测试用例本身而非测试框架,不应该让框架的复杂性分散测试人员的精力。

更多内容请点击下方的PDF下载