嵌入式软件技术

2024-08-03

嵌入式软件技术(精选12篇)

嵌入式软件技术 篇1

0 引言

随着信息技术的不断发展, 与硬件发展日益稳定相比, 软件故障却日益突出, 因此软件测试的重要性已经越来越被人们所重视。嵌入式软件有着开发工具昂贵、内存较小、实时性要求较高、CPU种类繁多、I/O通道较少等特点, 为此, 嵌入式软件的测试也与一般PC应用软件的测试有很大的差异。

1 嵌入式软件测试概述

1.1 嵌入式软件特点分析

嵌入式软件测试的主要目的在于验证软件的可靠性, 与通常的PC应用软件相比, 嵌入式软件的测试有如下几个特点: (1) 嵌入式软件是针对在特定硬件环境下开发的, 其运行和测试也需要依据特定的硬件环境; (2) 实施性要求较高, 除了要求有正确的输出结果以外, 还需要考虑是否能够在规定的时间内得到运行结果。

1.2 嵌入式软件测试环境分析

一般采用交叉开发环境来搭建嵌入式软件的测试环境。例如单元测试、集成测试等可以在PC机上完成的测试, 通常都在PC机上进行测试, 从而可以避免硬件环境的影响, 提高测试效率。在后期的集成测试中, 需要在具体的嵌入式软件硬件环境中, 搭建交叉测试环境来完成嵌入式软件的测试。交叉测试环境的搭建需要注意以下几个方面的内容:

(1) 主机与目标机之间的通信问题。可以通过以太网或者串口进行主机与目标机之间的物理连接, 主机与目标机之间的数据格式可以预先进行定义。

(2) 主机对目标机的测试控制。主要包括主机如何向目标机发送测试用例, 如何跟踪目标机的测试, 查看是否正常进行。

(3) 目标机测试结果的反馈。通常运行嵌入式系统的目标机没有视频显示等便利的测试结果输出端口, 因此目标机上的异常、错误信息和正常响应信息等测试结果都需要返回到主机上进行显示和输出。

在嵌入式软件测试环境的搭建过程中, 需要测试嵌入式系统与已建设备是否协调, 硬件设备电气特征是否正常, 以及主机与目标机之间的物理信道是否通畅等, 从而保证测试结果不受到嵌入式软件以外其它因素的影响。

1.3 嵌入式软件测试策略

嵌入式软件不同的测试阶段有不同的测试策略。

(1) 单元测试。为了提高嵌入式软件的测试效率, 一般会将较大的嵌入式软件系统划分成若干相对较小的任务单元进行测试。由于宿主机上有更加丰富的资源, 同时也为了方便对嵌入式软件的调试, 一般在宿主机上进行单元测试。单元测试一般采用白盒测试策略, 尽可能测试到单元模块中的每一个程序语句, 每一个分值, 从而提高代码测试的覆盖率。

(2) 集成测试。为了找出系统逻辑结构错误和各个功能模块之间的数据传递错误, 需要采用黑盒和白盒相结合的方式进行嵌入式软件集成测试。需要通过最大程度地模拟嵌入式软件实际运行环境。集成测试分成两个部分, 首先可以在宿主机上测试软件是否存在逻辑结构错误, 以及测试各功能模块之间是否有传递错误;然后, 通过构建真实的嵌入式软件运行环境, 来测试软件是否存在内存定位和分配上的错误。

(3) 确认测试。确认测试必须是嵌入式软件运行在真实的硬件目标环境中, 主要测试嵌入式系统是否由于测试环境的移植而受到影响。由于受到硬件目标环境资源不足、测试结果输出方式等限制, 嵌入式软件的确认测试一般采用黑盒测试方案。

2 嵌入式软件测试技术

2.1 静态测试技术

静态测试可以充分发挥人的逻辑思维能力, 包括代码检查、静态结构分析以及代码质量度量等方式。

(1) 代码检查。代码检查主要包括对嵌入式软件开发的代码审查、代码走读等工作。代码检查的内容主要包括分析代码是否遵循嵌入式软件设计、开发标准, 数据是否正确, 接口是否正确等内容。

代码检查能够快速地找到嵌入式软件的缺陷, 可以发现70%以上的编码和逻辑设计缺陷。因此, 在实际应用中, 代码检查可能比动态测试更加有效。

(2) 静态分析。静态分析是借助测试工具对软件代码进行分析的方法, 只可以分析是否存在内存泄露等特定的缺陷, 受其他模块的影响较小。静态分析主要包括对数据流的分析、对控制流的分析以及对软件度量的分析等。

嵌入式软件的静态测试, 主要是通过开发、测试人员对软件源代码进行审核分析, 不需要进行测试用例的设计, 因此嵌入式软件不需要特定的测试环境。

2.2 动态测试技术

根据是否需要了解软件内部结构的区别, 嵌入式软件的动态测试包括黑盒测试和白盒测试两种。

(1) 白盒测试技术。在对嵌入式软件进行白盒测试时, 需要对软件进行如下几个方面的检查:至少对系统中所有独立路径进行一次测试;至少在循环限内和循环边界对循环测试一次;对所有的逻辑判定都需要测试一次;对内部数据结构的有效性进行测试。

与通用的PC应用软件相比, 嵌入式软件的白盒测试需要更高的代码覆盖率。而且嵌入式软件的白盒测试不需要在目标硬件环境中运行。

(2) 黑盒测试技术。黑盒测试需要知道用户需要哪些功能, 可能会遇到什么样的问题, 在嵌入式软件自动化测试时, 采用黑盒测试技术较为方便。但是, 黑盒测试的代码覆盖率较低, 一般仅为总代码量的30%左右。

2.3 覆盖测试技术

覆盖测试技术根据嵌入式软件的内部结构来进行测试用例的设计, 是白盒测试技术的一种。覆盖测试的基本准则是:所设计的测试用例要能够尽可能覆盖嵌入式系统的内部结构, 从而发现嵌入式系统的问题和错误。覆盖测试的内容包括提高测试覆盖率、未被测试用例激活代码的测试、代码冗余检测等。因此, 覆盖测试也是一个提高软件质量的手段, 覆盖测试一般在嵌入式系统的单元测试中应用。

2.4 程序插桩技术

程序插桩技术是覆盖测试的一个重要实现手段, 其含义就是通过对程序测试状态的跟踪, 来发现嵌入式软件中的缺陷。

程序插桩的基本思想包括:

(1) 探针插入。可以在嵌入式程序中插入计数器、打印语句或者赋值语句来采集程序运行状态。

(2) 探针编译。根据设计好的测试用例, 重新编译嵌入式软件, 通过执行探针来获取嵌入式软件执行的动态信息。

(3) 特征数据处理。对特征数据进行分析和处理, 从而获得嵌入式软件的数据流或者控制流信息, 并且最终得到嵌入式软件的判定覆盖、语句覆盖等信息, 并且形成最终报表。

由于嵌入式软件运行的真实运行环境往往会受到输出方式的限制, 为此嵌入式软件的程序插桩测试通常都采用宿主机和目标机结合的方式, 其测试流程如图1所示。

在插桩完成之后, 需要对嵌入式软件进行重新编译, 并且将编译好的程序下载到目标机中, 同时通过宿主机与目标机的通信, 来对探针的运行以及探针运行结果进行分析。

3 嵌入式软件测试内容

嵌入式软件测试的内容主要为:软件代码测试、编程规范标准符合性测试、代码编码规范符合性测试、开发维护文档规范符合性测试、用户文档测试。

其中软件测试服务范围包括:系统级测试、应用测试、中间件测试、BSP及驱动程序测试、嵌入式硬件设计测试。

其中, 按照嵌入式软件有无操作系统将嵌入式系统分为两大类:无操作系统的嵌入式软件、有操作系统的嵌入式软件。

3.1 无操作系统的嵌入式软件

无操作系统的嵌入式软件主要包括C语言代码、汇编语言代码、Apa代码等。

C语言模式软件测试:硬件设备及其他宏定义 (编译阶段处理) 、API函数测试、模块初始化 (包括系统初始化) 、中间功能件测试、功能模块测试、中断处理测试、任务调度测试、区域功能测试、总体功能测试。

汇编语言模式软件测试:硬件设备及其他宏定义 (编译阶段处理) 、模块初始化 (包括系统初始化) 、中间功能件测试、功能模块测试、中断处理测试、区域功能测试、总体功能测试。

3.2 基于操作系统的嵌入式软件

基于操作系统的嵌入式软件主要包括应用软件测试、系统软件测试、整体性能测试。

应用软件测试:模块初始化 (包括系统初始化) 、中间功能件测试、功能模块测试、区域功能测试、总体功能测试。

系统软件测试:硬件设备及其他宏定义 (编译阶段处理) 、API函数测试、模块初始化 (包括系统初始化) 、中间功能件测试、功能模块测试、中断处理测试、区域功能测试、总体功能测试、标准符合性测试。

其中, 操作系统的标准符合性测试依据的标准主要包括:

整体性能测试:基于操作系统之上的嵌入式系统整体软件测试, 主要采用应用软件测试, 着重分析性能、内存分配、代码覆盖率、软件执行流程, 并采用仿真器、逻辑分析仪等硬件测试工具进行整体性能的测试。

4 嵌入式软件测试工具

用于辅助嵌入式软件测试的工具很多, 下面对几类比较有用的嵌入式软件测试工具加以介绍和分析。

4.1 内存分析工具

在嵌入式系统中, 内存约束通常是有限的。内存分析工具用来处理在动态内存分配中存在的缺陷。当动态内存被错误地分配后, 通常难以再现, 可能导致的失效难以追踪, 使用内存分析工具可以避免这类缺陷进入功能测试阶段。目前有两类内存分析工具———软件工具和硬件工具。基于软件的内存分析工具可能会对代码的性能造成很大影响, 从而严重影响实时操作;基于硬件的内存分析工具价格昂贵, 而且只能在工具所限定的运行环境中使用。

4.2 性能分析工具

