嵌入式软件与硬件的集成测试过程研究

发布者:乘风翻浪最新更新时间:2010-12-18 来源: 现代计算机(专业版)关键字:嵌入式软件  测试过程  软硬件集成测试 手机看文章 扫描二维码
随时随地手机看文章

引言

    软件质量即业务生命。软件测试项目已经变得比以往任何时候都复杂和困难。1979年,Glenford Myers在《The Art of Software Testing》一书中提出“测试的目的是证伪”这一概念,推翻了过去“为表明软件正确而进行测试”的错误认识,为软件测试的发展指出了方向,软件测试的理论、方法在之后得到了长足的发展。但是,目前中国许多软件企业仍存在着“重开发、轻测试”的倾向,从而造成软件产品的质量问题日渐突出。因此,如何制定有效的软件测试过程、保障软件业的健康化发展,已成为当务之急。

    嵌入式软件作为软件家族中重要的分支,在当今人民生活和国防事业中得到越来越广泛的应用,由于嵌入式软件自身软硬件结合的复杂性、其质量的重要性,也造就了其软件测试的特殊性,那就是在执行正常软件测试的单元测试、集成测试、配置项测试、系统测试的过程中,还要考虑到软件与硬件的兼容问题,即需要进行软、硬件集成测试。本文将重点研究嵌入式软件与硬件集成时的测试过程。

    根据笔者在嵌入式软件测试工作过程中的经验,归纳提出了软硬件集成测试过程,同时结合当前软件测试理论前沿知识,把该测试过程进行重组和改进,并给出了测试模型,以期嵌入式软件与硬件集成测试过程能够在实际中广泛应用。

1 、嵌入式软件测试基本概念

1.1 嵌入式软件

    和普通计算机系统一样,嵌入式系统除了需要硬件结构和配置外,还需要相应软件的支持才能完整地实现系统的功能。目前,嵌入式系统的软件体系结构通常都采用以实时内核为基础的分层体系结构。组成嵌入式系统的软件大致可分为如下几层:

    驱动层(硬件抽象层):驱动层是最靠近硬件的一层,它属于最底层的软件,直接和硬件打交道,它为操作系统内核和应用提供使用硬件的接口即驱动的支持。

    操作系统层(实时内核层):该层的主要功能是协助最顶层的应用层更好地进行任务的调度、消息管理和异常处理等工作,由于该层的支持,特别是实时内核的作用,大大地减轻了嵌入式软件开发人员开发嵌入式软件的难度,同时也缩短了嵌入式软件的开发周期。

    应用软件实现支持层:嵌入式应用软件的实现需要编程语言的支持。目前,应用于嵌入式软件编程语言主要有面向过程的语言C和面向对象的编程语言C++、ADA等,应用这些语言开发的应用程序在嵌入式系统中运行时都需要相应的编译器或解释器的支持,转换成相应的机器码,才能在嵌入式系统中实现应用程序对应的功能。

    应用层:应用层软件主要由多个相对独立的应用任务组成,每个应用任务完成特定的工作,如计算任务和通信任务等,各个任务的运行由操作系统进行调度。

1.2 测试用语

    嵌入式软件(Embedded Software):嵌入式计算机系统中的软件,其与硬件联系紧密,并且通常要求强实时性。

    测试环境(TeST EnvirONment):执行测试程序所需要的硬件平台和软件资源构成的环境。

    测试用例(Test Case):为测试项规定输入、预期结果和一组执行条件的文档。

    测试程序(Test Procedure):执行测试用例的程序形式,其执行需要相应测试环境的支持。

    问题描述报告(Problem DescripTIon Report):对软件测试过程中发现问题的简要描述。

    更改的判定条件覆盖(Modified Condition/Decision Coverage, MC/DC):对设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次,每个入口点和出口点至少要唤醒一次,并且每个条件都显示能单独影响判定结果。


图1 嵌入式软件软硬件集成测试过程

2 、 软硬件集成测试过程

    软硬件集成测试应该在嵌入式软件集成测试完成的基础上进行。此时软件已按照功能模块组装成子系统,为了有效验证该子系统软件与硬件功能的协调性,保证软件在特定的硬件平台上能够按照设计的要求进行工作,完成其要求的功能、性能指标,就必须进行嵌入式软件的软硬件集成测试。

2.1 嵌入式软件测试过程

    软件开发人员在开发过程中,一般遵循如下步骤:

