大型复杂系统的精确联动测试技术研究

时间:2023-08-10 18:40:03 来源:网友投稿

赵司宇

摘要:现阶段,随着软件系统规模与复杂度的不断提升,测试技术的多样化得到了发展,但是专业性、针对性与应用范围仍有提升的空间。为此,文章以户政管理“跨省通办”系统为范例,研究了针对多部门、多层级、多系统、多网域之间的协同测试技术,依赖服务之间的联动测试技术,以及大型复杂系统中的测试问题定位技术。

关键词:“跨省通办”;
协同测试;
联动测试;
问题定位

中图分类号:TP391        文献标识码:A

文章编号:1009-3044(2023)13-0045-04

开放科学(资源服务)标识码(OSID)

0 引言

随着信息技术的发展,现阶段所见的软件规模不断增大,其内部复杂程度也越来越高,其内部嵌入的功能接口越发增加,多个系统之间的集成耦合度越来越高。在这种情况下,与之相对应的软件测试难度也在不断提升,具备相对应的测试技术,尤其是针对大型复杂系统的测试技术,也就成了现今亟待解决的问题。

协同测试是在多部门、多层级、多系统、多网域之间,需要针对一整个软件系统进行的测试。在这种情况下,共享信息以保证系统测试流程的顺畅、同时对于不同部门之间进行协调,是协同测试中的一大挑战。为了同时保证测试的安全与高效,测试者需要完成整个系统测试内容的全面覆盖,在保证没有某个环节遗漏的同时,也需要保证没有某个中间部分受到无意义的重复检测。

联动测试是指针对某一由诸多不同系统所组成的系统测试,多个不同的软件系统可能涉及诸多不同的接口对接、移动端小程序、服务器部署项目、桌面端服务器等诸多不同环境下的系统组成的大型系统,同一系统内也同时包括了数据库、软件代码所编写的接口、部署环境在内的诸多需要不同测试方法进行的测试环节。在同一大型复杂系统之中,多个不同的系统服务,以及同一系统的内部应用服务之间,由于存在着相当的依赖关系,对它们进行统一测试的方法,尚且不够成熟,需要进一步研究。

而在大型系统中,由于可能存在多个子系统,每个子系统中又存在多个功能接口,其内部的逻辑复杂度极高,同时可能通过不同的代码语言实现。而由此实现的诸多功能,在组成大型系统时的整体流程,以及各功能在业务之中的应用,使得各种复杂功能之间的组成难以清楚辨析。自动化测试工具成了针对这个问题常用的测试工具,能够进行大量的测试。但是,自动化测试工具的准确性十分依赖于测试人员与测试脚本[1]。在大型系统中,很难快速尝试各种业务情况,测试得到具体的错误原因,并定位出发生问题具体功能接口位置。想要快速定位大型系统中存在的问题,也是现今测试之中的一大难题。

为了实现联动测试,测试者需要对系统具备明确的认识,能够区分外围系统和关键核心系统,通过分层确认测试时的测试重心。通过对于测试内容与整体流程的系统化认识,测试者能够对系统实现合理分配,将不同的测试内容,包括不同层级、不同系統、不同网域内的功能测试,分配给不同的部门。

为了实现协同测试,测试者需要合理实现对整个测试流程的阶段性分配,包括对于整个软件系统进行合理的单元划分、分配,以及单元测试之后的测试整合过程。相比于常见的测试流程,测试者选择了更加轻量级的测试方法,以接口正确性为核心,覆盖各种测试功能之间的组成。

为了实现错误定位功能,测试者需要编写合适的测试用例,在测试用例能够完整覆盖整个系统的情况下,尽可能确保各个测试用例之间的关联度减小,从而缩小其间的覆盖面,同时删除其中的冗余信息,通过更高的运行效率,缩短问题定位时间。

为此,测试者对于现有的测试过程进行了修改,通过细化以及针对性地设定,在测试过程中添加了更多的测试要求,确保了测试过程能够适用于大型复杂系统的测试,通过合理分配与错误定位,同时保证了正确性与高效。