在嵌入式系统中, 程序的性能通常是非常重要的。经常会有这样的要求, 在特定时间内处理一个中断, 或生成具有特定定时要求的一帧。开发人员面临的问题是决定应该对哪一部分代码进行优化来改进性能, 常常会花大量的时间去优化那些对性能没有任何影响的代码。性能分析工具会提供有关的数据, 说明执行时间是如何消耗的, 是什么时候消耗的, 以及每个例程所用的时间。根据这些数据, 确定哪些例程消耗部分执行时间, 从而可以决定如何优化软件, 获得更好的时间性能。对于大多数应用来说, 大部分执行时间用在相对少量的代码上, 费时的代码估计占所有软件总量的5%~20%。性能分析工具不仅能指出哪些例程花费时间, 而且与调试工具联合使用可以引导开发人员查看需要优化的特定函数, 性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。

4.3 GUI测试工具

很多嵌入式应用带有某种形式的图形用户界面进行交互, 有些系统性能测试是根据用户输入响应时间进行的。GUI测试工具可以作为脚本工具在开发环境中运行测试用例, 其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。很多嵌入式设备没有GUI, 但常常可以对嵌入式设备进行插装来运行GUI测试脚本, 虽然这种方式可能要求对被测代码进行更改, 但是节省了功能测试和回归测试的时间。

4.4 覆盖分析工具

在进行白盒测试时, 可以使用代码覆盖分析工具追踪哪些代码被执行过。分析过程可以通过插装来完成。插装可以是在测试环境中嵌入硬件, 也可以是在可执行代码中加入软件, 也可以是二者相结合。测试人员对结果数据加以总结, 确定哪些代码被执行过, 哪些代码被巡漏了。覆盖分析工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。对于嵌入式软件来说, 代码覆盖分析工具可能侵入代码的执行, 影响实时代码的运行过程。基于硬件的代码覆盖分析工具的侵入程度要小一些, 但是价格一般比较昂贵, 而且限制被测代码的数量。

5 结语

嵌入式软件的测试主要是为了保证嵌入式软件系统的高可用性和高质量。嵌入式系统的特殊性, 使得嵌入式软件的测试在整个软件的开发过程中都占有非常重要的地位。为此, 对嵌入式软件测试的研究势在必行。在具体的嵌入式软件测试过程中, 应该根据嵌入式软件自身特点, 开发具有针对性的测试工具来提高嵌入式软件测试的效率和质量。

参考文献

[1]张君施.嵌入式软件测试[M].北京:电子工业出版社, 2004.

[2]王璞, 张臻鉴.面向实时嵌入式机载软件的测试技术研究[J].航空计算技术, 1997 (4) .

[3]刘利枚, 周鲜成, 石彪.嵌入式软件测试系统的设计与实现[J].国外电子测量技术, 2008, 27 (1) .

嵌入式软件技术 篇2

嵌入式实时软件可以运用在计算机软件的预测指令执行、动态分配、缓存机制等设计中,以此来提升计算机软件系统设计的科学合理性和实时处理功能。当然,嵌入式实时软件之所以能够在计算机软件中充分发挥作用,主要是其核心嵌入式微处理器可以实时支持软件系统的多任务,且在短时间内快速中断,实现多任务操作及计算机存储区保护。嵌入式实时软件应用到计算机软件设计中,包括软件部分和硬件部分,在嵌入式微处理器的作用下,软件与硬件之间可以交互,促使计算机软件系统具有修复功能、检测功能等,从而大大提高计算机软件系统的应用性[2]。

1.2应用原理

嵌入式实时软件在计算机软件中之所以能够有效应用,主要是计算机科学技术和实时处理技术相融合,如此可以形成CORBA模型,加之嵌入式实时软件在计算机软件中可以远程调节等作用的支持,使得计算机软件设计的过程中可以合理地运用CORBA模型,进而科学、合理地规划计算机软件的个各方面,促使计算机软件充分发挥作用。

1.3嵌入式软件的技术特征

基于以上对计算机软件设计中嵌入式实时软件的概述,确定嵌入式实时软件具有以下技术特征。

1.4可靠性

相对于计算机操作系统来说,嵌入式实时软件是一种操作方式,在计算机软件系统中科学、合理地设计嵌入式实时软件,可以提高计算机软件系统的可靠性。因为计算机软件系统中的嵌入式实时软件可以结合计算机软件系统的实际情况,对系统操作任务进行合理分配与调整,并且有效地强化计算机软件系统,如此可以使计算机软件系统在规定的时间内完成各项任务[3]。

1.5系统可靠性

只有安全的工作环境,嵌入式实时软件系统在计算机运行的过程中,才能保证计算机软件系统安全、可靠;反之,将会影响嵌入式实施软件系统的工作效果。所以,为了保证嵌入式实时软件系统在计算机运行中充分发挥作用,一定要设置安全的、良好的外界环境。

1.6时限性

嵌入式技术与当今生活 篇3

关键词: 嵌入式技术;电子技术;科学技术

中图分类号:TP311.52 文献标识码:A 文章编号:1671-864X(2016)02-0000-02

近年来,随着计算机科学技术和互联网技术的高速发展,嵌入式的发展也进入了前所未有的“黄金阶段”。从最初的单内核芯片到现在的多内核芯片,从原来单一的操作系统到现在多种操作系统。

一、嵌入式技术的发展历史

由原来简单的嵌入式系统发展到现在,嵌入式的发展已经有几十年的历史了,早期的计算机由于只能在室内工作,许多需要专门控制的领域,计算机不能移动的去工作,所以产生了专用的微型计算机。微型处理内核的出现,扩大了计算机的使用领域,使得计算机走出了室内,开始在它特有的领域中发挥了巨大的作用。早期的微型处理器结构简单,没太多的编程功能,功能也很局限,不能进行复杂的操作。

由于计算技术的快速发展和大规模集成电路的出现,使得嵌入式微型计算机得到了广泛分运用。各种厂家纷纷生产单片机,尤其是经典的51单片机系列。然而随着微电子技术、EDA技术、大规模的集成电路等的飞快发展,给嵌入式技术的发展提供了更加有力的支持,人们不再满足于只是简单的去控制对象,而是对被控制对象的具体情况各个参数提出了更高的技术要求,8位经典的单片机技术,已经不能满足人们的某些需求,所以人们进一步开发了更高级的嵌入式系统。

二、嵌入式系统的组成与特点

通常,嵌入式系统有几个常用的模块组成,嵌入式处理器(它是嵌入式系统的核心器件)、外围设备(如存储器、接口、人机交互等)、嵌入式操作系统(主要负责管理)、应用软件。

嵌入式处理器是嵌入式系统的核心器件。由于嵌入式系统是嵌入在特定的对象中的。它主要把自己的任务集成在芯片内部。[1] 这样做,使得嵌入式系统更加小型化、高效率、更可靠。

外围设备有静态或动态的存储器还有非易失性存储器,非易失性存储器有可多次擦除、大容量、存储速度快、价格低等优点,所以在实际生活中得到了广泛的应用。

嵌入式应用行业所占的比例图

嵌入式性系统有好多特点。首先,它的专用性很强,都是针对特定的用户群。第二,它把电子技术、通信网络技术、半导体工艺、计算机技术等融合在一起。第三,它具体、安全、高效、可靠、稳定性好、功耗较低、代码小等优点。

三、嵌入式技术的操作系统

嵌入式技术有几个很明显的特点。比如:软硬件一体化、需要操作系统的支持、代码小、多样性、比较可靠。嵌入式系统是以应用为中心,能够完成控制、监视等功能为目标的专业系统。嵌入式与单片机的本质区别是嵌入式引入了操作系统。嵌入式技术是一门硬件和软件结合的技术,国外的嵌入式操作系统已经很成熟了。有许多优秀的操作系统产品,比如:QNX、 VxWorks、 Windows CE、嵌入式Linux等。[2]

2009年市场中各软件开发平台所占的比例

四、嵌入式技术在今后以及在我国的发展

随着电子技术和计算机技术的发展,嵌入式技术也越来越成熟。 嵌入式技术的发展决定了它的应用网络化、功能复杂化、智能化、多样化、硬件集约化和软件实时可以灵活裁剪的特点。伴随着电信网、互联网和GPS等技术的发展进一步推动了嵌入式技术应用在生活中运用和发展,操作系统软件技术的发展成熟,使得嵌入式硬件资源和软件资源的协调达到所用对象最好的标准。嵌入式系统正向多功能分布式的发展,硬件配置分布的小型化使其更多的接触具体的应用现成,部署范围更广,运算更分散,分布式软件系统使这一趋势更为明显并成为可能。[3] 当今时代,低能环保也成为我们生活的一大主题,因此低功耗的嵌入式技术也被人们提上了日程,比如低功耗的家电,低功耗的大型控制领域。所以在许多领域由于低功耗的嵌入式产品使得嵌入式在社会生活中得到了更加广泛分运用。低功耗嵌入式系统 为满足高可靠性要求,低功耗的系统将应运而生。由于在Java虚拟机和嵌入式Java开发嵌入式系统希望有一个方便的、跨平台的工具与语言,Java语言 能够用Java虚拟机实现Java程序独立于各机种的方便平台。经过努力,一个支持嵌入式系统开发的、足够快、足够小、又有足够确定性的嵌入式Java程序包已经出现,Java虚拟机与嵌入式Java将成为开发嵌入式系统的强有力有力工具。

嵌入式技术的多媒体化和网络化。随着多媒体技术飞快的发展,使得文字处理、音频视频、信息的处理水平越来越高,为嵌入式技术的多媒体化创造了有利的条件,使得嵌入式技术的多媒体化将变成现实。它在网络环境中的应用已是不可抗拒的潮流,并在以后的网络接入设备中占主导地位。 嵌入式系统与人工智能、嵌入式系统的智能化、模式识别技术的结合,将开发出各种更具人性化、智能化的嵌入式系统。[4]