① 系统软硬件功能划分,形成软、硬件研制任务书。
② 系统软件需求分析。
③ 系统软件概要设计。
④ 系统软件详细设计。
⑤ 软件编码。

    测试人员恰恰以相反的步骤实现测试过程:

① 单元测试。软件单元测试的目的是检测程序模块是否符合《详细设计说明书》的要求。通常会采用白盒测试技术,如基于路径覆盖原理等。
② 集成测试(配置项测试)。软件集成测试的目的是检测程序是否符合《概要设计说明书》的要求。通常采用黑盒测试技术,但有时为了确保主要控制路径的覆盖测试,也会采用一定的白盒测试技术。
③ 软硬件集成测试。软硬件集成测试的目的是为了检测系统划分软硬件功能后,在软件集成测试完成的基础上,测试模块软件在硬件平台上的运行情况,主要是对嵌入式软件的实时性、嵌入性及功能性能指标的测试。
④ 系统测试。关注所设计的系统,在模块与模块集成之后构成完整系统时所表现出的质量指标,包括正确性、可扩性等。
⑤ 确认测试。针对确认标准的测试。确认标准由需求分析产生,所以实际上就是指规格化的需求,通常采用黑盒测试技术。

2.2 软硬件集成测试过程

    由图1可以看到,软硬件集成测试主要是在软件集成测试完成后,形成独立的配置项,加载到相应的硬件平台上进行测试,以确定软硬件是否能够协同工作,实现系统既定的功能。

    具体分为以下几个步骤:

① 系统测试组负责与系统工程组共同完成制定《软硬件集成测试计划》和《软硬件集成测试计划测试说明》的编写。
② 按软件*审管理办法,对《软硬件集成测试计划》和《软硬件集成测试说明》进行同行*审。
③ 根据*审意见,对《软硬件集成测试计划》和《软硬件集成测试说明》修改完善,履行审批手续后归档、入库。
④ 系统测试组按《软硬件集成测试计划》、《软硬件集成测试说明》,实施软硬件集成测试。
⑤ 系统工程组组织软件、硬件项目组协助确定和定位软件中存在的缺陷和错误。
⑥ 软件工程组对发现的软件缺陷和错误进行确认和更改。
⑦ 测试人员对更改后的软件配置项进行回归测试。
⑧ 软件设计人员将通过回归测试的软件入库。
⑨ 测试人员编制测试报告。

2.3 软硬件集成测试模型

    综上所述,嵌入式软件的软硬件集成测试过程主要是在需求规格说明完成的情况下,结合通用的标准、规范以及接口控制文件,与软件设计同步,编写软硬件集成测试的《测试的计划》和《测试的说明》,经过*审后,把被测试软件加载到目标机上运行,以检测嵌入式软件与硬件配合完成系统功能、性能的质量。软硬件集成测试模型如图2所示。


图2 软硬件集成测试模型

3 、 过程的可行性验证

    为验证上述过程的可行性及测试模型的有效性,某嵌入式软件开发项目组在开发过程中按照此过程及模型进行了软硬件集成测试。

3.1 软硬件集成测试硬件平台

① 目标机处理器:ARM核LPC2294单片机。
② 目标机外围接口:ARINC429,RS422,离散量、模拟量等。
③ 目标机调试接口:JTAGH并口,RS232串口。
④ 宿主机调试环境:ADS1.2开发平台。
⑤ 宿主机平台:PC机(Windows XP系统)、并口、RS232串口。

3.2 软硬件集成测试过程

① 目标机上电、宿主机打开调试环境。
② 加载经过集成测试的嵌入式软件到目标机,并启动运行软件。
③ 根据*审完成的测试说明及测试计划进行软硬件集成测试。
④ 根据测试结果编写测试报告。

3.3 测试

    结论根据上述测试过程测试完成的软件,在交付使用后,至今只收到用户的3份轻微级缺陷报告,比没有经过软硬件集成测试即进行系统测试的软件,质量有较大提高,节省了大量的缺陷修正时间,提高了企业效益。

