软件错误注入测试技术探寻
徐勇
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

徐勇,. 软件错误注入测试技术探寻[J]. 软件工程研究,2025.3. DOI:10.12721/ccn.2025.157025.
摘要: 本文主要介绍一种可靠性高系统内部常用的错误注入测试技术。并通过讨论与该技术相关的理论和方法来提升软件的质量。具体在分析系统运行过程中常见的外部攻击和环境异常等不同的问题来找出合适的解决策略,为的是更好地提升系统测试的效果。
关键词: 软件错误;测试技术;探寻策略
DOI:10.12721/ccn.2025.157025
基金资助:

引言:

错误注入技术是一种非常传统的软件测试技术。主要是以特定的故障模型为基础,并借助人为和有意识的方式来产生相关的故障,并将多数特定的故障融入待测试的系统内部,最后其实会使得系统内部错误发生的速度变快。错误注入技术最早出现在上世纪70年代,也被有效地运用于硬件测试的过程中,后来则可以在分析不同测试对象之后来使用合适的硬件技术和软件技术。常规的SFIT技术是通过运用合适的软件方法来测试软件系统,最早在1978年由著名的人物提出。SFIT技术目前已经被广泛地应用于航空测试和航天软件测试的过程中。

1.研究背景

从大量实践的过程来看,如果能够在起先就发现软件内部存在的问题,其开发的成本会越低。但是,如果在编码之后才去修改软件内部的缺陷,其耗费的成本将会变得越来越大。在实际开发软件的过程中,软件测试的工作量是开发总工作量的40%。

可以从不同的角度来分析软件测试技术。按照是否已经执行被测试软件的标准,可以将测试软件的过程中植入静态测试和动态测试两个主要的部分。在进行静态测试时,并不需要实际运行程序就可以对软件的代码和结构进行检查,为的是确定其内部存在逻辑和代码是否可以更好地满足软件设计的要求。在动态测试的背景下,专业人员可以先运行被测试的程序,之后再运用实际的内容来验证软件运行的过程[1]。软件错误注入测试指的是人为地将一些错误融入被测试的软件中,并在发现软件中存在的缺陷和漏洞之后来定位和评估软件的安全性。

2.软件注入测试技术的概念和优点

2.1软件注入测试技术的概念

SFIT为软件错误注入测试技术的缩写。最初指的就是能够运用合适的软件来更好地注入错误。该技术是由上世纪70年代所提出的错误种子技术发展而来的。可以先将一些已经存在的错误融入程序中,并在计算之后找出评估过程中存在的其他错误。一直到后来,更多的专家才提出了其他变异测试的过程。最后自然也就能够将软件错误技术发展为一项高质量的技术。

2.2软件注入测试技术的优点

软件错误注入测试技术在使用的过程中将会表现出如下几点优势:

第一,测试的过程将会变得更加灵活和有更强的可塑性。而且也能够通过构建不同的外部环境来灵活地完成软件对接和其他不同种类的测试。第二,该技术可以测试专业的商用产品。正因为这一类软件源代码是不能够被公开的,所以如果能够采用软件错误注入测试就可以从API接口处直接注入错误,并有效地评估COTS产品。第三,该技术可以增加软件测试的覆盖度。往往也能够测试一些概率较小的错误和没有办法达到的路径。第四,该技术可以最大限度地增强软件的安全性。例如,运用软件错误注入措施可以更好地模拟各种软件信息的攻击过程。

3.程序错误注入测试分析

3.1措施的背景与目标

存在于本案例内部的测试对象指的就是在Unix的环境下存在的信息智慧系统。该系统主要是由软件层、共性平台层不同类型的组成。具体的结构如图1所示。

整个结构内部的核心业务和业务展现内容会集中在共性平台内部,这样就能够更好地完成人机界面的对接,更能够及时处理业务。共性平台的存在则是为了能够全面负责软件的维护和管理[2]。在本次测试的过程中,如果内部的核心业务和某个软件在运行的过程中存在诸多异常情况,系统需要在第一时间就能够捕获出现更多不一样的信号,这样才能够在摆脱异常情况之后直接处理函数,系统运行的过程也就能够变得更加顺利。

图片1.png图1 软件体系架构图

从图1的软件体系架构图可以看出,软件体系架构中的不同结构都可以发挥不同的作用。

3.2测试的过程

全面分析系统内部软件所存在的工作模式。多数存在于核心业务层内部的软件都会处于一个等待的状态。但是,如果已经遇到了人机交互的界面,或者在较短的时间就已经被强行打断,软件界面就可以在第一时间发出请求中断处理的要求。但是,这样一个一般的处理程序会因为非法数据的存在而使得内部出现异常。