我国电子技术起步比较晚,嵌入式在我国的发展历史也相当短暂。因为电子技术是从国外发展而来,毫无疑问我们需要借鉴国外的先进的嵌入式技术经验来开发研究嵌入式技术。同时我国需要自主的发展有自己特色的嵌入式技术。如今我国对于嵌入式系统这一块还是相对薄弱,许多嵌入式技术的开发工作还不能顺利完成。比如我们的自主研发的操作系统稳定、并发性等性能与国外的一些嵌入式操作系统相比,还有许多地方需要改进。我国作为发展中国家,要想能够在国际电子技术中有自己的市场,就要制定出自己的一套完整的嵌入式生产模型,当然外国优秀的的嵌入式技术我们也必须借鉴。低功耗、小型化、实时性高、单低成本、专用性好等成为未来嵌入式发展的新方向。

五、总结

在如今“电子化”的时代,嵌入式系统技术已经渗入到生活的方方面,如何在竞争激烈的嵌入式产业市场占领一席之地,需要付出巨大的努力。空调、冰箱、洗衣机、微波炉等家用电器是我们在嵌入式技术上要继续保持优势的行业,同时也要开发嵌入式技术在航天、医疗卫生、军事等方面的作用,让这门技术更好的服务我们的生活。这需要政府、企业、个人的共同努力。

参考文献:

[1]徐英慧,马忠梅,王磊,王琳.ARM9嵌入式系统设计基于——S3C2410与Linux[M].北京:北京航空航天大学出版社.2010.9

[2]孙纪坤,张小全编著.嵌入式系统开发技术详解[M].北京:人民邮电出版社,2006.8

[3]刘春玉.嵌入式技术与分布式计算应用研究[J].长江大学学报,2009(2)

[4]魏庆福,郑文波.嵌入式系统的技术发展和我们的机遇[J].自动化博览,2002.(4)

探究嵌入式软件测试技术 篇4

1 嵌入式软件测试的总体概述及特点

嵌入式软件在开发的过程中与普通软件存在着一定的差异, 需要有对应的嵌入式的开发环境。嵌入式系统不提供软件的开发环境 (即所谓的宿主机环境) , 而只提供软件执行环境 (即所谓的运行环境) , 这便是嵌入式系统的嵌入性特点。开发平台与运行平台的不一致使得嵌入式软件的测试工作与一般软件的测试工作也存在着不同。嵌入式软件测试的目的是为了保证嵌入式软件产品能够满足用户的需求, 尽量避免由于软件的问题, 产生的巨大的经济损失, 满足软件的需求规格。所以, 嵌入式的软件产品必须要有一套专门的测试技术来保证嵌入式产品的质量, 嵌入式软件的测试是嵌入式产品得以生存和发展的重要基础。

嵌入式软件测试主要有以下几个特点:第一, 嵌入式软件对实时性的要求非常的严格。在进行测试的时候要保证软件系统的实时性和可靠性, 在测试过程中, 要考虑到系统实时响应的问题;第二, 嵌入式系统常出现内存的问题。嵌入式软件的测试需要对软件的内存进行充分的测试, 主要针对的是软件中内存的泄漏、内存碎片等问题来进行;第三, 嵌入式软件的测试与特定的硬件环境是分不开的, 在嵌入式软件的测试中, 对嵌入式软件和硬件的兼容性测试是至关重要的。

2 软件测试工具

嵌入式系统对性能有严格的要求。嵌入式系统测试的最重要的任务是要提高嵌入式软件的可靠性。其中, 内存问题在影响可靠性因素中占的比例最大, 在嵌入式系统中, 对内存的约束是有限的。动态内存一旦被错误的进行分配后, 通常都难以再现, 可能出现的失效也很难再进行跟踪。任何测试都不能实现完全的覆盖, 为了能够在有限的时间里达到最优的测试效果, 就要利用覆盖分析工具对测试中的覆盖情况进行分析, 分析哪些分支、语句是必须要覆盖的, 并要对最终的覆盖情况进行综合的分析, 通过测试工具的评估结果, 分析对测试结果的影响, 以此来提高测试人员的测试质量和工作效率。

提高测试质量和测试效率最好的方式就是利用测试工具, 在选择测试工具的时候, 最先要考虑的是该测试工具提供的功能是否能够满足测试的要求, 其次要看该工具对硬件平台和嵌入式操作系统的支持能力, 除此之外, 还要考虑测试工具的可视化。因为软件测试是枯燥且工作量巨大的一项工作, 所以, 可视化的设计在测试中是非常重要的。

3 测试实例

就如修车需要工具一样, 测试人员应该能够熟练运用各种软件测试工具, 帮助快速准确的找到软件中的错误[1]。不同的工具, 有不同的使用范围, 有不同的功能。在众多的嵌入式软件测试工具中, Nucleus PLUS因自身拥有开放的源代码和良好的性能得到了广泛的应用。该系统包含了多个模块, 如:文件系统、浏览器、内核等。仿真平台的建立是在Window的环境下, 采用的是Visual C++6.0。仿真平台可以将用户给出的调试方法形成嵌入式的目标代码, 将代码转移到仿真平台上进行合理的操作与调试, 仿真平台在此过程中是最佳的嵌入式平台。整个嵌入式程序可以依照程序库编译和设定的配置环境来进行, 此时生成的程序能够在仿真平台上进行正常的运行。仿真平台进行调试操作的基础是VC++IDE环境, 与之进行搭配的测试工具是Rational Test Studio, 把相对应的其它环境变量和编译器进行设置, 这些程序进行完之后, 就可以利用该测试工具对测试的对象进行检测。

4 国内外发展

嵌入式软件测试技术在国际上的发展速度较快。在国外, 软件测试是一项非常重要的工程, 国外利用先进的测试技术, 在软件测试领域占有重要的地位。在国外, 测试也是一项非常独立的职业。现在嵌入式的测试技术正在朝着标准化、智能化的方向发展, 其测试的主要思路是:从设计的过程开始, 要用共同的策略, 使后一阶段的研制能够利用前一阶段的开发成果, 并且在研发的过程中要缩短研发的时间, 使用商业通用的标准来进行。

嵌入式系统在我国属于快速成长的阶段, 现在它已经被广泛的应用在各个领域。嵌入式系统的复杂性和集成度越来越高, 软件部分在整个系统中占的比例也越来越大, 我国在该项技术的研发中付出了不少的人力、物力和财力, 也取得了比较明显的成绩。在嵌入式系统中, 测试工具是十分重要的, 同时, 还要考虑软件与操作系统和硬件平台系统的集成。我国在相关技术的研究中要对每次的测试结果进行认真、准确的分析, 避免人为判断中会出现的失误, 降低测试结果中可能会出现的偏差, 借鉴国外先进的测试技术和方法, 对我国的测试技术进行不断的完善, 在实践中求得更好的发展。

5 结语

现如今, 嵌入式系统在人们的生活和工作中发挥着巨大的作用, 面对着日新月异的计算机技术和复杂的嵌入式系统, 相关的测试人员要进行不断的努力, 在实践中发展嵌入式系统的测试技术, 针对测试软件自身的特点, 运用合理的测试技术和方法[2]。同时, 要选择合适的测试工具。在所有测试的程序和工具都完备的情况下, 才能更好的发现软件中存在的错误和缺陷。嵌入式的软件测试技术能够使软件有良好的运行环境, 保证软件使用的质量和可靠性。

参考文献

[1]何永太.嵌入式软件可靠性设计研究[J].电子世界, 2014 (08) .

嵌入式软件的覆盖测试 篇5

覆盖的几种方法或策略如表1所列。

表1几种典型的覆盖策略

覆盖策略定义语句覆盖在制定测试案例时,使程序中的每个语句都至少执行1次。其缺点是不能发现某些逻辑错误判定覆盖执行足够的测试案例,使得程序中每个判定都获得一次“真”值和“假”值,或者说使每一个分支都至少通过1次条件覆盖执行足够的测试案例,使得判定中的每个条件获得各种可能的结果判定/条件覆盖执行足够的测试案例,使得判定中的每个条件取得各种可能的值,并使得每个判定取得各种可能的结果条件组合覆盖执行足够的测试案例,使得每个判定中的条件的各种组合都至少出现1次。其特点是覆盖较充分,满足条件组合覆盖的测试案例也一定满足判定覆盖、条件覆盖和判定/条件覆盖。

从以上简要介绍可看出,这几种覆盖策略的严格程序有如下趋势:

其它一些覆盖策略还包括:修改的条件/判断覆盖(通常简称为MCDC)、路径覆盖、函数覆盖、调用覆盖、线性代码顺序和跳转覆盖、数据流覆盖、目标代码分支覆盖、循环覆盖、关系操作符覆盖等。随着软件规模的增长,实现全面的覆盖所需的测试案例的数目也越来越庞大,因此根据被测软件对象的特点选择适当的覆盖策略是非常重要的;同时,要确定合理测试目标,达到100%的覆盖往往要付出很大的代价,应该同形式化评审等方法结合,以发现更多的软件故障。

3覆盖测试工具

要取得较好的覆盖测试效果,需要借助一定的工具软件。这些工具软件一般具备如下的功能特点,可弥补人为测试的缺陷:

①分析软件内部结构,帮助制定覆盖策略及设计测试案例;

②与适当的编译器结合,对被测软件实施自动插装,以便在其运行过程中生成覆盖信息并收集这些信息;

③根据搜集的覆盖信息计算覆盖率,帮助测试人员找到未被覆盖的软件部位,以改进测试案例提高覆盖率。

微软嵌入式也要“软件+服务”化 篇6

“嵌入式产品正在由过去孤立的设备朝着一个连接性、服务导向的设备转变,微软的平台也从过去单纯的软件平台向‘软件+服务’的平台转变。”不久前来到中国的微软嵌入式事业部总经理Kevin Dallas表示。

智能、连接性和服务导向,这是Kevin Dallas反复提到的未来嵌入式终端产品的三大特点。而在构建智能、连接性和服务导向设备的过程中,服务尤其关键,这包括平台与工具服务、设备服务和终端用户服务三大类。