本文通过子系统功能与重要性的合理分配,在测试过程中,实现了联动测试;
通过大型系统的合理单元划分,进行了轻量级的测试系统覆盖,在测试过程中,实现了协同测试;
通过高效的测试用例编写,实现了测试问题的定位。

1 测试过程

在系统测试过程中,对测试过程进行管理是最为重要的步骤。在本节中,测试者对于测试过程进行了划分[2-3],分别通过每一轮实现了大型系统中的联动、协同测试与问题定位,并针对户政管理“跨省通办”系统给出了实例。

1.1 单元测试

单元测试指对测试中最小检测单元进行检查和验证。

在该测试过程中,测试者需要采用白盒测试方法,根据实际业务区间,在最开始的项目设计中就完成不同子系统的划分,并且根据具体功能,在每个子系统中,根据实际的业务层级需求,划分不同的区块,并将不同子系统分配给不同部门,保证外部设计功能与内部封装接口之间的一一对应,从而实现在协同测试下,多部门、多层级、多系统、多网域之间的功能划分。

在户政管理“跨省通办”系统中,系统可以划分为数据治理体系、电子证照、跨省通办、“互联网+”、电子档案管理应用系统、综合管理应用、电子印章、密码应用安全等不同系统,分别分配给了不同企业与单位,不同系统根据实际需求分配,在不同企业与单位所在的省市,同时完成测试环境、生产环境的部署,分别完成每个系统的测试。

1.2 集成测试

集成测试又称为组装测试或联合测试,在单元测试的基础上,按照项目的概要设计说明书以及详细设计说明书,对单元模块进行组装。

在进行各个协同单元的功能测试过程中,由于每个单元的功能在单元测试的划分中已经明确,整体业务能够根据流程设计完成快速组装,从而能够实现轻量级的集成。

在户政管理“跨省通办”系统中,不同系统通过集成成为一个完整的系统,系统组成方式在项目开始先期即根据整体框架设计图完成设定,并通过集成测试确保系统、系统内子系统与功能接口能够彼此之间相互协作,实现整体的功能。系统综合采用图1所示的集成测试方法,确保集成测试的完整性。

1.3 确认测试

确认测试也称有效性测试,可检测软件系统的功能、性能以及其他特性,是否与用户要求一致。

在测试的过程中,针对每个测试模块的功能设计与流程组合,可以通过测试用例密度为标准进行衡量[4],设计尽可能少量的测试用例,每个测试用例能够覆盖到每个业务单元需要检验的不同情况,通过互斥的情况组合,完成所有需要检验的测试条件全覆盖,即实现了大型复杂系统下的高效测试定位[5-6]。

在户政管理“跨省通办”系统中,针对完整系统测试的过程中,需要预先完成测试用例的设置。该平台主要业务功能包括户口迁移、新生儿出生入户、户籍类证明、跨省身份证申领四大功能模块,预先根据标准要求,完成覆盖了各种测试场景与功能的各种测试用例。测试用例的实现要求如表1所示:

1.4 系统测试

系统测试将整个大型系统作为整体进行测试,包括了软件系统、硬件、网络、支撑软件、数据库等,进行对接联调工作,能否在环境下协调一致实现业务需求。

在最初完成充分的项目整体构造规划的基础上,根据实际的业务需求,将整体的业务部署进行划分,不同的区块环境根据重要性进行标识,从而明确各参与方之间的业务需求,以及在整体工作中的资源分配,实现了联动测试。且根据杀虫剂效应[7],软件会对测试的方式产生天然的免疫性。这要求测试者在大量测试数据的情况下,需要通过多种不同的测试软件,根据多种不同场景下的测试用例,实现多元化测试技术,从而将系统测试的效果最大化。

在户政管理“跨省通办”系统中,通过测试用例的运行,分别完成各个功能模块的整体流程。与此同时,在后台接口中,传入各种前端系统得到的参数,以及系统配置的参数,通过各个接口的返回结果,确认系统存在的问题进行修改,并且通过多种测试软件、在多种测试场景下完成测试。

