ENGLISHCasePlayer2评估版下载
  产品概览
嵌入式开发解决方案
软件工程解决方案
DSP应用产品
总线测试解决方案
宽带应用解决方案
信息安全终端解决方案
军用PDA及其他产品
行业应用PDA解决方案
研发及定制服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

首页 >> 产品信息

产品--软件工程解决方案--嵌入式软件测试

ASMTester 汇编语言软件集成质量保障平台 

1。产品概述

软件测试是保证软件质量、提高软件可靠性的重要手段,而单元测试又是软件测试过程中的一个非常重 要环节,尤其针对汇编语言的特点:

•  非结构化程序,由机器指令组成的机器语言程序 “ 符号化 ” ;

•  与机器语言一一对应;

•  汇编语言与 CPU 芯片紧密相关;

• 效率高于高级语言(指程序的目标代码的长短和程序运行的速度)。

因此在嵌入式系统(特别是实时要求较高的嵌入式系统、设备的自检、系统初始化、实际的输入/输出 设备的操作……等常用汇编语言)中,对汇编语言的测试实施单元测试及集成测试是非常重要的测试环节。

AMSTESTER——是嵌入式系统汇编语言单元、集成的全数字仿真、测试分析系统,可以为用户提供一个方便、有效的测试手段,完成对汇编语言软件的测试任务。无需软件插装,不占用内存,在嵌入式领域对于 内存资源紧张、实时性要求高的汇编语言程序的测试尤为适用。

它的主要功能特点如下

•  编辑维护管理测试用例

•  覆盖率分析

•  片上数据追踪分析

•  实时分析程序运行时间

•  性能分析

•  内存动态管理

•  记录报告测试结果

•  查阅测试的历史信息

•  完全支持嵌入式系统数据 IO 、中断的仿真

2 功能特点

•  测试用例管理和测试结果管理 : 当被测程序单元已被修改时,系统将重新创建工作区,并将修改后的被测程序单元备份或系统将已修改的被测程序单元恢复为修改前的版本。可对当前被测程序单元的测试用例进行编辑,包括驱动模块、桩模块及端口描述文件的编辑。对编辑好的驱动模块、桩模块及端口描述文件 , 可进行配置测试用例,并可对测试用例进行增、删、改、选用等操作。

•  覆盖率分析 : 语句覆盖率和分支覆盖率动态分析 . 根据具体执行情况,统计出代码覆盖率,可累计)

•  性能分析: 可方便地选择分析方式,进行多种性能分析。如函数、语句、变量、 调用次数和时间嵌套等
      分析,如 树状、时序方式、数值 方式等。且可动态显示。

•  设置数据追踪 可对所设置的寄存器或变量追踪其最大值、最小值、平均值和单步值。

•  设置程序结束 : 鉴于汇编语言程序的特点,程序不能自动执行结束。用户可设置程序结束行,当动态测试执行到该行后,自动结束。 也可手工结束动态测试。

•  设置检测对象 测试开始前,通过对查看或检测的对象进行设置。在每次动态测试结束时,可通过查看某个对象(寄存器、变量或内存单元)的值来判断本次动态测试的程序运行结果是否正确。

•  查看测试进度 : 若动态测试执行很长时间,可通过查看测试进度查看当前测试进行的情况。并显示结果提示。

•  测试结果 显示 :

- 显示被测程序单元的语句覆盖率、分支覆盖率结果

-  任意查看历史覆盖率信息结果或累计覆盖率信息结果

-  被测程序单元的执行情况

-  查看数据追踪结果

-  查看端口输出结果

-  针对一个被测程序单元,对所有执行过的测试用例的覆盖率结果进行累计,通过累计覆盖率结果能够反应所做的单元测试是否全面,是否达到了规定的单元测试覆盖率指标的要求

-  报告以可定制的 Word 格式输出

3 突出优势

由于汇编测试的有诸多困难之处, AsmTester 更体现了它在汇编测试方面的优势:

测试难点一

功能测试难于进行,数据难于跟踪:

•  脚本编写困难,驱动和桩函数没有统一格式;

•  测试用例检查的不只是变量值;

•  通用寄存器多次使用,数值会不断变化。

解决之道一

•  AsmTester 的驱动和桩:驱动和桩都采用相对应的汇编语言形式,不需要重新学习脚本,开发和测试人员都能很快上手。

•  AsmTester 动态功能测试:对设定要进行数据验证的对象(包括程序或数据内存、片内内存、寄存器、以及变量),在每次动态测试结束后,给出其比较结果,并自动写入测试报告,在每次动态结束后,自动给出当前所有 CPU 寄存器的状态值。

•  AsmTester 数据追踪:对设定要追踪的对象(包括程序或数据内存、片内内存、寄存器、以及变量)的追踪,在测试结束时,给出其测试过程中的变化过程(包括最大值、最小值、均值以及每次数据变化的过程)

测试难点二

覆盖率验证困难

•  由汇编语言的实时性决定,适用于高级语言的插装方式测试不适用于汇编的测试;

•  插装代码不属于原来的指令,被测代码空间上膨胀,时间上也膨胀了,对于嵌入式软件上来说,是不可接受的。

•  覆盖率要求语句覆盖和分支覆盖达到 100%

解决之道二

•  通过全数字仿真的方式计算覆盖率;

•  纪录每个测试用例经动态测试后,统计出的语句覆盖率和分支覆盖率;

•  多次测试后,对语句覆盖率和分支覆盖率的累计统计。

•  详细地列出每次动态测试过程中,被测程序的执行过程(包括分支的走向、语句执行的次数、语句占用的时间、跳转的方向以及次数等),用户可以通过这些信息,完全了解程序的执行过程,发现和分析问题。

测试难点三

端口和硬件地址操作难以控制

•  汇编语言直接与硬件打交道;

•  对端口有 in 和 out 的操作;

•  某个硬件地址的数据是不断变化的。

解决之道三

完善的嵌入式硬件环境模拟机制 (I/O) ,完善的 I/O 描述机制

•  提供了一整套简单、易学的 I/O 描述方法;

•  提供了一整套有效的 I/O 数据生成模式(如定时、键盘以及不同波形信号产生方式);

•  任何嵌入式软件可以不经任何修改,即可在模拟环境中运行,并完成单元测试工作。

测试难点四

中断服务难以模拟

•  中断的发生难以模拟

•  中断触发的程序难以测试

•  中断有多种类型

解决之道四

•  提供了一整套简单、易学的中断描述方法;

•  不仅可以产生两个定时中断,而且可以在不增加任何硬件投入的状态下,通过数据描述产生外部中断和串口中断;

•  用户通过对外部中断的描述,可以为配置不同类型的外部模拟中断的输入。

4 系统配置及要求

系统要求

•  Microsoft Windows98/ 2000/ NT/ XP/2003 操作系统;

•  Microsoft Word 2000 以上

•  CPU PⅢ 350MHz 以上;

•  至少 64 兆内存;

   至少 100 兆可用硬盘空间。

支持汇编语言类型:

AMSTESTER 分别支持 8031/51 、 8086/88 、 8096/98 、 80386EX 、 TMSC3x 、 TMSC6x 、 1750A 汇编语言软件的单元(集成)测试任务

5 客户

中国科学院空间中心

中国科学院高能物理所

中国科学院南京紫金山天文台

兵器集团系统所

 

 
返回