一个OEM厂商向市场投放一个嵌入式设备后,可以对这个产品进行远程技术支持,设备自身可以提供智能化的信息,便于厂商更加有效地管理和监控;一个终端用户可以通过嵌入式终端设备享受到包括位置服务、搜索服务和媒体服务等在内的实时服务,这些就是微软嵌入式系统“服务”的重要内容。

微软的嵌入式产品家族包括三大类: 为手持设备、瘦客户机、逻辑控制器和消费电子产品等小型实时设备定制的Windows Embeded CE、应用于非个人计算机设备的Windows XP Embeded,以及为零售设备外设提供即插即用功能的Windows Embedded for Point of Service(WEPOS)。

目前,微软Windows Embedded已经构造了一个由全球数千家设备制造商和分销商组成的生态系统,全球已有超过450所大学将Windows Embedded应用于课程教学和研究中,使用Windows Embedded集成开发环境工具的开发者也超过了600多家。

今天, 微软嵌入式系统在个人导航设备领域占有35%的市场份额,在瘦客户机、POS机市场分别占有52%和50%的市场份额,在ATM、瘦客户机方面也都占有最大的市场份额,“这个市场地位的取得也是我们要继续向‘软件+服务’平台转型的原因。”Kevin Dallas表示。

嵌入式软件测试技术研究与应用 篇7

软件开发商和软件用户两个群体对软件测试目的的理解有所不同。软件开发商进行软件测试的根本目的在于通过测试使自身所设计的软件产品可以符合用户的需求,确保软件产品的质量。软件用户则是希望通过软件的测试来暴露出软件开发商所设计的软件中所存在的问题与缺陷,检验软件所设计的功能是否满足自身需求。软件测试的目的主要被归纳为以下几点内容 :(1)检验软件的性能、功能是否符合规定的需求;(2)软件的测试分析为软件的可靠性分析提供了有利条件 ;(3)将软件所得实际结果与预期结果之间的差异分析所需的时间、人力降至到最低。通过软件测试将系统中存在的缺陷、错误进行修正处理,以此来提高软件的质量、性能,软件中存在的缺陷错误会为日后的工作带来难以预估的风险,软件的测试很大程度上降低了这些风险的发生。

2 软件的测试技术概述

软件测试技术主要包括静态测试和动态测试。静态测试又包括审查、走查、评审,而动态测试主要由白盒测试和黑盒测试构成。

2.1静态测试

静态测试的主要测试对象是源代码,通过源代码的分析发现其中潜在的缺陷错误,在程序不执行的情况下查找程序中的错误,静态测试主要包括审查、走查、评审三种类型,对其进行了如下分析:(1)走查。走查的评审过程不是非常正式,走查是由部分小组成员通读编码和设计,剩余小组成员对可能出现错误、发生矛盾、信息遗漏的地方进行系统的讨论,对走查过程中发现的问题做出适当的记录,以便于之后修改工作的实施。(2)审查。审查会对程序源代码进行较为正式的评估和检查。首先由软件设计开发人员对源代码中潜在的风险错误进行自我审查,之后由检查组进行代码审查。通过召开正式会议的方式来确保开发人员、软件用户、测试人员都参与到程序的审查工作中来,会议中还应该将需求描述文档、程序源代码清单、程序设计文档、代码缺陷检查表、代码编码标准等相关文件准备完善,在此基础上进行软件的静态分析,通过审查检测软件中是否存在错误。如果在审查中发现了错误,一定要在会议现场就将错误修正过来,还应该生成一份与静态错误分析相关的报告。(3)评审。

评审小组成员主要包括开发人员、测试人员、项目经理、与软件测试领域相关的专家、软件用户,他们根据审查结构和审查的讨论结果来判定所设计的程序是否可以通过静态测试。

2.2动态测试

动态测试是在程序执行过程中发现错误的测试,动态测试主要由白盒测试和黑盒测试构成,对其进行了如下分析:(1)白盒测试。白盒测试又被称为结构测试,白盒测试的测试用例是针对被测程序的相关信息和内部结构而设计的,白盒测试还要测试被测程序的逻辑路径。

白盒测试的主要测试内容包括以下几部分内容:1测试程序中所有的内部成分、路径是否按照要求、规定进行工作;2测试程序内部的变量的状态、运行的路径以及逻辑关系等;3最后要测试的是程序的运行是否符合设计需求。(2)黑盒测试。黑盒测试又被称为功能测试,黑盒测试的测试用例是针对被测程序的功能来设计的。将被测程序看成一个黑盒子,无法看到程序的内部结构,在测试过程中不将程序的内部逻辑结构和特性问题考虑在内,将测试的重点放在程序的外部结构上,测试内容主要包括软件功能和软件界面。黑盒测试的主要测试内容包括以下几部分内容:1测试程序中的功能是否完善齐全,并且要检测程序的性能和功能是否能够满足用户的需求。2测试在人机交互过程中、外部数据库访问过程中、数据结构上是否存在错误,并且要检测数据的输入和信息的输出是否正确。3检测程序的初始化、终止过程是否存在错误。一般较为常用的黑盒测试法主要包括以下几种类型:等价类划分法、边界值分析法、因果图、错误推测法等。

3 嵌入式软件系统的自身特点对软件测试的影响

嵌入式软件测试与一般软件的测试相比有所差异,嵌入式系统具有实时性、通道少、内存小、开发工具昂贵、与硬件联系紧密、种类繁多等显著特点,这些特性极大地增加了软件测试的难度。

3.1嵌入式软件系统的嵌入性影响

嵌入式软件系统的运行环境一般是由嵌入式系统提供的,嵌入式系统只提供了运行环境却无法提供开发环境,这两者无法达成统一就会增加嵌入式软件测试的难度。在系统测试过程中,测试工具和测试信息分别位于宿主机和目标机上,宿主机与目标机之间的信息传输问题非常关键。在测试过程中,不仅要对宿主机进行运行测试,还要确保嵌入式软件在目标机上可以正常运行。

3.2嵌入式软件系统的实时性影响

嵌入式软件具有实时性,它需要在规定的时间范围内完成有待处理的任务,它的运行具有实时性。嵌入式软件的实时性影响了嵌入式软件系统的测试,例如当有电话打入需要在规定的时间范围内接听,在这种情况下相应的操作系统却没有做出任何回应,超出这一时间范围对方只能挂掉电话。为了解决这一问题,嵌入式软件测试系统一般会采用静态时间分析和动态实时检测的方法对软件进行时间测试。动态实时检测指的是在程序执行过程中测试嵌入式软件的时间特性。静态时间分析则是指在不执行被测程序的情况下对程序结构进行深入分析,以此来预测程序的执行时间。

3.3嵌入式软件系统的反应性影响

在反应式系统运行进程中要对可能发生的事件做出相应的反应。反应式软件的描述工作是通过一对输入、输出序列的二元组负责完成的。输入事件的序列的不同组合极大地增加了程序的输入数据空间。输入数据输入反应式软件的时间不同会产生不同的结果,如何选取测试用例成了解决反应式软件的关键所在。

4 嵌入式软件测试的方法分析

4.1结构化测试法(Temd)

Temd结构化测试法具有以下基本特征:不同的人对于同样的问题所采用的测试方法有所不同,为了达成统一,在测试初期,团队总负责人就应该指出各部分测试工作的负责人员,并且要针对于各部分测试间的关系问题制定一个主计划,将通用元素很好的融入到各测试部分当中。通用元素是Temb法的基础,主要包括以下几种通用元素 :(1)技术。技术主要描述的是在测试阶段选用何种方法、如何执行各测试阶段的活动,为测试提供通用有效的方法。(2)生命周期。生命周期指的是软件开始计划到软件废弃这一时间周期,这段时间周期内需要执行的顺序和各进行阶段。(3) 基础设施。基础设施主要是指测试工具、测试环境、办公环境、测试人员等在测试环境中所涉及到的基础测试设施,以此来确保测试的执行可以按计划顺利的进行下去。(4)组织。组织主要指的是确定测试的人员安排、测试结构、所需的专业技能,此外还包括测试过程中的控制、管理问题等,通过有效的组织形式来加强团队之间、人员之间的交流合作。

4.2模块化测试法

在满足软件用户需求的前提条件下,将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块组合,进行小功能模块的设计开发,将嵌入式软件的开发进行分工合作。嵌入式软件系统模块化设计的主要设计思想如下所示:通过采用全局变量的形式实现功能模块之间的数据传递,软件系统各功能模块之间的逻辑结构是相互独立的。嵌入式软件的模块化设计极大的方便了嵌入式软件测试的纠错处理工作。嵌入式软件系统的模块化测试主要包括以下几部分内容:(1)系统平台测试。系统平台测试主要包括硬件电路、操作系统、底层驱动程序等部分的测试。(2)模块测试。系统在进行模块测试时,将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块,采用模块嵌套的结构形式进行软件测试,简化了模块间的数据链路,使模块内部的结构更为清晰明了。(3)集成测试。通过集成测试的特殊处理将复杂的链路数据传递方式转化成较为简单的单链路数据传递形式,在软件模块中采用较为简单的单链路数据传递形式使错误的定位更为简单,有助于检测各功能模块间数据传递和系统逻辑结构中存在的错误。(4)系统测试。嵌入式软件系统投入使用后,采用黑盒测试对嵌入式软件系统进行动态测试,以此来满足用户的功能需求。

5 嵌入式软件测试技术的应用

探讨嵌入式软件测试自动化技术 篇8

1 嵌入式软件测试概述

1.1 嵌入式软件测试技术的方法分析

