APP下载

基于多维度覆盖率的嵌入式软件测试分析方法

2021-09-10钟云黉

科技研究 2021年19期
关键词:分析方法

钟云黉

摘要:嵌入式软件的质量水平及可靠性一定程度上会影响产品质量与可靠性,软件设计最重要的目的是提高软件测的质量,而软件测试有利于保证软件的质量,所以要重视嵌入式软件测试工作。在软件测试过程中,首先要测试软件获取数据资料的技术,其能否获取准确、实时、安全可靠的数据是判断嵌入式软件测试非常重要的标准。基于此,本篇文章对多维度覆盖率的嵌入式软件测试分析方法进行研究,以供参考。

关键词:多维度覆盖率;嵌入式软件测试;分析方法

引言

软件程序规模与复杂程度的增长增加了软件应用的不确定性。为有效保证软件质量,软件测试逐渐成为软件研发中成本最高的项目。软件测试能力、测试效率及测试特点的动态跟踪与定量分析,以及软件测试的持续优化成为目前软件研发中最为迫切需要解决的问题。目前软件测试的研究侧重于如何开展测试过程组织、具体测试方法等,测试评价主要围绕软件缺陷报告、缺陷跟踪与测试进度评价等方面,缺少对软件的动态跟踪及在线评价。导致软件测试中经常出现测试过程按照测试计划开展,但由于测试用例较大导致测试执行有效性缺失的问题,很难在测试过程中发现测试软件薄弱点。根据这一问题,提出基于多维度覆盖率的嵌入式软件测试分析方法。

1嵌入式软件测试技术

1.1开发工具IDE的虚拟I/O功能

嵌入式软件是在交叉的开发环境下开发出来的,绝大多数嵌入式开发工具都具备编译、调试、加载以及链接等功能,还有一部分非常高级的开发工具甚至具备虚拟I/O的功能,能够为嵌入式软件的测试提供非常大的便利性。利用开发工具的虚拟I/O能够十分便利地获取嵌入式软件测试数据,但是其自动化程度比较低,在过去的测试数据过程中测试者需耗费极大的精力。因此,要重视改善开发环境,在现有条件下进行集成应用的开发,进而不断提升测试数据获取的自动化水平。

1.2测试设计

测试设计过程中可以通过编写自动化测试用例代替手工测试的反复操作,自动化测试用例覆盖率高可以有效地提高测试用例复用率和执行效率。基于国产化平台信息系统软件自动化测试在采用的自动化测试平台上,可以通过不同维度的测试用例设计增加自动化测试用例覆盖率,即分别从单元测试、接口测试、GUI测试分别设计自动化测试用例。自动化软件测试用例设计一般遵循三角形用例覆盖率比例,单元测试与代码直接相关,软件代码改动对单元自动化用例的影响较小,单元测试自动化用例覆盖率最高,其次是接口测试自动化用例。GUI自动化测试用例实现难度高,且受代码改动影响大,因此其自动化测试用例覆盖率最低。

1.3纯软件插桩技术

软件插桩方式必须在虚拟软件测试环境中进行,通过软件方法对嵌入式软件测试系统中发硬件环境进行准确描述,然后构建能够支持嵌入式软件测试的运行虚拟平台。在虚拟平台上,不仅可以通过擦伤技术获取嵌入式软件测试数据,而且可以通过软件的动态测试高效完成嵌入式软件测试工作。要注意的是,在这种软件测试条件中,借助开发处理器、常用外围芯片、存储器和各种时钟的模拟软件,在计算机系统中构建测试所需要的运行虚拟环境,完成嵌入式软件测试工作。

1.4测试总结

测试总结活动是对之前几项测试活动的总结,在测试执行完成后对各项测试活动进行整理分析,形成测试报告。基于国产化平台的信息系统软件研发还未广泛开展,对应的软件测试技术也需要不断的探索与研究,相比于非国产化平台的软件测试,国产化平台信息系统的软件测试不再仅限于单一项目,还需要与其他项目的测试策划相关联。因此测试总结活动还需要以资源池的形式進行技术积累,将整个测试过程中的软件测试方法、测试工具、测试分析等进行技术储备与传播,为其他国产化平台的软件测试提供借鉴。

2实验准备

采用VisualC++6.0作为运行环境,Intel公司MCS-51系列CPU8051软件进行仿真,虚拟机运行在X86CPU操作系统下。运行时,使用虚拟机为上层应用程序提供1个运行环境,由处理器自身执行程序命令。软件测试需要相关数据,以便针对具体连锁软件测试时能够实现调用相关信息。软件测试数据配置主要分为被测场相关数据与测试接口相关数据,涉及数据主要包括信号机静态数据、区段静态数据以及进路表数据。数据库记录原始测试数据案例、进路数据以及测试结果,根据测试序列生成解析测试结果,判定查询及记录存储与分析结果。测试仅针对软件进行,不依赖硬件采集设备信息,被测软件依据的接收信息来源于仿真平台生成序列关键点。过程中设置进路不能正常建立测试,存在多条路径,形成并联约束条件,根据迁移函数逐个设置信号机错误、道岔错误及区段错误,依据进路编号设置异常,逐步测试直到测试完成。

3人工智能在软件测试的应用

目前整个软件测试领域处于快速发展的阶段。从早期的纯手工测试,费时费力,到现阶段的自动化测试,虽然较好地提高了软件测试的工作效率,但依然停留在辅助测试的阶段,并不能完全独立地完成某一完整的测试流程。且随着软件规模的不断扩大,传统的测试方法越来越无法满足日益增长的测试要求,因此希望引入人工智能帮助软件测试更好的实现自动化、智能化。AI在现阶段的软件测试领域已取得一些进展。测试人员通过AI自动创建测试用例,测试人员的主要工作不再是重复设计一些自动化测试用例,而是运用机器学习的理论,提供测试的输入输出数据去训练AI模型,让AI去自动生成测试用例并执行,从而提高测试效率。同时市面上已有一些基于AI的软件测试系统可以通过自动生成测试用例对软件进行测试,例如Appdiff就是一个基于AI的移动App自动化测试平台,能够完成一个典型移动App90%的界面测试,且能够持续不断地处理Bug,比传统的测试效率更高。

结束语

软件测试中,为了能够定量评价软件测试效果,及时发现软件测试中的薄弱点,需要对其进行测试分析,以保证软件测试的有效性。利用多维度测试覆盖率概念,在软件测试中基于多种覆盖指标度对软件测试可靠性与质量作出分析评价,进一步综合分析软件测试性能。

参考文献

[1]赵露.嵌入式软件测试数据传输稳定性检测方法[J].廊坊师范学院学报(自然科学版),2020,20(02):20-24.

[2]任秋洁,韩英.嵌入式系统软件安全测试技术研究[J].科技视界,2020,{4}(17):54-55.

[3]潘晶晶.通信设备嵌入式软件测试流程的改进[J].科技风,2020,{4}(14):112.

猜你喜欢

分析方法
IP城域网/智能城域网BGP收敛震荡的分析方法
电力营销管理中电费电价分析方法研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高分辨质谱在氯化石蜡分析方法中的应用
例谈一种追及问题的错解和常用分析方法
投资决策分析方法研究
浅谈边坡稳定性分析方法
关于证券投资分析方法的探究
企业财务分析存在的问题及对策思考