一种基于可注入故障的自动化代码测试方法及系统技术方案

技术编号:39059057 阅读:24 留言:0更新日期:2023-10-12 19:52
本发明专利技术属于软件测试技术领域,公开了一种基于可注入故障的自动化代码测试方法及系统。该方法包括:采用编写自动化测试脚本的方法,将待测软件运行在搭建的软件运行环境,根据指定的代码审查测试计划将故障点注入,进行软件的自动测试。本方法可以人为有针对性地设置硬件故障,并且可以实现代码的自动化测试,不仅对代码本身的规则问题和编码规范进行审查,同时对软件本身功能逻辑相关的问题进行审查,同时通过认为注入硬件故障的情况对软件运行的极限条件模拟,达到软件测试的目的,保证了软件的质量。件的质量。件的质量。

【技术实现步骤摘要】
一种基于可注入故障的自动化代码测试方法及系统


[0001]本专利技术属于软件测试
,尤其涉及一种基于可注入故障的自动化代码测试方法及系统。

技术介绍

[0002]嵌入式软件更新发展速度越来越快,软件复杂程度越来越大,软件的开发周期越来越短,提高嵌入式软件的质量就显得极为重要。软件测试能给软件提供质量保障,自动化测试是发现软件缺陷、提高软件质量最直接、有效的测试手段,通过代码自动审查能在软件开发前期尽早地发现软件存在的缺陷,而且发现的越早,正确改正缺陷的可能性就越大,越有利于降低软件开发测试的成本。
[0003]目前的嵌入式测试主要关注代码本身的规则问题和编码规范问题,这样就容易导致一些与软件本身功能逻辑相关的有价值的问题被遗漏且不易被发现,高效率、高质量的完成嵌入式软件代码审查则成为软件质量的关键保证。
[0004]目前的代码审查主要采用人工的方式,由测试人员利用代码检查单或代码走查等技术仔细检查代码和设计的一致性、代码执行标准的情况、代码逻辑表达的正确性、代码结构的合理性以及代码的可读性,检查代码是否符合软件设计文档和软件需求规格说明的要求,找出代码中的错误和违反开发标准的地方进行修改。这种方法不能设置指定故障测试软件的执行情况,对于测试人员的专业性依赖较大,具有较大的局限性,在软件规模过大之后,人工审查的方式效率极大地降低,影响了软件生命周期的开发效率,而采用自动化代码测试的方式则能避免这一问题。
[0005]软件开发人员常犯的开发错误集中在20种左右,包括数据错误引用未经过正确声明和初始化的变量、常量、数组、字符串或者记录导致的软件缺陷;由不正确的声明或使用变量和常量引起的数据声明缺陷;错误的数学计算引起的运算错误;不同类型的变量比较引起的比较错误;边界问题导致的比较和判断语句错误;代码中循环等控制结构未按照预期的方式工作导致的控制流错误。
[0006]传统的代码测试流程如附图1所示,主要分为四个阶段,代码审查策划阶段、代码审查准备阶段、代码审查实施阶段、代码审查总结阶段。代码审查策划阶段主要包括软件通过编译,无编译语法错误,同时将需求规格文档等准备齐全。代码审查准备阶段主要包括准备测试使用软件工具,同时根据软件设计说明定制代码审查检查单,制定代码审查测试计划。代码审查实施阶段主要包括软件测试机构派出专人审查代码,完成代码静态测试,同时辅助审查工具完成代码动态测试。代码审查总结阶段主要是将审查的结果记录统计,出具测试报告。
[0007]通过上述分析,现有技术存在的问题及缺陷为:现有技术对软件测试程序繁琐,劳动成本高,而且软件测试效果较差。

技术实现思路