嵌入式软件作为软件中的重要组成部分, 其测试直接影响着软件的质量和可靠性。目前, 嵌入式软件测试的方式主要包括硬件仿真测试、软硬件结合测试以及纯软件测试这三种。同时其测试技术的方法可以从三个方面着手:一是宿主环境测试。该方法是指嵌入式软件脱离于终端, 并通过环境的模拟来对软件进行测试。该测试方法在对模拟环境加以建立时, 其存在较大的难度, 无法对软件实际的运行环境进行真实反映。二是目标环境测试。其主要是利用手工操作, 对真实终端进行直接测试, 在黑盒测试中较为适用。但是该测试方法存在一定的缺陷, 其需要消耗大量的时间和经费, 无法实现自动化测试。三是非侵入式自动化测试。其是通过交叉测试的方式, 对相关信息进行实时测试, 并将其传输至宿主机中, 从而有效克服环境工具昂贵以及内存有限情况, 确保移动终端的实时性。

1.2 嵌入式软件测试的特点分析

自动化测试技术在发展的初级阶段, 其主要目的是为了利用自动方法来测试软件, 有效代替繁琐的人工测试工作。随着工作量的加大, 人们对软件测试提出了更高的要求, 要求嵌入式软件在测试过程中, 能够有效节省测试的资源, 降低测试人员的工作强度, 确保自动化测试技术水平的有效提升。在软件自动化测试中, 必须要对测试结果的科学性以及准确性进行有效保证, 降低测试误差, 从而对自动化测试的过程进行合理指导, 确保结果评价的准确。对于传统的测试而言, 其统计指标虽然能在一定程度上促进测试可靠性的提升, 但是由于搜索方式的欠缺以及机械的重复, 导致自动测试的效果和性能较差。因此在嵌入式软件的自动化测试过程中, 应充分发挥出高新技术的优势, 降低对人工的依赖性, 促进软件测试结果精确度的提升。

2 嵌入式软件测试自动化技术分析

2.1 自动化的测试环境

为了有效提高嵌入式软件的可靠性和实时性, 必须要结合软件的特点, 合理创建测试的环境, 确保其在真实的环境进行测试。以星载嵌入式软件中航天器数管分系统软件的自动化测试环境为例, 该测试环境主要由分系统的测试设备、星上设备以及模拟器构成。通常情况下, 在对分系统的性能和功能进行测试时, 应充分借助相关的测试设备, 并在真实的工作环境中进行操作, 对系统运行的情况进行验证, 确保其运行能够满足规定的标准和要求。同时分系统测试的用例输入主要是利用测试客户机及遥控指令中的摇测参数, 并通过数据总线模拟器和遥控模拟器, 对系统输出的结果进行观察和记录, 将预期结果与输出结构进行比较, 从而有效判定测试的通过率。

2.2 自动化技术的不同测试阶段

嵌入式软件在自动化技术条件下进行测试时, 其测试可以分为单元测试阶段、集成测试阶段、确认测试阶段以及回归测试阶段。

2.2.1 单元测试阶段

对于嵌入式软件而言, 其所有的单元测试都是在主机环境中进行操作, 其分为动态测试以及静态测试这两类。如星载嵌入式软件的动态测试, 其是利用自动化的测试工具对不同覆盖率而进行的软件测试, 如MC/DC覆盖率、条件覆盖率以及语句覆盖率等。同时该软件的静态测试时利用相关软件工具进行自动测试。

2.2.2 集成测试阶段

集成测试主要是指软件系统在集成的过程中, 对其进行测试, 并对软件单位之间接口的准确性进行检查, 确保软件测试结构的可靠性和准确性。星载嵌入式软件中的集成测试, 其主要是利用一定的测试工具以及调试环境, 从下向上进行测试, 如DDDX、Trace32等工具的自动完成。

2.3 确认测试阶段

对于嵌入式软件自动化技术的确认测试阶段, 其主要包含自动化测试脚本以及自动化测试环境这两部分。自动化测试脚本的选择具有多样性, 其能够利用相关的解释性语言对软件特征进行描述, 如Java Script、Vb Script、Perl以及Tcl/TK等, 但是其在维护方面还存在不足。嵌入式软件在实际的测试过程中, 工作人员可以利用解释性语言, 并针对特定的软件系统, 对其进行重新描述和归纳, 确保软件执行效果的高效性和专用性。此外, 确认测试阶段应在真实系统的自动化测试平台中进行测试, 这样测试人员能够对软件中出现的问题进行及时发现和定位。同时测试人员能够利用主控计算机, 对相关的测试项目进行及时操作, 确保自动化程序的正常运行、顺利完成自动化测试脚本的编写, 如航天器遥控指令的自动巡检、遥测波道自动化比对等。

2.4 回归测试阶段

回归测试主要是指在修改嵌入式软件之后, 对其进行测试, 从而检查其修改是否正确。如在对星载嵌入式软件进行修改时, 由于影响其修改的因素较多, 如自身bug变化、环境变化、分系统变化以及用户需求变化等, 并且修改工作较为频繁, 从而导致星载嵌入式软件的测试结果发生变化。对于回归测试的自动化程度而言, 其主要是以确认测试阶段中自动化测试的脚本以及环境为基础加以实现。因此在嵌入式软件的回归检测阶段充分应用自动化测试, 从而便捷快速检查出软件程序的准确性, 确保嵌入式软件回归测试工作的顺利进行。

3 结束语

嵌入式软件在利用自动化技术进行测试时, 其还存在不足之处, 导致自动化测试的结果缺乏可靠性和准确性, 难以有效发挥出自动化技术的作用。因此在对嵌入式软件进行自动化测试时, 必须要结合自动化测试的环境, 选择科学的测试方法, 并将自动化技术有效运用在单元测试、集成测试、确认测试以及回归测试等阶段。只有这样, 才能有效推动自动化测试技术的广度和深度, 实现嵌入式软件测试技术的自动化、智能化以及网络化发展。

摘要:本文就对嵌入式软件测试自动化技术进行深入分析和探讨。

关键词:嵌入式软件,测试,自动化技术

参考文献

[1]王向晖, 李林.星载嵌入式软件自动化测试技术研究[J].计算机测量与控制, 2012, 01:267-269.

[2]张洪春.嵌入式移动终端软件自动化测试技术研究[J].计算机与网络, 2012, 19:68-71.

浅谈软件测试和嵌入式软件测试 篇9

软件测试是指通过执行程序去找出软件错误的过程,是为评价一个程序或系统展开的各种活动,测试是度量软件质量的一个过程。软件测试是保证软件质量,提高软件可靠性的关键。无论是从软件开发方法学还是软件测试自身的效益看,软件测试在今后较长时间内仍将是保证软件质量的重要手段。

1 软件测试

1.1 软件测试的实质与意义

软件测试的实质就是找软件漏洞,即找Bug,这是一个非常重要的工作,因为任何一个产品开发出来以后。都会存在许多大大小小的Bug,轻则影响用户的正常使用,重则导致系统崩溃。软件测试是为了发现错误而执行程序的过程,测试是为了证明程序有错,而不是证明程序无错误。一个好的测试用例是在于它能发现至今未发现的错误,一个成功的测试是发现了至今未发现的错误的测试。

软件测试的重要意义已是无容质疑的。软件测试能够发现软件中存在的错误和缺陷,验证软件的功能和性能是否满足用户的需求。但是,软件评审和测试都不能证明软件的正确性,不能确认软件中已经不存在错误和缺陷,除非被测软件的输入空间是有限的和其他特殊情形。从工程的角度看,软件形式化方法对工程应用尚不成熟,除对少数软件外,离实际应用还较远。在复杂软件需求未能得到完全形式化表述之前,用形式化方法证明复杂软件的完全正确性是不现实的。

1.2 软件测试的分类与过程

软件测试不等于程序测试,它贯串于软件定义和开发的整个期间,因此,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计说明、详细设计说明、以及源代码都是软件测试的对象。按照不同的划分方法,软件测试有不同的分类,如按测试用例设计方法可分为白盒测试和黑盒测试,按测试策略和过程可分为单元测试、集成测试、确认测试和系统测试。

软件测试过程主要分为四个测试步骤:单元测试、集成测试、系统测试和验收测试。为了在每个测试步骤中设计合适的测试例,尽可能多地找出系统中的错误,需要运用适当的测试方法。软件测试方法主要分为自盒测试和黑盒测试例如在单元测试和集成测试中,主要运行白盒测试,而在系统测试和验收测试中,大部分运行黑盒测试设计测试用例。

1.3 软件测试的原则

软件测试应该遵守其基本原则。首先应尽早和不断地进行软件测试,实践证明单元测试能够尽早发现问题,减少后期测试的错误量。其次,应当避免由程序员检查自己的程序,这里指的是后期系统测试阶段,并不包括单元测试;第三,应充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检锗率成正比。应该对错误群集的程序段进行重点测试;最后,应严格执行测试计划,排除测试的随意性。测试计划应包括:所测软件的功能,输人和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则以及回归测试的规定等等以及评价标准。此外,要妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

2 嵌入式软件系统测试

2.1 嵌入式系统与软件的概念

嵌入式系统是指以嵌入式应用为目的的计算机系统。起源于20世纪60年代,从最初的国防系统,逐渐进入工业控制系统。随着数字化时代的到来,大量系统架构复杂、功能日益强大的嵌入式系统正不断进入市场,应用也日趋复杂,这对嵌入式软件的开发技术和测试技术提出了更高的要求。嵌入式系统的复杂性和集成度越来越高,其中的软件部分也开始在整个嵌入式系统中占有越来越多的比例,并经常实现硬件的功能。

嵌入式软件是最难测试的一种软件,在嵌入式软件的测试过程中使用有效的测试方法、策略和工具,可以使系统开发的效率最大化,避免目标系统的瓶颈,确保嵌入式软件的质量确保嵌入式软件的质量。

2.2 嵌入式软件系统测试的特点

嵌入式软件系统测试具有以下特点:1)测试软件功能依赖不需编码的硬件功能,快速定位软硬件错误困难;2)性能测试,确定性能瓶颈困难;3)强壮性测试、可知性测试很难编码实现;4)基于消息系统测试的复杂性,包括线程、任务、子系统之间的交互,并发、容错和对时间的要求;5)交叉测试平台的测试用例、测试结果上载困难;6)实施测试自动化技术困难。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的重要行业中的嵌入式软件所花费的成本,可能相当于软件工程其他开发步骤总成本的三倍到五倍。

