浅谈嵌入式安全平台的软件自动化测试方法应用
2019-08-13黎剑爱许乔娜万泽超
黎剑爱 许乔娜 万泽超
摘 要:在当今数字信息技术和网络技术快速发展的时代,嵌入式系统已广泛渗透到科学研究,工程设计,工业过程监控,交通管理以及人们日常生活的方方面面。基于核心网络的运营商级设备也是一种嵌入式系统,并且对这种系统进行测试非常具有挑战性。嵌入式软件在航空电子系统中变得越来越重要,代码尺寸也逐渐扩大。完美的软件测试已成为确保航空电子软件质量的重要手段。自动化技术的引入可以缩短测试时间并确保测试质量。
关键词:嵌入式安全平台;软件自动化测试;方法应用
一、嵌入式安全平台及软件自动化测试介绍
嵌入式安全平台是基于应用程序并基于计算机技术的专用计算机系统。软件和硬件可以定制,以满足应用系统对功能,可靠性,成本,体积和功耗的严格要求。嵌入式软件的开发速度一直高于软件产业的发展速度和全球的发展速度。它在国内工业和世界上变得越来越重要,已超过三分之一。嵌入式安全平台最典型的特征是它实际上与人们的日常生活息息相关。任何普通人都可能拥有使用嵌入式技术的各种电子产品,就像之前使用MP3,PDA一样小。微型数字设备足以增加信息,智能家电等。更具体地说,嵌入式安全平台是一种有效的计算机保护系统,可以避免恶意攻击。在您的系统中添加篡改检测以保护敏感数据和密钥,当然也可以保护您的IP和R&D投资免于在未经授权的情况下被克隆或使用。嵌入式安全平台的安全管理器与微控制器协同工作以保护您的信息,并且身份验证设备具有强大的加密验证功能。自动化测试可以更好地利用测试资源,测试速度快,效率高,可以缩短软件测试周期,提高测试效率,从而缩短测試时间,弥补大型项目的手动测试的效益不足。在许多嵌入式测试项目中,动态测试通常是手动完成的。事实上,重复测试工作的很大一部分可以自动实现。自动化技术已集成到嵌入式软件密钥测试过程中。它对嵌入式软件的质量,成本和周期产生重大影响。今天的大多数自动化测试工具都是软件功能测试工具(也称为录制回放工具),例如Rational的Robot,Mercury的WinRunner,这些工具价格昂贵,可自动捕获,检测和重放用户交互。减少测试人员的重复工作。但是,配方能力薄弱,不能满足设备嵌入式软件产品测试环境的要求。
二、嵌入式平台自动化测试方法的应用
2.1 测试总线及硬件接口
在嵌入式软件自动化测试系统中,测试总线是非常重要的组成部分,担负着至关重要的作用。测试总线的主要功能是对测试数据进行传送,同时还能够传送控制指令,是嵌入式软件自动化测试系统中的中枢神经。随着计算机技术的不断发展以及对各个领域的深入渗透,自动化测试领域的总线技术也取得了极大的进步。其主要发展历程经历了通用接口总线、VXI、PXI 以及基于 LAN 接口面向仪器的扩展等几个阶段。在嵌入式软件自动化测试系统中,包括多种硬件平台,用于连接各硬件平台的硬件接口具有重要的作用。目前,测试领域一直在致力于建立一种标准化接口,使硬件接口实现规范化和标准化发展。美国国防部对自动测试系统已制定了相关标准,在该标准中,对硬件接口标准也做出了相应的规定和规范。
2.2 嵌入式系统及自动化测试的实现
嵌入式系统通常使用C语言实现,并且多个任务一起完成不同的功能,通常作为事件驱动程序。嵌入式系统的重点是所有任务状态是否正确,以及是否对事件有准确而快速的响应,这也是测试的重点。对于其他方面,例如人机界面可以通过其他测试方法完成,但自动化测试往往不是很有效。每项任务都有一个唯一的条目。如果您提供所有可能的输入,则可以通过此条目覆盖所有代码。因此,应根据各种输入下的所有任务的状态检查状态转换是否合理。关键数据结构是否可以保持正确以及是否可以正确地确保事件的处理。基于此,可以发现嵌入式系统的测试成为任务进入功能的测试。此策略适用于与单元测试类似的方法,但仍存在根本差异。单元测试需要将功能接口中的所有功能实现为存根。关键目的是在函数内部执行逻辑测试,本文给出的自动测试仅用于任务的输入功能,只需要那些和设备。主要包括网络设备,显示设备,存储设备和相关接口可以实现一堆。战略实施主要包括:建立工程,配置工程,实施测试用例,构建和运行。它通过一种相当简单的脚本语言实现测试用例,淡化测试用例的开发,并将测试用例测试代码和堆栈编译在一起生成可执行文件,并直接运行执行文件,并进行相应的测试结果生成。因此,该解决方案不需要额外的硬件,只需很少的投资即可开发测试用例,并且编译和运行所需的时间非常短。可以快速检测代码的逻辑,这使得自动化测试对于嵌入式系统来说具有很好的问题处理。
2.3使用VectorCAST / C ++自动化嵌入式C / C ++单元和集成测试
VectorCAST / C ++解析源代码并使用代码生成器自动构建测试代码(pig函数和驱动程序),以生成完整和可执行的测试套件。构建测试套件时,可以使用VectorCAST / C ++构建和执行测试用例,显示代码覆盖率并报告静态检查。测试数据和测试套件是独立的,易于自动化回归测试,如下图:
2.4嵌入式软件自动化黑盒测试技术
目前,自动化黑盒测试技术主要包括基于记录和回放的自动测试技术以及数据驱动的自动测试技术。1)基于记录和回放的自动测试技术基于记录和回放的自动测试技术的步骤是:记录脚本,脚本编辑(添加同步点和等待时间;添加检查点),回放脚本(获得相应的结果)。代表工具是WinRunner。2)数据驱动的自动测试技术数据驱动的自动测试技术从数据文件中读取输入测试数据,然后将其传递到测试脚本,测试脚本由测试程序控制脚本运行。测试脚本是一种“驱动程序”,一种自动获取数据,输入刺激并获得测试结果和记录的机制。在此过程中,将数据文件读取,测试状态和测试信息写入测试脚本,测试数据包含在数据文件中。通常,当组织测试数据文件时,根据数据模型对它们进行分类,即建立数据模型以描述同一组测试用例。这些测试用例之间具有一定的关系,并且测试数据与被测对象的功能和结构之间的关系有关。
三、结束语
自动化测试技术仍处于开发过程中,应用范围也有限。它仅适用于某些软件功能的测试,有必要构建自动测试环境并为测试软件准备测试脚本。在当前的嵌入式软件测试领域,测试工程师的手动测试仍处于主流,嵌入式平台的自动化测试仍然只是手动测试的辅助手段,并不能完全取代手动测试。
参考文献:
[1] 面向嵌入式系统自动化测试平台设计与实现[M]《新技术新产品》 2018.6
[2] 浅谈Windows嵌入式平台的测绘软件开发应用[M]《计算机技术应用》 2018.1.1
[3] 对嵌入式系统自动化测试的方法研究[M]《科学与财富》2019.02
(作者单位:珠海格力电器股份有限公司)