铁路工程建设信息化测试方法的研究

2018-06-01 02:09周艳惠
铁路计算机应用 2018年5期
关键词:功能测试测试用例软件测试

周艳惠,钱 进

(1.北京经纬信息技术公司,北京 100081;2.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

铁路工程建设信息化具有需求的专业性、业务的复杂性、用户的层次性以及软件实现的多样性等特点,为保证铁路工程建设信息化各软件实现和稳定运行,作为软件开发重要环节的软件测试扮演着非常重要的角色。本文将结合铁路工程建设信息化,对软件测试方法进行多方面的探索和总结。

1 软件测试目标

铁路工程建设信息化覆盖专业面广、涉及用户多、数据量大。为保证软件快速高效、安全平稳地运行,铁路工程建设信息化软件的测试目标是在软件上线前尽可能多地发现软件中存在错误、冗余流程、不友好界面等,通过不断修改软件错误,保证最终软件产品的质量,保证用户可快速入门操作软件,提高用户满意度和使用效果,降低软件存在风险,降低软件维护成本。

2 软件测试方法

2.1 Web应用

Web应用作为铁路工程建设信息化的主要实现方式,共划分了综合管理、过程控制、现场管理3大方面,以及服务平台、知识平台等辅助平台。

2.1.1 功能测试

功能测试指测试软件各个功能模块是否正确,是否满足用户需求且符合正常业务逻辑等。功能测试以黑盒测试为主,根据需求说明书、需求规格说明书、设计文档等,充分考虑每一个功能点的准确性、可操作性以及可验证性,得到测试需求点。以等价类划分法、边界值分析法为主,场景法、因果图法、判定表法、错误推断法等为辅进行测试用例设计,经过项目组评审后形成测试用例基线。

功能测试主要以手工测试为主,通过逐条执行测试用例对分析所得的测试需求点进行全面性、适合性、标准性的测试。在后期发现缺陷数目降低时,借助第三人进行冒烟测试、随机测试,提高测试的准确性。

2.1.2 性能测试

根据铁路工程建设信息化软件的特点和用户分布情况,性能测试的重点集中在两大方面:(1)保证高峰期用户可正常登录进行相关操作;(2)汇总统计或同步大批量数据时用户可正常访问。

性能测试时采用Badboy+JMeter工具,对单业务场景和混合业务场景两种模式分别从以上两方面进行验证。通过录制场景,开发关键场景性能测试脚本,在执行测试过程中观察在高峰期时各业务的响应时间、应用服务器和数据库服务器的CPU占用情况、磁盘读写情况以及是否发生错误等,发现多处应用和数据库性能瓶颈。经过分析与确认,开发团队对软件应用及数据库进行修复和调优,前期出现的高峰期用户登录时间长、登录时服务无响应、查看汇总数据页面加载慢等情况得到有效改善。使用Badboy+JMeter进行性能测试,如图1所示。

图1 使用Badboy+JMeter进行性能测试

2.1.4 兼容性测试

Web应用的用户均采用浏览器进行访问,而用户群体中基本采用Windows系统,故兼容性测试重点关注浏览器兼容性。由于浏览器内核不同、厂家不同、版本不同,软件都会发生不同程度的兼容性问题,故通过现场用户调查,结合市面主流浏览器以及软件特性,确定了几款重点测试的浏览器:360浏览器极速模式、IE9及以上。测试过程中,结合人工和自动化测试,针对同一功能在多个浏览器下进行操作,确保功能正常,界面美观。

2.1.5 回归测试

回归测试在测试过程中非常频繁,为保证开发人员在修复缺陷时未引入新的缺陷,测试人员必须经常性的回归软件大部分功能。若这部分工作全部采用手工测试,会产生大量的重复性工作,浪费人力且效率低。故在回归测试中,针对稳定功能多以自动化测试为主,人工测试为辅,提高效率,保证测试用例的覆盖率。自动化测试采用“Selenium+TestNG”框架,用Excel管理测试数据方便测试数据的修改,使得测试数据和测试行为实现分离管理。

2.2 移动端应用

随着智能手机和移动互联网的发展,移动端应用在铁路工程建设信息化中占有越来越重要的地位,特别是现场管理方面。

2.2.1 功能测试

移动端应用的功能测试思路、方法与Web应用基本一致,不同的是在设计测试用例时要考虑更多方面的隐性需求,如安装卸载、应用被电话打断、应用进程被杀掉等。

2.2.2 专项测试

专项测试是移动端应用特有的测试,包括:流畅度、CPU占用百分比、内存占用、流量消耗、弱网、耗电量等方面。它和以往的功能测试有很大差别,不能只是按着一定的操作步骤来判断结果的对错,这对测试人员来说是一个不小的挑战。在测试过程中,借助后台监控和第三方工具来获取结果,再结合用户反馈进行分析和调优。

2.2.3 兼容性测试

移动端应用的兼容性测试比较复杂,需要重点

2.1.3 安全测试

安全测试因操作困难、缺陷探测率相对较低而备受测试领域关注。铁路工程建设信息化软件涉及用户量大、业务数据多,安全性相当重要。在实际测试中,我们采用工具测试和手工测试相结合,先采用工具进行自动化探测系统漏洞,然后针对漏洞进行人工分析和确认,系统安全漏洞大多集中在SQL盲注、SQL注入、跨站脚本编制等方面,这也为后续开发工作提供了防范思路。考虑的因素包括操作系统版本和分辨率、厂商等。目前,铁路工程信息化的移动端采用的操作系统多为安卓系统,操作系统版本除考虑安卓原生系统版本外,还需考虑各厂商基于安卓深度开发的系统,分辨率更是多种多样。对于兼容性测试,想穷举是不可能的,故在测试过程中,采用模拟器、云测平台及主流真机相结合进行测试来保证移动端应用的兼容性,确保功能可正常使用,界面可正常查看。使用云测平台进行兼容性测试,如图2所示。

图2 使用云测平台进行兼容性测试

2.3 接口

铁路工程建设信息化是一个集成平台,各软件通过接口进行数据交互、数据共享,接口测试是铁路工程建设信息化软件测试中非常重要的一部分。

2.3.1 功能测试

接口功能测试是确保接口功能实现正确,当其他软件进行调用接口结合测试时,能够排除接口缺陷所导致的问题,便于开发人员定位问题。测试用例设计与Web应用设计方法基本一致。接口实现基本采用WebService的Soap或Rest方式,在测试中选用SoapUI测试工具进行辅助测试,在SoapUI中增加对应的测试用例,方便测试工作管理,提高工作效率。使用SoapUI进行接口功能测试,如图3所示。

2.3.2 性能测试

接口性能测试是保证大批量请求接口时,接口可正常且准确的响应请求。当接口不响应时,将导致调用本接口的软件部分甚至全部功能无法使用,接口性能测试非常重要,特别是业务逻辑中重要的接口以及调用频繁的接口。针对这部分接口,采用Jmeter工具对其进行负载测试和压力测试,发现和定位性能瓶颈。

图3 使用SoapUI进行接口功能测试

3 结束语

随着互联网的快速发展,铁路工程建设信息化程度越来越高,要想软件更完美更好地为铁路工程建设服务,就需要做好软件测试工作,提高软件质量,让用户满意。本文结合铁路工程建设信息化软件的测试实践总结了测试的常用手段,我们需要继续不断探索、不断革新软件测试的方法,努力实践,总结经验。

[1]王同军. 基于BIM的铁路工程管理平台建设与展望[J]. 铁路技术创新,2015(3):8-13.

[2]王万齐. 铁路工程管理基础平台方案设计研究[J]. 铁路技术创新,2016(3):18-20.

[3]陈 亮. 铁路工程建设期信息化建设探讨[J]. 铁路技术创新,2016(3):23-26.

[4]王 江. 铁路工程建设信息化管理研究[J]. 交通建设与管理,2014(10):169-171.

[5]徐晓磊,沈海燕,卢文龙,等. 铁路工程建设施工组织信息化的研究[C]//第十一届中国智能交通年会,2016.

[6]徐晓磊,解亚龙,鲍 榴,等. 基于Flex的施工组织形象进度图的设计与开发[J]. 铁路计算机应用,2017,26(3):26-29.

[7]刘支援,郭永振. 软件测试架构浅析[J]. 电子科学技术,2015,2(4):460-464.

[8]李天翼. 12306互联网售票系统测试的实现[J]. 铁路计算机应用,2016,25(10):27-30.

[9]于园园. 软件测试技术与测试管理研究[J]. 江苏科技信息,2016(7):66-68.

猜你喜欢
功能测试测试用例软件测试
某内花键等速传动轴八功能测试夹具设计
回归测试中测试用例优化技术研究与探索
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究