2.3 嵌入式软件的测试方法

一般来说,软件测试有两种基本的方式,即白盒测试方法与黑盒测试方法,嵌入式软件测试也不例外。

白盒测试或基本代码的测试检查程序的内部设计。根据源代码的组织结构查找软件缺陷,一股要求测试人员对软件的结构和作用有详细的了解,白盒测试与代码覆盖率密切相关,可以在白盒测试的同时计算出测试的代码的覆盖率,保证测试的充分性。把100%的代码都测试到几乎是不可能的,所以要选择最重要的代码进行白盒测试。由于严格的安全性和可靠性的要求,嵌入式软件测试同非嵌入式软件测试相比,通常要求有更高的代码覆盖率。对于嵌入式软件,白盒测试一般不必在目标硬件上进行,更为实际的方式是在开发环境中通过硬件仿真进行,所以选取的测试工具应该支持在宿主环境中的测试。

黑盒测试在某些情况下也称为功能测试。这类测试方法根据软件的用途和外部特征查找软件缺陷,不需要了解程序的内部结构。黑盒测试最大的优势在于不依赖代码,而是从实际使用的角度进行测试,通过黑盒测试可以发现白盒测试发现不了的问题。因为黑盒测试与需求紧密相关,需求规格说明的质量会直接影响测试的结果,黑盒测试只能限制在需求的范围内进行。在进行嵌入式软件黑盒测试时,要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。为了保证正确地测试,还须要检验软硬件之间的接口。嵌入式软件黑盒测试的一个重要方面是极限测试。在使用环境中,通常要求嵌入式软件的失效过程要平稳,所以,黑盒测试不仪要检查软件工作过程,也要检查软件换效过程。

2.4 两种重要的嵌入式软件测试工具

用于辅助嵌入式软件测试的工具很多,下面对两类比较常见但十分有用的有关嵌入式软件的测试工具加以介绍和分析。

2.4.1 内存分析工具

在嵌入式系统中,内存约束通常是有限的。内存分析工具用来处理在动态内存分配中存在的缺陷。当动态内存被错误地分配后,通常难以再现,可能导致的失效难以追踪,使用内存分析工具可以避免这类缺陷进入功能测试阶段。目前有两类内存分析工具———软件和硬件的。基于软件的内存分析工具可能会对代码的性能造成很大影响,从而严重影响实时操作;基于硬件的内存分析工具价格昂贵,而且只能在工具所限定的运行环境中使用。

2.4.2 性能分析工具

在嵌入式系统中,程序的性能通常是非常重要的。经常会有这样的要求,在特定时间内处理一个中断,或生成具有特定定时要求的一帧。开发人面临的问题是决定应该对哪一部分代码进行优化来改进性能,常常会花大量的时间去优化那些对性能没有任何影响的代码。性能分析工具会提供有关的数据,说明执行时间是如何消耗的,是什么时候消耗的,以及每个例程所用的时间。根据这些数据,确定哪些例程消耗部分执行时间,从而可以决定如何优化软件,获得更好的时间性能。对于大多数应用来说,大部分执行时间用在相对少量的代码上,费时的代码估计占所有软件总量的5%-20%。性能分析工具不仅能指出哪些例程花费时间,而且与调试工具联合使用可以引导开发人员查看需要优化的特定函数,性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。

3 总结

软件测试能够发现软件中存在的错误和缺陷,验证软件的功能和性能是否满足用户的需求,是软件产品开发中不可分割的一部分。嵌入式系统在人类生活中发挥着重要的作用,包括飞行控制器这样的控制系统,以及洗衣机这样的家用电器。嵌入式系统中软件的比重越来越大,也越来越复杂,保证嵌入式软件的可靠性正面临严峻的挑战随着计算机技术的发展,嵌入式软件测试面临着一些特殊的问题。虽然日前已经有一些针对嵌入式软件的测试和调试工具,但是在有些方面仍存在不足,包括许多任务操作系统的并发、非侵入式的测试和凋试、嵌入式系统的软件抽象等。对于嵌入式软件测试技术的研究人选测试工具有待开发,仍须要做很多进一步的工作。

参考文献

[1]红峰.软件测试风险的分析与对策[J].中国金融电脑,2009(2):129-130.

[2]钱超.软件性能测试的流程探析[J].中国金融电脑,2009(2):80-82.

[3]张军峰.如何使软件测试更有效[J].电脑知识与技术,2005(6):79.

[4]刘斌,高小鹏,陆民燕,等.嵌入式软件可靠性仿真测试系统研究[J].北京航空航天大学学报,2004(4):122-125.

[5]康一梅.嵌入式软件设计[M].北京:机械工业出版社,2007:230-236.

[6]郭春柱.嵌入式系统设计师案例导学[M].西安:西安电子科技大学出版社,2007:129-134.

[7]许育诚.软件测试与质量管理[M].北京:电子工业出版社,2004:28-30.

[8]麦格雷戈.面向对象的软件测试[M].北京:机械工业出版社,2002:120-123.

嵌入式软件技术 篇10

一、计算机嵌入式软件构件相关概述

计算机构建, 指的是在特定的的体系机构条件下能够通过某种路径实现相应功能的单位, 需要具备特定规格的接口以便于供第三方应用。而嵌入式软件构件则要求计算机嵌入式系统具有与之吻合的相应特性, 包括硬件规格与属性、资源的并发与限制性等等, 唯有计算机系统具有满足于嵌入性系统基础单元和具备相应的嵌入特征, 才能实现基于嵌入式软件构件的提取与组装。

计算机嵌入式软件构件需要同相应的系统之间建立起关联的关系, 因此接口的设置需要满足特定的条件。目前相对来说较为常用的具有代表性的模型系统主要包括COM/DCOM、CORBA等[1]。

本文认为, 要想明确计算机嵌入式软件构件提取与组装技术, 需要首先明确各个功能系统当中相应的构件所起到的作用, 并运用相应的语言来提供与之对应的行为信息。而构件组装技术作为计算机软件构件的现代前沿技术, 已经成为了核心之一, 通过对构件的组装, 能够直接实现计算机软硬件的关联, 实现系统的更新。

二、计算机嵌入式软件构件提取技术

在现代信息技术不断更新的作用下, 所有计算机软件系统无论有多前沿, 都会无可避免地沦为遗产系统。软件构件的提取, 是一个复杂的过程, 需要通过逆向操作来完成, 还要以模型的构建来辅助。计算机嵌入式软件的普及, 使得从既有系统当中抽取可用部分服务于新系统成为了现实。正常情况下, 计算机嵌入式软件构件的提取需要经历分解系统、建模、提取、性能评估等[2]。其中, 分解系统常用的方法主要包括结构分析法与知识匹配法, 经过分解之后, 以模型的构建进行系统的分析与推算, 之后可以进行提取, 根据用户的实际需求对用户界面进行构件的分化, 经分解之后得到整体框架。

在模型构建的过程中, 需要充分考虑与用户的配置层相匹配, 同时还要注重使计算机嵌入式软件能够保证具有一定的可变性, 采取代码分析手段, 与源代码进行对比, 来保证构件提取的准确性。

目前, 对于计算机嵌入式软件构件提取之后的性能评估可以根据其重复性与移动性, 也就是说, 计算机嵌入式软件的最重要亦是最基本特征亦表现在此方面, 对模型算法或构件复杂程度起决定性作用的就是要确保除去冗余, 过程需要依赖于相应的工具, 将抽象层具体化, 同时兼顾人机交互的可靠性与重复使用等性能。

三、计算机嵌入式软件构件组装技术

计算机嵌入式软件构件组装技术是新系统的生成技术, 此技术要求各个构件之间能够相互匹配, 进而形成耦合, 包括数据、行为等。构件组装的依据是要严格按照相应的流程, 通常情况下具有着特定的层次[3]。

目前, 关于计算机嵌入式软件构件组装, 最为常用的计算机软件是C语言, 其能够通过最为直接的控制能力来对构件进行组装, 使构件组装得以被清晰的描述, 以保证通过有限的资源, 在满足时效性的前提下使构件组装的质量达到最优。

四、结论

综上所述, 计算机技术的发展, 成为当前各个行业领域效能提升的根本动力, 由此为计算机系统软件创造了良好的发展空间, 然而计算机软件的复杂性将永远同系统软件的规模呈正相关, 而计算机嵌入式软件构件提取与组装技术为软件的更新带来了便利条件, 因此值得进行更为深入的研究。

摘要:在社会经济快速发展的助动作用下, 基于计算机的现代化信息技术的发展呈现出日新月异的喜人之势, 计算机软件的更新频率也呈现出突飞猛进的状态。然而在此背景下, 社会对于计算机软件的要求却越来越高, 对于整个行业来说, 充满着无限良好的机遇, 但所面临的巨大的挑战对于不少企业来说亦是一个威胁。如何做好计算机软件的创新式开发, 成为了现代IT行业的一个战略课题。本文将立足于此, 以软件的提取与组装技术作为出发点, 并结合计算机嵌入式软件的具体特点来浅谈计算机嵌入式软件构件提取与组装技术, 进而为实践应用提供参考建议。

关键词:计算机,嵌入式构件,提取与组装

参考文献

[1]邹平吉.计算机嵌入式软件框架下的构件提取及组装思路构建[J].自动化与仪器仪表, 2015 (05) :176+178.

[2]王博, 白晓颖, 贺飞, Xiaoyu SONG.可组合嵌入式软件建模与验证技术研究综述[J].软件学报, 2014 (02) :234-253.

嵌入式软件测试方法的初探 篇11

摘要:嵌入式计算机技术的飞速发展加速了电器行业嵌入式系统的应用,嵌入式系统中软件系统的比重越来越大,软件架构也越发复杂,软件运行的可靠性逐渐成为业界关注的焦点问题。本文由嵌入式软件测试的基本概念入手,基于嵌入式软件测试特点,综合分析嵌入式软件的关键技术和测试方法,旨在改善嵌入式软件的质量,提高其应用性能。