4、结论

    软硬件集成测试是保证嵌入式软件质量的关键一步,嵌入式软件测试已成为目前嵌入式应用领域的重要研究方向。从国内外对嵌入式软件测试的研究中,可以发现其大多着重关注嵌入式软件的调试工作,而鲜见系统的对软硬件集成测试的研究。随着嵌入式软件规模应用的加大、质量保证要求的提高,对嵌入式软件的测试要求显然已经不能停留于仅仅通过调试就可以了,必然需要有更加全面的、系统化的测试过程。论文根据软硬件集成测试方面的经验,总结提出了软硬件集成测试的流程及模型,希望能够对嵌入式软件测试的研究提供帮助。

关键字:嵌入式软件  测试过程  软硬件集成测试 引用地址:嵌入式软件与硬件的集成测试过程研究

上一篇:ARM嵌入式系统应用中的问题总结分析
下一篇:采用ARM+Linux 2.6 内核的仪器控制系统设计

推荐阅读最新更新时间:2024-05-02 21:13

Actel推出免费嵌入式软件SoftConsole 2.2版
  爱特公司 (Actel Corporation) 宣布推出新一代嵌入式设计免费开发环境SoftConsole 2.2版本。这一新版软件开发环境包括了用于程序调试和下载的增强功能,备有全新的闪存负载器 (loader),并支持Microsoft® Vista操作系统。SoftConsole充分利用Actel IGLOO® 低功耗FPGA和Fusion® 混合信号FPGA的优点,为软件工程师提供单一的编程环境,让他们编写和调试用于爱特包括ARM® Cortex-M1TM 和Core8051等嵌入式处理器系列的C和C++ 程序。   爱特公司IP工程技术总监Tom Moore称:“系统设计人员使用带有我们嵌入式内核的全新Soft
[嵌入式]
通过测试避免嵌入式软件缺陷
当表达一个要求时,商务人员的期望是实现只要能够正常工作。但对于最终产品是否真正按料想的方式工作,在商务或软件历史上就几乎没有达成过一致意见。从工程角度看,与性能、可靠性、安全性等相关的任何问题如果不能满足要求就都应该被视作缺陷。而从商务角度看,人们认为避免这些问题本身就是所表达的要求的一部分。 商务期望与在开发和测试过程中的要求演变之间的这种隔阂原因比字面意义上要深刻得多。这是与传统组织文化相关的典型症状,即工程师认为商务人员不理解软件开发过程的复杂性。与此同时,组织的商务侧人员认为工程师患有聪明开发人员综合病症(SDS)——一种病态失调,即工程师所做的都是他们认为最好的,因为他们聪明嘛。 实现策略 那么解决方案是什么?
[测试测量]
通过<font color='red'>测试</font>避免<font color='red'>嵌入式软件</font>缺陷
在VIM中实现对嵌入式软件的调试
  引言   GNU免费提供了一整套工具链,为嵌入式Linux程序的开发和调试提供了完整的支持。其强大的gdb调试工具可以方便地对嵌入式平台上的程序进行跟踪调试;而Linux下强悍的VIM编辑器,不仅可以方便地调用make文件对代码进行编译,而且通过脚本的配置还可轻松地成为高效的代码编辑环境。流传着这样一种说法,“世界上的程序员分三种,一种使用Emacs,一种使用VIM,剩余的是其他。”不去辩论这句话的对与错,单纯从字面意义上来理解,也足见VIM的魅力了。因此,在VIM中实现对嵌入式软件的调试,我们便得到了一个高效、稳定的嵌入式Linux的开发环境。   1 gdb对嵌入式软件的调试模式   许多非Linux的嵌入式系统已经
[单片机]
在VIM中实现对<font color='red'>嵌入式软件</font>的调试
电磁兼容预测试在大功率开关电源研制过程中的重要性
图一           图二 图三 图四 图一 为电源进线端采集的传导骚扰值。 图二 为串接进线电抗器后,电源进线上采集到的传导骚扰值,可看出骚扰值在1M—5M频率范围内降低了20---30 db。 图三 为串接EMI滤波器后,电源进线上采集的传导骚扰值。可看出曲线在300K到10M 范围内基本都降到了红线以下,其中最大部分下降了40db 左右,效果很明显。 图四 为同时串接EMI和进线电抗器后,电源进线上采集的传导骚扰值,从图中可看出整体指标都已在极限值以内,达到了预期效果。 由于大功率开关电源成本较高,如果在定型之前就能对它的EMC进行预测试,改进不合理的设计,进行设计优化,抑
[电源管理]
电磁兼容预<font color='red'>测试</font>在大功率开关电源研制<font color='red'>过程</font>中的重要性
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved