嵌入式计算机软件测试关键技术研究
2020-03-16夏敏
夏敏
摘要:計算机科学与技术的发展,推动了软件测试技术的革新,嵌入式计算机软件测试技术,以其可靠性、稳定性、兼容性而得到了广泛的应用。在将嵌入式计算机软件应用到软件测试时,应对嵌入式计算机软件测试的关键技术进行有效把控,以保证计算机软件测试的顺利完成,从而提高嵌入式计算机软件测试的质量。该文主要从分析嵌入式计算机软件测试的特点、宿主机与目标机的关键技术进行了研究。
关键词:嵌入式;计算机软件测试;关键技术;宿主机;目标机
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)02-0068-02
嵌入式计算机软件测试技术建立在嵌入式计算机系统基础之上,嵌入式计算机系统的兼容性较好,适用于Windows、Linux、OS-9等。嵌入式计算机系统由操作系统、数据库、应用软件、移动通信模块等组成,在应用到计算机测试领域后,能够以嵌入的方式将宿主机与目标机联结起来,在宿主机的主导下,对所联结的目标机开展软件测试工作,从而有效集中了计算机软件测试时的资源,更有助于加快计算机软件测试的成功。在此过程中,嵌入式计算机软件测试关键技术发挥着至关重要的作用。
1 嵌入式计算机软件测试的特征
就嵌入式计算机软件测试的应用范围来看,嵌入式计算机软件测试被广泛地应用于工业、武控、空导弹、自动化等领域。随着应用领域的扩大,嵌入式计算机软件测试的功能日渐增多,在开展计算机软件测试工作时,需要确定好宿主机、目标机,为嵌入式计算机软件测试的开展做好准备工作。根据嵌入式计算机软件测试的特点,宿主机无须过于强大的硬件,只需中级配置的计算机硬件即可,但对宿主机的硬盘、网络性能有较高的要求,以便于通过宿主机向目标机传输数据。宿主机主要承载软件测试的操作系统,运行软件开发、测试软件,营造计算机软件测试环境。对于目标机的要求则较高,目标机需要具备较为强大的承载功能,能够承接宿主机所发送的数据,因而目标机对硬件的要求较高,才能够将所接受的数据与嵌入的计算机测试软件运行起来。得益于目标机的强大硬件性能,目标机具备开展负责计算机软件测试的能力,能够运行多个嵌入式计算机测试软件,模拟多种应用环境,对计算机软件进行更为全面的测试,以发现计算机软件中存在的各种问题。
2 宿主机的软件测试关键技术
应用于宿主机的计算机软件测试关键技术,可以分为静态测试技术和动态测试技术。
2.1 静态测试技术
应用于嵌入式计算机软件测试的静态测试技术,是基于传统人工审查计算机软件错误代码的弊端,依据严格的软件编译标准,按照严密的逻辑关系,所设计的自动审查计算机软件代码中错误信息的软件。静态软件技术适用于复杂功能的嵌入式计算机软件,能够有效发现嵌入式计算机软件中存在的问题,并定位错误代码所在位置,从而使嵌入式计算机软件测试工作更为高效。静态测试技术具有如下特点:1)规范的审查体系。静态测试技术发展到今天,其代码审查能力大幅度增强,审查过程更加严密和规范。得益于宿主机强大的扫描功能,宿主机能够运用静态测试技术,对计算机软件代码进行验证与审查,其审查的主要内容为计算机软件代码的词法、语法、逻辑关系、控制流等方面,涵盖了计算机软件代码的各个方面,能够有效发现代码中存在的词法和语法错误、数学逻辑关系误差大等问题,大大提升了计算机软件测试时的严密性和规范性;2)无须执行计算机软件测试软件。静态测试技术的一大优势在于无须运行计算机测试软件,便能够发现受测试的计算机软件的诸多漏洞。静态测试技术能够对受测试的计算机软件进行全面的扫描,以发现受测计算机软件中所存在的问题;3)软件测试速度快。静态测试技术与传统的人工测试、动态测试技术相比,具有软件测试速度快的优点。得益于静态测试技术的不断发展,静态测试技术的逻辑结构不断优化,静态扫描功能得到了大幅度的增强,因而能够实现每秒钟扫描上万行代码的强大运行能力,可以快速地扫描完受测试的计算机软件,因而静态测试技术更适用于功能复杂、代码行数多的计算机软件;4)误报率高。因静态测试技术是以扫描的方式,完成对计算机软件的测试,受静态测试技术自身在语法词义、算法等方面的影响,静态测试技术易发生误报率过多的问题。
静态测试技术在运行时,其所使用的关键技术如下:1)对代码词法的分析。静态分析技术能够对计算机软件的源代码逐行、逐字符的进行扫描,在扫描时会按照代码词法的基本逻辑进行对比,并通过lex定位错误代码的位置;2)对代码语法的分析。对计算机代码语法的分析,主要是判定其代码是否符合计算机逻辑结构的要求,上下行代码之间的逻辑关系是否正确。并通过Yacc工具,将存在语法错误的代码整理出来;3)对代码控制流的分析。静态测试技术能够对嵌入到计算机软件中的宿主机、目标机进行多方面的扫描,从而确定计算机软件代码的节点,并围绕计算机软件代码的节点展开控制流路径的检测,以发现计算机软件控制流图中存在的代码错误;4)对代码污点分析。污点分析旨在发现计算机软件中所存在的薄弱点,确定哪些代码易成为计算机软件的漏洞,受到黑客的攻击,从而采取加强措施。
2.2 动态测试技术
动态测试技术不同于静态测试技术,静态测试技术无须运行嵌入式计算机软件,便可以完成对嵌入式计算机软件代码的检测,而动态测试技术则需要运行嵌入式计算机软件,在各个严苛的测试环境中,通过嵌入式计算机软件的实际运行,然后与嵌入式计算机软件开发目标做对比,发现与预期开发目标不符或是有所差异的内容,确定受测嵌入式计算机软件的性能与运行效果,从而及时有效的发现其中存在的问题。动态测试技术在运行软件时,主要运用了如下技术:1)单元测试技术。单元测试属于白盒测试,即在开展测试时,主要对受测的计算机软件结构进行检测,以发现受测计算机软件程序逻辑、程序逻辑路径、各基本单元等,是否存在着逻辑错误、基本单元结构不合理等问题,以发现受测计算机软件在运行逻辑个路径中存在的问题;2)集成测试。集成测试是在单元测试完成以后所开展的测试,集成测试的目的在于发现受测计算机软件内部各部分之间联系是否正确,是否在连接逻辑路径、连接端口等方面存在问题,导致受测计算机软件内部无法有效调用,计算机软件频繁弹出BUG,从而发现受测计算机软件在集成过程中所出现的问题;3)系统测试。系统测试是对受测计算机软件进行全面的测试,因而系统测试属于黑盒测试。系统测试主要测试受测计算机软件的系统结构、逻辑路径、软件输出和输入、软件功能等多个方面。系统测试的有效开展,需要测试人员具备较强的业务水平和较为丰富的测试经验,才能够有效发现受测计算机软件中存在的问题;4)验收测试。当完成了对受测计算机软件的系统测试后,应开展验收测试,以完成计算机软件测试的最后一个环节。验收测试主要是通过实际应用来完成,对受测计算机软件各功能的实际应用,测试其各功能是否能够正常使用。动态测试技术对受测的嵌入式计算机软件的测试更为全面和实际,但动态测试技术也存在着依赖高素质软件测试人员、测试过程不细化的问题,需要与动态测试技术相结合,才能够以最佳的状态发出去软件测试的能力。
2.3 仿真机测试技术
在宿主机上进行仿真测试,能够保证复杂数据环境下,对计算机软件测试的准确性。仿真测试技术能够对复杂计算机软件代码进行模拟测试,将不便于直接测试的软件代码,放置到严苛的软件测试环境中,去进行模拟测试,以得出更为真实的测试数据。
3 目标机软件测试关键技术
3.1 故障注入技术
在嵌入式计算机软件测试中,由宿主機将软件测试数据,通过移动通信技术,发送到目标机之中。为了能够进行更为准确的测试,可以将一些故障输入到目标机中,针对受测计算机软件的某一个模块进行充分的测试。如可以将受测计算机软件的某一功能,如图片识别、信息处理等,就其常发故障进行分析,然后将故障信息输入到目标机之中,观察故障信息在目标机中的运行状况,并进行相关的记录,判定受测计算机软件是否易发生类似故障。
3.2 内存分析技术
嵌入式计算机软件测试在运行时,为了能够快速处理大量的信息,对计算机硬件有着较高的要求,因而在运行嵌入式计算机软件的时候,应考虑到这一问题,对受测计算机软件进行内存分析,测试受测计算机软件对内存的需求,是否能够合理的分配和调用内存,调用内存时是否会出现内存不足,受测计算机软件运行卡顿的问题。通过运行内存分析技术,可以发现受测计算机软件的优化程度和流畅性。
3.3 性能分析技术
对目标机进行性能分析技术,主要是通过宿主机向目标机发送数据,然后在目标机上,实际运行受测试的嵌入式计算机软件。通过实际运行,检验嵌入式计算机在运行时的流畅程度,极限压力下嵌入式计算机软件运行的上限,单位时间内受测试计算机软件处理信息的能力,常用计算机软件功能的性能等,从而对受测试计算机软件进行性能方面的检验,以有效发现受测试计算机软件中存在的性能短板,并进行及时的调整与修复。
4 结束语
在嵌入式计算机软件的测试工作上,将静态测试技术和动态测试技术结合起来,并在严苛的测试环境中进行,在仿真测试技术的辅助下,能够对受测试软件进行更为全面的检测,发现受测试软件中存在的问题代码,提升嵌入式计算机软件的开发质量。
参考文献:
[1] 陆立华.嵌入式软件应用于计算机软件开发过程中的价值[J].电脑编程技巧与维护,2018(7):57-59.
[2] 李刚,王平.一种基于某嵌入式软件系统测试的方法[J].兵工自动化,2017,36(12):48-51.
[3] 王磊.嵌入式软件进行功能测试的相关技术研究[J].自动化与仪器仪表,2018(4):71-73.
[4] 刘茹.基于嵌入式计算机的软件测试关键性技术分析[J].信息与电脑:理论版,2019(14):76-77.
【通联编辑:张薇】