关键词:嵌入式软件 软件测试 测试方法

0 引言

当前,嵌入式软件已广泛运用于工业控制系统、信息家电、通讯设备、医疗仪器、智能仪器仪表等众多领域,软件的质量和应用性能备受业界关注。以往业界仅仅将功能的软件开发-测试模式作为重点研究课题,但当前所取得研究成果已无法满足日益增长的软件测试需求,其对软件行业的发展也产生了一些负面影响。嵌入式软件测试的工作内容主要是软件质量的监测,这对于嵌入式软件的开发及应用十分关键。

本文在软件测试基本技术的基础上,进一步探究嵌入式软件测试技术与监测方法,试图形成一种较为规范化的嵌入式软件测试解决方法。

1 软件测试基础

1.1 软件测试概念 软件是可以用来设计、制造、运行并且能有效维护的高质量、高可靠性的技术解决方案的一系列计算机程序和相关的组件。对软件进行测试是软件能否正常运行的重要保证,软件测试是以发现错误和缺陷为目的的一系列处理分析的程序或过程。

根据IEEE(1983)对测试定义是选择合适的测试用例,执行被测试程序的过程,其目的在于发现程序错误。在IEEEStd829-1998对IEEE(1983)修订版中,将测试定义为:测试(A)一个或多个的测试用例集,或(B)一个或多个的测试过程集,或(C)一个或多个的测试用例和测试过程集,是软件的分析过程,其目的在于发现软件功能特性等实现和要求不一致的地方(也即软件错误)及对软件的评估[1]。

从以上对软件测试的定义我们可以了解到,软件测试是以发现软件缺陷为目的,进而测试软件功能,最终评估软件质量为目的的试验过程。另外,为了确保测试结果客观、准确,必须按照设计要求选用合理的施测软件。

1.2 软件测试步骤 软件测试工作分五步完成,即单元测试、集成测试、确认测试、系统测试和验收测试(详见图1-1)。

单元测试完成对最小的软件设计单元的检验工作,筛查程序最小单位(模块)中的缺陷,编码后也需要作进一步验证。单元测试主要包括模块接口、局部数据结构、边界条件、独立路径及错误处理五项内容。

集成测试是将经过单元测试的模块按照软件结构组合在一起作为系统或子系统来进行的测试,验证模块间接口的正确性和各部分工作是否达到或实现相应技术指标及要求。集成测试一般在宿主机环境中进行。

确认测试是把软件系统作为单一的执行实体而进行的需求有效性测试。其目的是验证软件是否满足所有功能、性能、行为和执行要求。主要验证两个方面:一是确认软件正确实现了需求中所要求的功能,二是确认软件实现的功能是需求中所需要的。

系统测试实际是通过比较系统的需求定义,筛查软件中与需求定义不相符或相互矛盾的功能架构。系统测试须综合验证软件及其所含的信息、硬件程序是否与需求定义相一致,并检验程序的运行状态能否达到应用要求。

确认测试主要通过用户的参与,检验软件的性能、功能能否满足用户的使用需求,即验证软件的有效性,因此确认测试亦可称作有效性测试。

2 嵌入式软件测试的特点

性能和功能的测试是嵌入式软件测试的主要内容,但相对于一般性的软件测试而言,嵌入式软件测试仍有其特殊性。

①嵌入式软件运行时对硬件环境有一定的要求,嵌入式软件测试的重要目的是测试软件在特定的硬件环境下能否可靠运行,故对嵌入式软件的测试就需要在相应的硬件环境下进行。

②嵌入式软件测试还要保证嵌入式软件的实时性。测试还需在特定的外部环境下对嵌入式软件进行测试,例如强磁场、高温等环境中保证软件运行的可靠性。

③嵌入式软件产品除了满足设计的外部性能要求,还需要在特定的平台上运用相应的测试工具对软件进行内存测试、GUI测试、覆盖率分析。

嵌入式软件的质量以及程序的稳定性须通过软件测试来维护,这也是软件从开发阶段到应用阶段所必经的环节。图2-1即为嵌入式软件测试模型。

测试用例是详细描述测试如何执行的正式文档。选用相应的测试用例,配以测试平台的操作系统以及驱动程序,使得被测软件在正确的环境中运行。根据测试用例的执行结果与预期的测试结果相比较,找出被测程序的缺陷,并加以改进。

3 嵌入式软件测试技术

科学合理的软件测试技术是嵌入式软件测试项目顺利实施的基本前提。根据软件测试程序的应用情况我们可以对软件测试技术进行分类探讨。从测试对象在施测阶段是否被执行角度来看,软件测试涵盖了动态测试与静态测试两部分内容。

静态测试即静态分析,是对被测软件进行特性分析的一些方法的总称。静态测试无需执行程序代码,即可通过其他途径筛查程序内部的缺陷或对程序代码目的进行综合评估。静态测试的测试主要包括代码审查、代码走查、桌面检查、技术评查,这些内容全部须手动完成,另外还包括软件自动完成的静态分析[3]。

和静态测试相对应,动态测试是使被测代码在真实环境或仿真环境下有控制地运行,通过输入测试用例,对代码在运行时体现出的功能、逻辑、行为、结构等多角度观察,检查运行结果与预期结果的差异以发现其中的缺陷,并分析运行效率和健壮性等性能。动态测试的关键在于如何选择测试用例。

按软件测试技术分类有两种,即白盒测试与黑盒测试。

白盒测试主要涉及程序的内部设计和结构的测试。它将施测对象视为一可视化软件,施测人员须全面掌握程序的内部逻辑构造和功能特性,然后选择及设计测试用例,根据程序的逻辑路径施测。在各施测点对程序运行状态进行监测,确定实际的状态是否与预期的状态一致。

黑盒测试在某些情况下也称功能测试。这类测试方法根据软件的用途和外部特征查找软件缺陷,无须了解程序内部的结构,黑盒测试的最大优势在于不依赖代码,只需根据需求,设计相应的测试用例,根据输出结果判断程序功能以及性能正确性。

4 嵌入式软件系统测试方法

理论上讲,将所有可能的输入均作为测试情况考虑,软件测试只有采用穷举输入测试,才能将程序内所有的错误检测出来。而现实中测试情况可有无穷多个,所有可能的输入包含着合法输入和非法输入,要将所有的可能性输入一一检测仍有一定难度,因而须针对测试对象采取适当的测试手段,并参考测试对象的基本条件制定科学的测试用例,为测试工作提供参考依据,以确保有序地落实软件测试各个步骤。笔者结合实践经验,对当前常用的等价分类、边界值分析、McCabe循环复杂度度量和因果图法进行了具体分析。

4.1 等价分类 等价类划分就是把输入划分为若干部分,从每个部分中选取少量代表性数据,来对被测应用进行测试的方法。等价类应为互不相交的一组子集,而子集的并应该是整个集合[4]。

因为软件不仅要接收合理的数据信息,同时须经受意外的考验,因此等价类可细分为有效和无效两种情况。有效等价类,即对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。通过有效等价类,可对程序所达到的性能和功能是否符合规格说明进行验证。而无效等价类与有效等价类恰好是两个相反的概念。另外,对等价类进行划分后须根据设计要求全面测试用例的有效性。

4.2 边界值分析 边界值分析是一种黑盒测试方法,它是对等价类划分方法的补充,通过选择等价类边界的测试用例。通过这种测试方法设计测试用例,须对边界情况有大致的了解。一般来讲,输入与输出等价类的边界即应着重测试的边界情况[5]。

从某种意义上讲,边界值分析法也是一种测试输入或输出的边界值的有效途径。这里所有的边界值涵盖了边界值两边的值。边界值测试的基本原理:输入变量的极值附近极有可能是缺陷点;基本思想:在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量的值。

4.3 McCabe循环复杂度度量 要全面测试某一软件或某一功能模块的有效性,先确保被测对象具有可测试性。顾名思义,可测试性即被测对象所具有的内在属性,它与测试工具或测试方法无关。可测试性能够反映出软件质量优劣,只有高内聚、低耦合、接口明确、意图清晰的软件才具有可测试性。相反,高耦合、内部逻辑混乱的软件即为不可测试性软件。

4.4 因果图法 等价划分和边界值分析没有对输入条件进行分析。组合分析有时是一件困难的事情,因为组合的数量可能达到天文数字。因果图有助于找出高效的测试用例,甚至可以找到规格说明欠缺的地方。

因果图法的步骤如下:①分析规格说明中的原因、结果,并赋予标示符。②找出因果之间的对应关系,画出因果图。③在因果图上标明约束条件。④把因果图转化为判定表。⑤根据判定表每一列表示的情况生成测试用例。

5 结束语

伴随着嵌入式软件事业的持续拓展,软件测试作为保证软件质量的一项关键性的工作,已越来越受到重视。正确的嵌入式测试方法是软件测试工作的工作重点。本文除了对有关软件测试的基本概念作了简要阐述,还对它们之间的内在架构进行了重点分析,并介绍了几种常用的嵌入式软件测试技术及嵌入式软件测试方法。这些技术与方法的运用对软件测质量和稳定性起到非常关键的作用。

参考文献:

[1]IEEE,IEEE Standard for Software Test Documentation.IEEEStd829-1998.

[2]梁合庆.当今嵌入式系统综述与新的投资机遇[J].测控技术,2000(4).

[3]康一梅,张永革.嵌入式软件测试[M].北京:机械工业出版社,2007.

[4]古乐,史九林.软件测试技术概论[M].北京:清华大学出版社,2004.

[5]蔡建平.嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.

基金项目:

浙江省大学生科研创新团队资助项目(编号:2012R409046);

嵌入式软件技术 篇12

1 构件化软件开发概述

1.1 构件化软件开发