[0008]为克服相关技术中存在的问题,本专利技术公开实施例提供了一种基于可注入故障的自动化代码测试方法及系统。本专利技术目的在于可以通过自定义故障的方式来辅助完成代码测试。
[0009]所述技术方案如下:一种基于可注入故障的自动化代码测试方法包括:
[0010]采用编写自动化测试脚本的方法,将待测软件运行在搭建的软件运行环境,根据指定的代码审查测试计划将故障点注入,进行软件的自动测试。
[0011]进一步的,在编写的自动化测试脚本中进行定时器管理、运行状态获取、运行控制、内存读写、管理内存监视、执行监视管理、操作寄存器和获取符号信息的测试。
[0012]进一步的,编写自动化测试脚本的方法包括:软件运行环境控制、故障注入、获取软件运行环境信息、内存操作、全局变量操作以及回调函数的编写。
[0013]进一步的,软件运行环境控制包括:加载JSON文件、加载二进制文件、初始化硬件环境、加载引导脚本、运行软件运行环境、停止软件运行环境、停止自动化测试、重启软件运行环境、获取软件运行环境运行状态、运行到指定时间。
[0014]进一步的,所述故障注入包括:设置故障、获取故障列表、删除故障。
[0015]进一步的,所述获取软件运行环境信息包括:获取CPU频率、获取当前PC地址、获取当前模拟时间、写入寄存器值、读取寄存器值。
[0016]进一步的,所述内存操作包括:从内存中读取字节、从内存中读取双字、向内存中写字节、向内存中写双字;
[0017]所述全局变量操作包括:打开符号解析、获取全局变量地址、获取全局变量值、修改全局变量值、获取函数地址、获取函数长度。
[0018]进一步的,所述回调函数包括:设置同步回调函数、设置定时器回调函数、设置执行监视回调函数、设置内存监视回调函数、删除定时器、删除执行监视、删除内存监视回调函数。
[0019]进一步的,编写自动化测试脚本的方法还包括:真实时间延时、打印、比较输出结果、输出错误到运行控制层、输出到日志文件。
[0020]本专利技术的另一目的在于提供一种基于可注入故障的自动化代码测试系统包括:
[0021]代码审查策划阶段模块,用于通过编译,无编译语法错误,同时将需求规格文档准备齐全;
[0022]代码审查准备阶段模块,用于根据软件设计说明定制代码审查检查弹,制定代码审查测试计划,根据方案报告模拟搭建软件运行环境;
[0023]代码审查实施阶段模块,用于将待测软件运行在搭建的软件运行环境,同时根据指定的代码审查测试计划将故障点注入,完成软件的自动测试;
[0024]代码审查总结阶段模块,用于根据测试结果,出具测试报告。
[0025]结合上述的所有技术方案,本专利技术所具备的优点及积极效果为:为解决目前软件测试过程中静态测试和动态测试局限性较大的问题,本专利技术提出一种基于可注入故障的自动化代码测试方法。本方法可以人为有针对性地设置硬件故障,并且可以实现代码的自动化测试,不仅对代码本身的规则问题和编码规范进行审查,同时对软件本身功能逻辑相关的问题进行审查,同时通过认为注入硬件故障的情况对软件运行的极限条件模拟,达到软
件测试的目的,保证了软件的质量。
附图说明
[0026]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理;
[0027]图1是本专利技术实施例提供的传统的代码测试流程图;
[0028]图2是本专利技术实施例提供的基于可注入故障的自动化代码测试方法图;
[0029]图3是本专利技术实施例提供的基于可注入故障的自动化代码测试系统示意图;
[0030]图中:1、代码审查策划阶段模块;2、代码审查准备阶段模块;3、代码审查实施阶段模块;4、代码审查总结阶段模块。
具体实施方式
[0031]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术。但是本专利技术能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似改进,因此本专利技术不受下面公开的具体实施的限制。
[0032]本专利技术实施例提供一种基于可注入故障的自动化代码测试方法包括:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可注入故障的自动化代码测试方法,其特征在于,该方法包括:采用编写自动化测试脚本的方法,将待测软件运行在搭建的软件运行环境,根据指定的代码审查测试计划将故障点注入,进行软件的自动测试。2.根据权利要求1所述的基于可注入故障的自动化代码测试方法,其特征在于,在编写的自动化测试脚本中进行定时器管理、运行状态获取、运行控制、内存读写、管理内存监视、执行监视管理、操作寄存器和获取符号信息的测试。3.根据权利要求1所述的基于可注入故障的自动化代码测试方法,其特征在于,编写自动化测试脚本的方法包括:软件运行环境控制、故障注入、获取软件运行环境信息、内存操作、全局变量操作以及回调函数的编写。4.根据权利要求3所述的基于可注入故障的自动化代码测试方法,其特征在于,软件运行环境控制包括:加载JSON文件、加载二进制文件、初始化硬件环境、加载引导脚本、运行软件运行环境、停止软件运行环境、停止自动化测试、重启软件运行环境、获取软件运行环境运行状态、运行到指定时间。5.根据权利要求3所述的基于可注入故障的自动化代码测试方法,其特征在于,所述故障注入包括:设置故障、获取故障列表、删除故障。6.根据权利要求3所述的基于可注入故障的自动化代码测试方法,其特征在于,所述获取软件运行环境信息包括:获取CPU频率、获取当前PC地址、获取当前模拟时间、写入寄存器值、读取寄存器值。7.根据权利要求3所述的基于可注入故障...

【专利技术属性】
技术研发人员:王梓蘅贾磊王晓明张轮
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1