首页 > 范文大全 > 正文

DSP汇编语言软件测试方法研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇DSP汇编语言软件测试方法研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:该文深入分析了dsp汇编语言软件的测试难点,给出DSP汇编语言软件的测试策略,对DSP汇编语言软件测试具有重要的应用意义。

关键词:DSP;汇编语言;测试

中图分类号:TP313文献标识码:A文章编号:1009-3044(2008)23-963-02

DSP Assembly Language Software Testing Method

HU Qing-xia, LIU Qing-feng

(91413 Units, Qinhuangdao 066001,China)

Abstract: The in-depth analysis of the DSP assembly language software testing difficult, given the DSP assembly language software testing strategy, the DSP assembly language software is an important test of significance.

Key words: DSP; assembly language; test

1 引言

目前,DSP硬件系统已具有了很高的可靠性,但其软件系统,特别是用汇编语言设计编写的较为复杂的软件系统,可靠性总是难以得到保证,更是缺少完整的质量保证和评估体系,这已经成为DSP应用方面亟待解决的一个问题。对DSP汇编语言软件的测试与一般的软件测试不同,其自身的特点决定了测试面临的困难。本文首先对其测试难点进行分析,然后给出了DSP汇编语言软件的测试方法

2 DSP汇编语言软件环境的复杂性分析

2.1 与硬件结合紧密,测试环境难以搭建和选择

汇编语言的程序是烧制到DSP芯片中运行的,DSP芯片种类繁多。这些芯片的外部管脚、内部存储器分配都各不相同 。在搭建宿主机测试环境时必须选择各种不同的相对应的芯片,然后配合仿真器与宿主机连接。这些硬件的配置本身就增加了测试难度,然而这些仿真环境总是和目标环境之间有着不小的差异,比如目标环境的中断难于模拟等。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小,但毕竟是在模拟环境中进行的。目前的趋势是把更多的测试转移到宿主环境中进行,但是,目标环境的复杂性和独特性不可能完全模拟。

2.2 I/O通道少,测试数据获取比较困难

在DSP汇编语言软件的测试中给主机上载测试数据是很困难的。目前主要是基于以下3 种方式:1)实际的物理通道;2)开发工具IDE的虚拟IO功能;3)直接读取内存区数据。第一种方式就是目标机和主机之间具备物理的通信方式,比如以太网、串口、并口、USB等。这种方式要求系统必须具备这种通信方式和通信软件,一般只适用于系统级的测试。第二种方式是借助开发工具,比如TI CCS,这种方式调试较为复杂也容易出错。第三种方式则是需要占用较多的内存资源。

2.3 实时性要求较强

DSP软件一般都用作控制系统的内核,所以有很高的实时性要求,而实时性的测试是一般的测试方法和测试工具都难以实现的。

2.4缺少相应测试工具

汇编语言结构和语法都比较繁琐和冗长,这首先使测试人员理解程序变得困难,又因为DSP芯片的多样性,使得开发针对DSP汇编语言软件的通用测试工具几乎是不可能的。因此,在测试时,只能够使用一些测试工具(比如覆盖率分析工具等),而把测试的重点放在人工的代码审查上面,这就要求测试人员要很熟悉相应芯片的用法并且还要与开发人员充分的沟通。

3 DSP汇编语言软件的测试策略

DSP汇编语言软件是最难测试的软件之一,必须制定有效的测试策略。在搭建测试环境时,要寻求宿主机与目标机之间的平衡,即要对目标环境和宿主环境的测试内容有所选择,在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而中断测试、硬件接口测试、系统集成测试等必须要在目标环境中进行。而在测试环境搭建完成之后,考虑到重要性以及测试执行先后顺序,把整个测试依次分为以下几个不同阶段。

1)代码审查阶段。对于DSP汇编语言软件,代码审查是整个测试的重点,要占到整个测试周期的60%。同时,代码审查又是功能测试编写测试用例之前的必要步骤。代码审查最好是在开发环境中通过硬件仿真进行。