1.5 验收测试

验收测試由用户对于系统核心流程进行检验、测试、开发人员进行操作演示,用户则依照需求规格说明书的要求进行验收。

在最终的验收过程中,操作演示只需要针对系统架构中的核心子系统进行,即联动测试中区分的关键核心系统,在该子系统中,由不同子系统的开发、测试人员,根据划定的功能单元分别进行分项测试演示,即实现协同测试。

在户政管理“跨省通办”系统中,经过多轮迭代测试、确认系统完成之后,测试人员同步根据日志进行标准比对,确认各个功能模块完整,流程完整,数据项均符合标准要求,随后完成测试联调报告并反馈,报告内容包括每一轮中的测试情况,具体操作流程,以及流程中测试出并修改的问题。

总体测试流程如图2所示。单元测试、集成测试、确认测试与系统测试时,若测试有误,则在提交bug报告后,回到之前的步骤进行调整,直到测试通过后,开始进行下一步测试。

2 软件测试过程的基本内容

大型复杂系统的核心功能,往往都是通过软件实现的。因此,针对各软件子系统中接口功能实现的重点测试,也就成了大型复杂系统测试中的关键[8]。除了功能之外,软件的压力监测工作也十分关键[9],一旦因此出现问题,就会影响整体业务与业务数据的准确性。因此,软件测试要求能够根据系统的需求分析,针对性设计出满足各种场景需求的测试用例,跟踪完成全流程的业务运行,同时制定负载压力场景。而功能测试与压力测试的测试脚本,均需要遵循以最小的代价完成测试的原则。

在这一节中,测试者以户政管理“跨省通办”系统中,“电子印章”“密码应用安全”两系统为例,重点研究了核心软件系统的测试过程。

2.1 测试准备

测试准备阶段主要包括组建测试小组,确定测试人员。

在测试准备过程中,测试人员需要根据不同部门进行分配。根据不同部门、具体分配的子系统内容,分别选定测试人员,综合确定整体测试方案,即可实现协同测试。

在测试准备工作中,测试者申请了户政管理“跨省通办”系统测试方法研究项目,专门进行相关测试方法研究,并根据项目要求分配了测试小组,专门进行功能测试与标准比对。

2.2 测试计划

测试计划需求对系统进行拆解,确定了需要测试的重点功能模块,并分配用于测试的资源,初步确定功能方法与测试计划进度,完成测试文档撰写。

根据各子系统在大型复杂系统中的功能分配及具体的重要性,完成用于测试的资源分配与部署,根据需要设定测试计划,并且根据具体功能,实现初步的测试模型设计,即实现了联动测试。

在设定软件测试计划时,测试者完成了科研项目论证书,分别确定了进行联动测试、协调测试以及自动化错误定位的研究方向。户政管理“跨省通办”项目设定测试计划为每个季度完成一项测试计划的研究,最后一个季度完成技术研究的总结性汇报,即项目时间为一整年。项目中选择采用黑盒测试,针对内部代码逻辑不够清晰的情况,完成前、中、后各种系统层面的业务场景测试设计[10]。

2.3 测试设计

测试设计即完成测试用例的设计。

根据每个子系统所需要测试的功能,进行针对性测试用例设计,保证以最低的测试用例密度测试出每一个模块所需要检测的各种功能,可能出现的各种正确、错误的情况,能够在发生错误的情况下,在最短的时间内定位错误发生的位置,即实现了大型复杂系统下、各子系统的高效测试定位[11]。

在测试设计过程中,测试者根据标准要求,提出整体系统的各个功能模块内各种不同的业务场景,包括功能模块内所涉及的各种基本接口服务,以及业务服务调用的各种正、反向情况,单人、多人调用,业务审核通过与不通过等场景。

2.4 测试执行

测试执行包括搭建测试环境,准备测试数据,并根据实际业务需要,针对不同的系统设计、代码等特点,撰写测试脚本,得到最终测试结果[12]。

