微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 浅析嵌入式系统软件的可靠性测试难点

浅析嵌入式系统软件的可靠性测试难点

时间:10-02 整理:3721RD 点击:

目前,嵌入式软件的可靠性评价主要依赖测试,因为嵌入式软件的开发环境和软件在嵌入式系统中的运行环境是不同的,因此嵌入式软件测试的最大特点在于一个嵌入式软件的测试可以分为基于宿主机和基于目标机的不同环境进行测试,这往往也是嵌入式软件测试与一般软件测试最大的不同之处。
一、基于宿主机和基于目标机的环境测试
嵌入式软件测试中基于宿主机环境的测试具有速度快、花费少等特点,但由于是在模拟环境中进行的,因此不能确定软件在特定硬件环境中的问题。而需要消耗更多的时间和成本是基于目标机环境测试的缺点,并且一般来说嵌入式系统的软件和硬件在开发的时候有着时间同步性,目标机的环境在整个开发的过程中是有限的,甚至还存在由于环境受限而造成的软件不可用等情况,因此对于基于目标机环境的嵌入式软件测试,在很多情况下是远远不能满足其测试需求的。
与此同时,由于在嵌入式软件的开发过程中,开发环境和微控制器种类使用的多而杂,因此被使用到的各种微型控制器对实时性、可靠性有着更高的要求。这些特性给测试带来了极大的困难,主要体现在以下几点:
1、测试策略的选择,如何在宿主机和目标机环境的测试之间做出取舍;
2、软件高度依赖硬件,不容易区分软硬件错误;
3、交叉测试平台的测试用例、测试结果上传困难;
4、性能测试、确定性能瓶颈存在困难;
5、实施统一的自动化测试比较困难。
二、嵌入式软件的测试环境
因此,一般采用交叉开发环境来搭建嵌入式软件的测试环境。如单元测试、集成测试等可以在PC机上完成的测试,一般都在PC机上进行测试,从而可以避免硬件环境的影响,提高测试效率。并且在后期的集成测试中,需要在具体的嵌入式软件硬件环境中,搭建交叉测试环境来完成嵌入式软件的测试。交叉测试环境的搭建需要注意以下几个方面的内容:
1、主机与目标机之间的通信问题
可以通过以太网或者串口进行主机与目标机之间的物理连接,主机与目标机之间的数据格式可以预先进行定义。
2、主机对目标机的测试控制
主要包括主机如何向目标机发送测试用例,如何跟踪目标机的测试,查看是否正常进行。
3、目标机测试结果的反馈
一般运行嵌入式系统的目标机没有视频显示等便利的测试结果输出端口,所以目标机上的异常、错误信息和正常响应信息等测试结果都需要返回到主机上进行显示和输出。在嵌入式软件测试环境的搭建过程中,需要测试嵌入式系统与已建设备是否协调,硬件设备电气特征是否正常,以及主机与目标机之间的物理信道是否通畅等,从而保证测试结果不受到嵌入式软件以外其它因素的影响。
三、嵌入式软件可靠性测试方法
由于嵌入式系统的独特性,导致其中运行的嵌入式软件测试需要专用的测试工具,当今应用于嵌入式软件测试的主流测试方法,按照其对嵌入式软件测试技术和方法上的不同,主要可以分为嵌入式软件静态分析法、嵌入式软件动态测试法和嵌入式软件综合测试法三类。
1、嵌入式软件静态分析法
嵌入式软件静态分析法主要是能够在软件开发的早期就发现软件中的缺陷,这对于对软件的可靠性和安全性有着较高要求的嵌入式软件十分重要。使用静态分析发对嵌入式软件进行测试时,具体的功能主要体现在三个方面:
1)代码质量分析:采用静态的方法对软件质量进行分析与评估。
2)代码规范性检测:这种方法目前流行于很多知名企业,制定或执行一定的编码规范,在软件开发过程中,可以避免错误陷阱和代码误解。
3)代码缺陷分析:对被测代码进行静态扫描,查出可能存在的运行出现时错误的代码段,这种分析可以检测出动态测试状态下难以捕捉到的错误。
2、嵌入式软件动态测试法
由于嵌入式系统的复杂性,其嵌入式软件一般都有特殊性,因此对嵌入式软件进行动态测试较为困难,主要介绍以下几种嵌入式软件动态测试方法:
1)嵌入式软件“白盒”测试:嵌入式软件白盒测试又称为结构测试,是指在了解被测装置内部结构和软件实现细节的基础上进行的软件测试,根据测试需要可以打开被测装置,重点关注软件内部的实现细节。
2)嵌入式软件“黑盒”测试:嵌入式软件黑盒测试又被称为功能测试,是指再不打开被测装置、不考虑其内部逻辑结构的情况下,通过功能测试项目来检测每个功能是否符合测试要求。
3)嵌入式软件“灰盒”测试:嵌入式软件灰盒测试是介于白盒测试与黑盒测试之间的测试方法,该测试方法是建立在可以打开被测装置内部结构但不关注软件实现细节的基础上进行的关键信息点测试,这种测试方法只是通过一些表征性的现象、事件、标志来判读内部的运行状态,而不像白盒测试中那么详细。
3、嵌入式软件综合测试法
在嵌入式软件可靠性测试工程中,由于嵌入式系统的复杂性,嵌入式软件发生的错误通常呈现多样化的特点,导致单一的静态分析或者动态测试都不能够完全满足测试工程的实际需要,因此很多嵌入式软件的可靠性评价都会采用静态分析与动态测试相结合的综合性测试法。
交流可以加黄工QQ2685896890

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top