2)功能测试阶段。在功能测试阶段,采用功能分解法、等价类划分和猜错法等方法,根据软件需求规格说明中所规定的软件正式合格项设计并执行测试用例,以验证其功能是否满足需求规格说明的要求,并对其功能的适合性和准确性进行验证。对于DSP汇编语言软件系统,功能测试必须首先进行模块化处理,分离出每个模块的输入输出。

在设计功能测试用例时,也包括对边界值的测试,即对输入域(或输出域)的临界状态、数据结构、状态转换、功能界限等的边界或端点情况下的运行状态的测试。此外,设计功能测试用例时运用覆盖测试工具辅助测试用例的设计,以达到功能测试的充分性。

3)性能测试阶段。在DSP软件系统中,程序的性能是非常重要的,要严格根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。在使用环境中,软件的失效过程要平稳(电机运动惯性问题),所以,不仅要检查软件工作过程,也要检查软件失效过程。

可以使用测试工具CODETEST主要对DSP下行的伺服驱动器控制软件中有时间要求和数据处理精度要求的软件合格性项进行测试,并把重点放在测试其实际时间特性与实际数据处理精度上。时间特性主要包括以下几个:中断延迟时间、任务上下文切换时间、任务响应时间、任务创建/删除时间、交替信号量时间、取得/释放信号量时间、交替消息队列传输时间。

4)接口测试阶段。为了保证正确地测试,还须要检验软硬件之间的接口。对接口的测试主要利用各种不同类型接口的监视工具。比如对TMS320LF2407板汇编软件串口测试,可以使用串口监控器EtherPeek.NX,人工设置各软件从RS232串口接收的输入/输出,验证各软件对输入/输出的反应,并监控其输入/输出内容的格式与数据位是否与接口规范一致,验证各接口的正确性和一致性。

5)结构覆盖测试阶段。使用测试工具LDRA TestBed对被测软件程序进行插装。插装可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,也可以是二者相结合。基于测试用例,执行插装后的程序,提取语句/跳转覆盖信息,将程序的执行表现与编码意图进行比较,衡量软件测试工作的充分性。代码覆盖分析工具可能侵入代码的执行,影响实时代码的运行过程。基于硬件的代码覆盖分析工具的侵入程度要小一些,但是价格一般比较昂贵,而且限制被测代码的数量。

6)强度测试阶段。在模拟环境下,打开被测软件全部数据采集与数据通信通道,运行全部模拟外设,长时间运行功能测试和接口测试等相关测试用例,检测交流伺服驱动器控制软件在设计能力下的运行情况。

7 )安全性测试阶段。采用人工测试的方法对被测软件进行安全性测试。检测用户是否能对被测软件进行灾难性操作,被测软件是否具有关键操作的安全性保护等功能。对于电机控制系统的DSP软件,主要检查过压、过流、低压、低流、断电、异常复位等灾难性操作。

8)可恢复性测试阶段。采用人工测试的方法对被测软件进行可恢复性测试。用人工干预的手段模拟硬件故障、链路故障、电源故障等,故意造成系统出现异常,并由此检查被测软件是否具有错误探测功能,在故障发生时能否保护正在运行的作业和系统状态。并检测被测软件在重启之后能否正常地继续进行工作,并不对系统造成损害。

9)回归测试阶段。对于在测试过程中发现的问题,开发方应及时对其进行修正。修正后由测试方通过回归测试进行确认。回归测试必须将所有功能测试、接口测试等测试用例重新执行一遍,以验证所有问题已经全部解决,并且没有引入新的问题。

4 结论

此方法研究在一定程度上减轻了DSP汇编语言软件的测试难点,对以后的测试实践有重要的参考意义。此策略的充分性和自动化程度是今后工作和研究的方向。

参考文献:

[1] 郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1992.

[2] 刘艳萍.DSP技术原理及应用教程[M].北京:北京航空航天大学出版社,2005.

[3] 靳超.硬件辅助的软件在线测试和分析技术[M].北京:奥吉通科技有限公司,2004.