根据实际分配的资源,分别完成不同网域下,各功能子系统测试环境的搭建,并且由不同部门,分别配合各测试用例实现各自分配的子系统功能测试,在测试脚本中完成软件系統与数据库、硬件、支撑系统、网络等外部服务的兼顾,即做到不同层级的兼容,最终测试结果能够适应多部门、多层级、多系统、多网域,即实现了联动测试。

在测试过程中,为了完成高效的软件问题定位,接口运行需要通过自动化测试软件运行,同时能够同步进行压力测试,确认系统在实际运行过程中的性能。配合实现了各种测试用例的脚本,自动化测试工具能够兼顾软件核心功能与工作性能的测试。在本项目中,测试人员通过Jmeter、LoadRunner、Findbugs[13]等多种不同模式的测试软件,通过不同场景测试用例,实现了多元化测试技术,覆盖了全流程业务实现的同时,将测试效果最大化,并且模拟了大量用户并发的负载情况,监测了系统的实时性能,检验了整个系统的稳定性[14-15]。功能测试结果如表2所示。

2.5 测试结果分析

测试结果分析即根据测试结果,定位确认软件系统和产品质量问题,并进行多轮测试,最终完成测试报告的撰写。

最终的测试结果将各单元之间的诸多测试内容进行整合,保证了整个大型复杂系统内,软件核心功能的轻量级测试覆盖,即实现了协同测试。

在测试结果分析的过程中,测试人员每一轮均给出了流程执行过程中出现的问题,并且比对了日志数据与标准之间的差异,保证了系统功能的完善,给出了囊括每一轮测试过程与测试问题的测试报告。最终的测试里程碑任务如表3所示。

3 结论

由于软件系统逐渐趋向大型与复杂的发展,测试技术需要与时俱进。本文研究了在多部门、多层级、多系统、多网域情况下的测试技术,能够对整体实现合理、高效的流程、功能系统与资源分配,并且能够在最短的时间内、实现错误的自动化定位。

参考文献:

[1] 任宪臻.自动化测试工具在软件测试中的应用[J].数字技术与应用,2017(3):251.

[2] 杨丽波.浅析软件测试管理[J].电子测试,2017(7):94-95.

[3] 王颖.人力资源信息系统与软件测试技术[J].电子技术与软件工程,2017(6):55.

[4] 杨贞祥,赵兴奋,贺虎林.基于历史数据的软件测试数据统计分析研究[J].微型机与应用,2017,36(4):22-24,28.

[5] 林振文.IGA算法的构件化软件测试用例生成研究[J].科技创新与应用,2017(6):88.

[6] 李泽雪,薛亮,李相民.基于改进蚁群算法的软件测试方法[J].兵工自动化,2017,36(2):70-74.

[7] 卢玲,刘勇,陈小奎.浅析大数据背景下软件测试的挑战及其展望[J].电脑知识与技术,2017,13(8):92-94.

[8] 赵志龙.三部综合管理平台的软件测试研究与应用[J].黑龙江科技信息,2017(11):151-152.

[9] 闫岩.计算机软件测试方法的分析[J].数字技术与应用,2017(3):244.

[10] 戚荣志,徐淑芳,曾涛,等.水利业务应用系统中软件测试方法研究及应用[J].水利信息化,2017(1):5-9.

[11] 冯济舟.软件测试误区的思考[J].质量与可靠性,2017(1):5-9.

[12] 董智勇.软件测试在Web开发中的应用[J].数字技术与应用,2017(2):207.

[13] 高蕾.Android软件测试技术分析[J].电子技术与软件工程,2017(5):59.

[14] 刘申.软件测试在信息工程建设中的应用分析[J].中外企业家, 2018(2):1.

[15] 陈国明.软件测试在信息工程建设中的应用分析[J].网络安全技术与应用,2017(2):20-21.

【通联编辑:唐一东】

推荐访问:联动 技术研究 精确

最新推荐
猜你喜欢