构件化软件开发是将产品标准化生产理念应用于软件开发过程的一种思想,这种思想将职能性软件视作一种可以重复利用的标准化构件,对已经设计完成的标准化构件进行分类保存,在软件开发过程中一旦需要用到这一标准化软件构件,就可以到数据库中搜索相应软件,加入到软件中去,这样可以减少开发软件的费用,减少了时间的浪费,提高了开发质量。构件化概念从软件技术发展成熟以后开始进入到软件设计领域,经过多年的发展、不断的完善,现在已经基本上形成了自己的体系,这是一种有组织的并且很完整的机制。

1.2 嵌入式实时软件构件化开发的必备条件

与传统的软件设计开发过程相比,嵌入式实时软件的设计开发过程并没有太大的区别,但是在开发嵌入式实时软件时,要充分考虑到它自身的特点,即实时性和可扩展性,在进行软件设计时,以满足其实时性和可扩展性的需求。在众多软件中嵌入式实时软件系统是最适宜应用构件化开发技术的,因为嵌入式实时软件系统是一种微观上的软件系统,其应用的领域也主要集中在一些生产用品、生活用品中,并不需要满足传统意义上软件系统的兼容性和操作性的高要求,只需要具备容易上手、操作简单的功能就可以,这就是软件的构件化开发所具备的必需条件。

在嵌入式实时软件系统的构件化开发的过程中,必须从软件系统应用的角度出发,对实际中的相关细节进行系统、科学的设计,并进行开发和管理。在软件开发过程中,开发人员应该对软件的功能需求进行分析,并根据实际需求在软件构件数据库中搜索相关的软件构件。如果嵌入式实时软件系统的功能需求比较简单,开发人员可以直接使用软件构件数据库中的构件进行开发 ;如果嵌入式实时软件系统的功能需求比较复杂或难以实现,开发人员可以将软件构件库中几种软件构件进行组合来进行开发。这时会不断更新构件库,从而形成一个动态的构件库,为嵌入式软件系统可持续开发提供了更加系统、更加全面的软件构件库支持。

2 构件化的嵌入式实时软件开发

构建合理的构件化的嵌入式实时软件框架是软件系统开发的基础,通过软件框架可以充分体现出构件化软件开发方式的优势,构件化开发框架具有的易于理解、拆解、组合等特性,使得嵌入式实时软件得到广泛普及,相关开发技术水平也得到大幅度的提高。

在开发嵌入式实时软件时,理想的构件化软件框架不仅应该包括软件系统中的各个组成部分,而且还应该包括各个组成部分之间的逻辑关系。而这种逻辑关系非常的重要,如果嵌入式实时软件框架中只针对软件内容进行设计,而忽略框架内部各个部分的逻辑结构,没有对各个组成部分进行逻辑结构进行设计,在软件的开发过程中就会整个软件的逻辑关系混乱,会导致系统开发面临瘫痪的危险。因为在软件开发过程中职能软件构件会因为自身逻辑关系的问题,而不能在构件化软件设计过程中自由运用,这时就需要重新根据软件设计中所需的逻辑关系来修改软件构件的逻辑关系,这样一来,就会耗费大量的人力、物力和时间,严重影响了嵌入式实时软件构件化开发的效率,也不符合嵌入式实时软件构件化开发的特点,必然要予以解决。

CBRTSF是目前相对成熟的完全构件化嵌入式实施软件开发系统,通过赋予构件接口优先级,维持构件黑盒特性,以实现构件重复利用 ;通过集中显示表示构件的交互关系,增强构件可维护性、扩展性 ;应用策略、机制分离思想,赋予构件分离、合成功能,增强构件灵活性。CBRTSF软件开发系统充分展现了嵌入式实时软件的构件化开发的高效和强适应性的特点。

3 构件化嵌入式软件开发环境

软件开发环境是软件开发过程中不可或缺的支撑工具,也是开发过程中所需的最基本的工具,而嵌入式实时软件的开发更是离不开一个科学、合理的软件开发环境,在良好的开发环境支持下,嵌入式实时软件的开发过程才会更好的展现出它的优势,才可能体现出良好的扩展性、实时性,并实现兼顾功能性、可定制、可维护性的要求,设计出一种适合嵌入式实时软件开发的开发环境是至关重要的。

当前的软件开发环境多数是针对传统意义的软件系统设计需求而设计的,不能满足嵌入式实时软件系统开发的特殊需求,而正是由于当前缺少相应的开发环境,导致了嵌入式软件的构件化开发不能稳定地进行。同时嵌入式实时软件的构件化开发过程包括两方面内容 :嵌入式实时软件的开发系统和庞大的构件开发系统,这是一个系统性的开发过程,所以在对嵌入式实时软件构件化开发环境进行配置时,不仅要关注嵌入式实时软件系统开发的需求,还要关注构件化开发过程的需求,并将二者有机的结合在一起,充分满足各自的运行需求,这样才可以为嵌入式实时软件的构件化开发提供一个科学、合理的开发环境。

现阶段,在嵌入式实时软件系统的构件化开发领域中,有学者提出了一种基于模块化的软件开发环境设计的思想,具体而言是在软件开发过程中设置一个模型,在这个模型的规范下软件开发软件和被开发软件统一进行开发和被开发活动,这样一来,由于是在同一个模型规范下设计出来的,嵌入式实时软件的构件化开发活动就可以做到有机的统一,能够进行积极的信息交互,根据软件开发软件对被开发软件进行设计开发,也可以针对被开发软件的设计需求,对软件开发软件进行改造升级,让其更加适应软件开发活动。实现嵌入式实时软件构件化开发和软件设计环境的综合统一是极其重要的,不但可以使嵌入式实时软件构件化开发顺利进行,而且还能够促进嵌入式实时软件构件化开发和软件开发环境都得到十足的发展。

4 构件化软件设计技术特点及开发过程

4.1 构件化软件设计技术特点

构件化软件开发的主要优点就是可以使软件开发活动变得更加简便、易行,减轻软件设计工作的负担,提高软件设计工作的效率,软件设计时根据软件框架将软件构件化的过程,是软件开发的重要流程,也是软件开发的主要工作之一,理想状态下的软件设计路径应该有以下两个优点 :一是框架结构具有良好的扩展性 ;二是框架中的构件好具有很强的重用性。

嵌入式实时软件系统的构件化开发的最主要的目标是实现软件系统开发的高效,而软件系统开发的效率主要体现在开发过程中对软件构件库中构件使用的频率,即重用率,软件开发过程中,重用率越高,构件化软件开发的效率就越高。所以基于构件化的软件开发方式发展面临的主要问题即如何在嵌入式实时软件系统开发过程中提高软件构件的重用率。AOP是目前实现构件正交的主要途径,但其对支撑环境要求较高,AOP支撑环境在嵌入式实时软件开发领域尚处于萌芽阶段,但AOP仍不失为一种理想的构件软件设计技术。鉴于目前多数嵌入式实时软件开发者具有较为丰富的领域知识与设计开发能力,有学者提出以领域作为正交判断法,以领域贯穿特性作为判断法则,实现构件公共操作,以此法析出的构件层次性好,可增加构件重用机会,且具有较高的正交性,甚至可集中显示非正交关系构件,进而提高软件扩展性。

4.2 支持重用的软件过程与软件平台

软件过程在软件开发活动中担当着至关重要的角色,而在当前的软件开发环境下,还不能使构件化软件开发技术与软件过程很好的进行匹配,会出现不能很好地为构件化软件开发活动提供过程支持,或过程系统不能有效的支持构件化软件的开发活动,不能系统的满足构件化软件开发活动的需求。所以立足于构件化软件开发的具体要求,将构件化软件系统开发活动与软件开发过程进行高度的匹配,同样是构件化软件开发活动中急需要解决的一个重要问题。软件过程是软件的开发活动中一个软件开管理主体,可以有效降低软件开发风险。对于嵌入式实时软件构件化开发,一个优秀的软件过程的目标与软件开发的功能目标必须要统一,并可以针对软件的构件化开发起到指导性的作用,使得嵌入式实时软件构件化开发活动在软件过程的指导下,始终能够保持对开发风险的高度敏感,确保构件化开发过程中的安全与稳定。同时因为构件化软件开发活动自身的特点,这一软件的开发过程还必须保证有较高的普遍指导意义,因为构件化软件开发活动就是一种针对不同软件性质、软件内容的一种软件构件的数据服务主体,在其运行过程中必然要为各种各样的嵌入式实时软件提供软件构件服务,相应的软件过程也必然会面临各种各样软件设计目标的考验,所以构件化软件设计活动的软件过程,要有普遍性和特殊性相结合的特性,为构件化软件设计活动提供更加广泛、深入的安全保障。

软件开发平台是软件开发的基础,Open Platform是目前较为成熟的构架化嵌入式平台,其自身有效性、可靠性较好、可以明显提高构件化软件开发活动的效率。

5 结论

随着社会经济技术的发展,嵌入式实时软件系统已经深入到社会经济发展的各个领域,产生了与人民生活水平息息相关的联系,并仍保持着极高的发展速度在社会经济各个领域快速发展,所以在嵌入式实时软件的开发活动中,始终强调较高的开发效率,而构件化开发在嵌入式实时软件开发过程中实现了较高的效率,经过实践的检验被证明是一种行之有效的软件开发形式,能够极大的提升软件开发的效率,是面向软件开发现代化、面向软件开发未来的软件开发形式。

摘要:随着社会经济的快速发展,电子信息产品在社会经济生活中得到广泛的应用,与之相对应的嵌入式实时软件的开发活动也变得炙手可热,成为软件开发领域关注的焦点。嵌入式实时软件在当今社会经济生活中得到广泛的应用,所以在其开发技术上,应该将开发重点放在组建规范化、标准化的开发过程和技术手段上。本文从开发技术研究的角度,将嵌入式实时软件的构件化开发相关技术与现实生活中的应用联系在一起,对嵌入式实时软件的构件化开发的相关技术进行探讨与研究。

上一篇:印刷质量管理下一篇:保护通道配置