先可以有效地修改界面内部的请求,再直接处理合适的程序,最后再加入一些已经越界的非法代码。必要时更可以通过设置合适的时间点或者合适的代码来合并非法代码执行的过程。在完成上述操作之后就可以全面观察软件内部是否会存在诸多异常的现象和容错的能力[3]。这种方法的优点就是能够充分地模拟软件在实际运行过程中会出现的错误。但是,在真正测试的过程中需要融入大量合适的程序代码源。整体测试的工作量非常大,并不能够有效地被运用于COTS软件产品内部。

3.3测试结果分析

在观察软件是否存在异常运行的情况之后,就可以向软件内部加入不一样的保护措施,为的是更好地验证该软件是否有一定的鲁棒性。如果确实在使用了一定的异常现象。这样就需要在一开始存在异常信号的时候就来用软件捕捉到不同类型的信号,并在强制性的跳转出此次人机界面响应处理程序之后来记录发生的实际情况,这样才能够直接完善依据。异常信号的处理机制虽然让系统丢弃了某一帧数据,但是却没有办法让系统更加顺利地运行。但是,该系统内部缺乏合适的软件设计内容,需要进一步通过修改和完善代码来增强系统的鲁棒性。

4.应用范围

正因为软件错误注入措施内部有着较高的灵活性。测试软件的容错性、健壮性、可靠性和其他方面都有很多的优势。因此可以被运用于如下几个领域:

4.1容错性测试

多数容错测试都是为了能够更好地验证是否采用了冗余的算法来直接验证软件[4]。所以在软件实际运行的过程中会产生诸多错误,专业人员依然可以采用一些不久措施来让软件正常发挥作用。

4.2鲁棒性测试

这样一种测试的方式主要是为了验证商业软件而存在的,它本身共同决定了软件的可靠性和健壮性。因此,如果能够直接修改外部环境和封装软件的方式,自然就能够借助恶劣的外部环境和软件接口来输入大量的数据,最终也就能够同时观测到软件运行和外部输出的状况。

4.3测试覆盖性

正因为人力和物力等外部条件的限制,多数的黑盒测试和白盒测试都很难在第一时间覆盖所有的临界和边界。通常,只要借助程序来模拟软件错误输入的过程,自然就能够提升软件测试的覆盖度,并有效地减少测试的时间。

4.4安全性测试

多数安全测试和鲁棒测试之间都有着一定的关系。但是多数安全性测试都非常重视分析对外部数据攻击能力和抵御能力,通常也会存在于B/S框架结构内部。只有有效地分析软件系统内部本身的安全漏洞才能够有效地模拟不同类型的攻击,并通过观察Web应用程序来评价软件本身的安全性[5]

4.5其他测试

软件错误注入测试可以被运用于错误分析和集成测试等诸多领域。当然,因为篇幅的限制,就不在这里一一进行分析了。

5.结束语

软件错误注入技术已经变成了一种新型的测试技术,这样一类技术可以为开发高质量的软件提供有效的保证。但是,诸多类型的软件错误注入测试技术已经在很多方面取得了较大的进步,甚至也衍生出了新的系统。但是,很多类型的软件错误注入测试的系统都是让诸多科研单位根据实际情况来开发的,实际运行的过程中也缺少合适的平台和标准。但是,随着软件错误注入测试技术被越来越多的人所重视,该技术未来的发展前途也会变得更加光明。

参考文献:

[1] 单锦辉,姜瑛,孙萍.软件测试研究进展[J].北京大学学报(自然科学版)2016(5):39-43

[2] 杨玲萍,蔡东华,王建强.软件测试有效性度量指标体系研究[J].指挥信息系统与技术,2010,1(6):

[3] 陈良臣,张朔.综合网管系统软件测试模 型 的 研 究 与 实现[J].计算机与数字工程,2014,42(4):632-633

[4] 鲁军,罗扬,李新洲.一种基于EAI模型的错误注入测试方法[J].工业控制计算机,2011,24(4):98-99

[5] 单国栋,连一峰.环境错误注入测试机制[J].计算机工程,2016(5):39-45

》在线投稿系统

*文章题目:
*作者姓名:
*电子邮箱:
*通讯地址:
*联系方式:

  备      注:

*上传稿件:

支持上传.doc,.docx,.pdf,.txt,.wps文件

投稿须知:

1、审稿结果将于1~7个工作日以邮件告知,请注意查收(包含录用通知书、审稿意见、知网CNKI查重报告)。

2、提交投稿后,若7个工作日之内未接到录用通知,则说明该文章未被录用,请另投他刊。

3、凡投寄本刊稿件,如在内容上有侵权行为或不妥之处,均应文责自负。本刊有权对来稿进行文字编辑、加工和修改,如不同意,请附说明,以便妥善处理。

4、多作者文稿署名时须征得其他作者同意,排好先后次序,通知用稿后不再改动。

5、凡投往本刊稿件一经录用发表,其版权归本刊所有。

6、本刊已全文录入中国知网、万方、维普等数据库,如作者不同意被收录,请提前申明,未申明者,本刊一律视为同意被收录。

7、请勿一稿多投。