通用嵌入式系统软件测试平台的设计
嵌入式软件的测试方法与技术

嵌入式软件的测试方法与技术引言嵌入式软件的测试方法与技术是保证嵌入式系统质量的关键环节。
随着科技的发展,嵌入式系统在各个领域得到了广泛应用,从家用电器到汽车,从医疗设备到航空航天,都离不开嵌入式软件。
而这些应用领域对于系统的可靠性和安全性要求越来越高,因此对于嵌入式软件的测试方法与技术也提出了更高要求。
一、嵌入式软件测试方法概述1.1 黑盒测试黑盒测试是一种基于功能需求和接口规范来进行测试的方法。
在黑盒测试中,我们不关心被测系统内部是如何实现的,只关注其输入和输出之间是否符合预期。
这种方法可以很好地验证系统是否满足需求,并且可以提前发现潜在问题。
1.2 白盒测试白盒测试是一种基于代码内部结构来进行测试的方法。
通过分析代码逻辑、覆盖率等指标来评估被测系统是否符合预期。
白盒测试可以发现代码中隐藏的逻辑错误和漏洞,并且可以提供更详细的测试覆盖率信息。
1.3 灰盒测试灰盒测试是黑盒测试和白盒测试的结合,既关注系统功能,也关注系统内部结构。
在灰盒测试中,可以利用黑盒测试的方法验证系统功能,同时通过白盒测试的方法发现潜在问题。
这种方法可以综合利用黑白两种方法的优点。
二、嵌入式软件测试技术2.1 静态分析技术静态分析技术是一种通过分析源代码或二进制代码来发现潜在问题的方法。
静态分析可以帮助开发人员在编码阶段发现错误和漏洞,并且可以提供代码质量评估和优化建议。
2.2 动态分析技术动态分析技术是一种通过运行时监测来评估系统行为和性能的方法。
动态分析可以帮助开发人员了解系统运行时状态,并且可以提供性能优化建议。
2.3 模糊测试技术模糊测试是一种通过生成大量随机输入来验证系统鲁棒性和安全性的方法。
模糊测试可以帮助开发人员找到输入错误处理不当或存在漏洞的地方,并且可以提供安全防护建议。
2.4 测试自动化技术测试自动化技术是一种通过编写测试脚本和使用自动化工具来提高测试效率和准确性的方法。
测试自动化可以帮助开发人员快速执行大量的测试用例,并且可以提供准确的测试结果。
嵌入式软件测试设计技术

潜在的各种错误和缺陷 , 以确保系统的质量。
能的要求 , 判断软件是否满足这些需求规格。为了 保证正确地测试 , 须要 检验软硬件之间的接 1。 还 3 嵌入式软件黑盒测试的一个重要方面是极限测试。 在使用环境中, 通常要求嵌 入式软件的失效过程要 平稳 , 所以黑盒测试不仅要检查软件工作过程, 也要
阶段是 嵌人式 软件 所 特有 的 , 目的是 验证嵌 入 式软 件与其 所控制 的硬 件设备 能否 正确地交 互。
2 1 白盒测试 与黑 盒测试 .
消费电子产品、 交通系统、 工业过程控制等。嵌入式 系统 中软件的规模和复杂性正在迅速增加。而嵌入
白盒测试一般要求测试人员对软件的结构和功
确保嵌 入式软 件 的质 量。
关键词: 嵌入式; 软件 ; 测试; 设计; 技术 中图分类号:P 1 . T 3 15 文献标识码: A
文章编号 : 0 — 29 20 )4 00 — 3 1 2 2 7 (08 0 — 14 0 0
Te h iu fE b d e f r s n sg c nq e o m e d d Sot eTe ta d De in wa
通过硬件仿真进行 , 选取的测试工具应该支持在宿 主机环境 中的测 试 。 在进行嵌人式软件黑盒测试时, 要把系统的预 期用途作为重要依据 , 根据 需求 中对负载、 定时、 性
中规定的用户需求 , 是软件质量保证 的关键 步骤。
测试 的 目标 : 以较少 的用例 、 间和人 力找 出软件 中 时
rpdy a d e e t ey E e d d s f ae i temo t iiut ob etd T xmieteef in yo a il n f ci l. m d e ot r sh s dfc lt ets . oma i z fce c f v b w e h i
嵌入式软件测试规范

嵌入式软件测试规范篇一:嵌入式软件测试和验证嵌入式软件测试和验证一、软件测试1.1定义1993 年 IEEE 对软件测试给出了一个综合的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②是对①中所述方法的研究。
它指出软件工程是一种层次化的技术。
科学的测试是贯穿整个产品生命周期中的测试。
要突破原来对测试的理解,着眼于整个软件生存期,特别是着眼于编码以前各开发阶段的测试工作,以保证软件的质量。
1.2软件测试的真正目标软件测试的真正目标是寻找bug。
即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,这样,测试才会是最有效率的。
但即使在时间非常充足的情况下,也不可能测试出每一个bug,所以必须将测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估。
避免采用知道软件可以处理的测试数据和操作;测试人员的任务是在测试中扩大软件的边界。
在设计自动化测试时,也要避免“踩灭”失败条件的误区。
测试人员的任务不是创造大量的总是可以干净的成功运行的测试。
测试人员需要去寻找和理解故障条件。
不要浪费时间去想软件产品中是否存在bug。
它肯定有bug,并且不可能全部找出它们。
测试的目的是指望测试人员找出那些最有影响的bug。
必须要做的是,要从消极的角度考虑这些问题。
1.3软件测试的意义1.发现软件错误;2.有效定义和实现软件成分由低层到高层的组装过程;3.验证软件是否满足任务书和系统定义文档所规定的技术要求;4.为软件质量模型的建立提供依据;即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。
1.4软件测试方法从不同的角度来看,可以将软件测试的方法分为以下几类:根据是否需要运行被测软件的角度,软件测试分为静态测试方法和动态测试方法。
根据在动态测试中是否需要了解被测软件代码结构的角度,又分为白盒测试和黑盒测试。
关于嵌入式软件测试平台的配置探析

关于嵌入式软件测试平台的配置探析摘要:本文系统地总结了构建软件测评中心所必须具备的条件,给出了软件测试的详细过程以及各个阶段的测试工具。
经过充分的市场调研,并结合嵌入式软件的特点及工作需求,开发了一个嵌入式软件评测的平台,对嵌入式软件测试平台配置的研究有一定的参考价值。
关键词:软件质量与测试嵌入式软件测试平台微电子技术的发展创新带来了嵌入系统在航天、军事、通信等行业的广泛应用,尤其是军方软件对嵌入式的质量要求极高,一定要经过第三方评测,如果一味等待最终软件测试就会很被动,而且过程中的错误没能及时发现的话也会给最终集成测试的检测带来很大麻烦,所以创建自己的软件测试平台尤为重要。
从软件设计之初就利用软件测试工具检测各个阶段的成果,及时发现并纠正错误,从而达到软件测试与软件研发同步。
笔者结合市场调研和嵌入式软件自身的特点,搭建了自己的软件评测平台。
1 建立软件评测中心管理体系软件评测中心一定要有规范化的体系,做到评测的实时性和准确性,而要实现评测规范一定要做到以下几点。
(1)首先要具备专业测试的资格,拥有设备齐全的专业实验室;(2)要有网络和连接设备,使之满足不同的测试需求;(3)要搭建完整的软件运行和数据库支持平台;(4)有专业的测试工具和一流的测试人员。
这套管理系统应该采用过程方法和系统方法来建立,对各个过程进行监测管理以实现既定目标,与此同时也要使得整个系统相互协调与配合,达到总体作用大于分过程作用之和的目标。
之所以要建立这样的评测管理系统,是为了在既定的限制之下能最大程度地排除软件错误和缺陷。
2 软件评测的过程通常,为了保证测试的有效性和准确性,我们会人为地将测试过程分成几个步骤,详见图1的流程图,如下分别是几个步骤的主要任务。
2.1 代码会审由几个人通过读代码和讨论代码对程序的逻辑性进行分析的过程。
一份高质量的代码应该具备较高的可靠性和安全性,内部模块的划分要符合逻辑,市场上已有检查这一阶段的测试工具,如CodeWizard、QAC/C++等;这一阶段除了要保证代码正确性之外还要对代码质量进行检测,这类的检测工具主要包括McCable、Logiscope 等。
嵌入式软件测试标准

嵌入式软件测试标准嵌入式软件测试是指针对嵌入式系统中的软件进行的测试活动,其目的是确保嵌入式软件的质量和可靠性。
嵌入式软件通常运行在嵌入式系统中,这些系统可能是汽车电子控制单元、医疗设备、智能家居设备等。
由于嵌入式软件的特殊性,其测试标准也需要有相应的规范和要求。
本文将介绍嵌入式软件测试标准的相关内容。
首先,嵌入式软件测试标准需要包括测试计划的编制。
测试计划是测试活动的指导性文件,其中包括测试的范围、目标、资源需求、进度安排、风险评估等内容。
在嵌入式软件测试中,测试计划的编制是非常重要的,它能够确保测试活动按照既定的目标和计划进行,有助于提高测试效率和测试质量。
其次,嵌入式软件测试标准还需要包括测试用例的设计。
测试用例是测试活动的核心,它描述了针对特定功能或场景的测试步骤、输入数据、预期输出等信息。
在嵌入式软件测试中,测试用例的设计需要考虑到嵌入式系统的特殊性,例如对实时性、稳定性、安全性的要求。
因此,测试用例的设计需要充分考虑这些特殊要求,以确保测试覆盖的全面性和有效性。
另外,嵌入式软件测试标准还需要包括测试环境的搭建和管理。
测试环境是进行测试活动所必需的硬件、软件、工具等资源的集合,它对测试活动的顺利进行起着至关重要的作用。
在嵌入式软件测试中,由于嵌入式系统通常是由硬件和软件共同组成的,因此测试环境的搭建和管理需要考虑到这些特殊性,确保测试环境能够准确地模拟嵌入式系统的实际运行环境。
最后,嵌入式软件测试标准还需要包括测试结果的分析和报告。
测试结果的分析和报告是测试活动的总结和输出,它能够为软件质量评估和改进提供重要依据。
在嵌入式软件测试中,由于嵌入式系统的特殊性,测试结果的分析和报告需要充分考虑到实时性、稳定性、安全性等方面的要求,以确保分析和报告的准确性和有效性。
综上所述,嵌入式软件测试标准是确保嵌入式软件质量和可靠性的重要保障,它涵盖了测试计划的编制、测试用例的设计、测试环境的搭建和管理、测试结果的分析和报告等内容。
如何做好嵌入式软件开发测试

如何做好嵌入式软件开发测试嵌入式软件测试是确保嵌入式系统的稳定性和可靠性的关键步骤之一、嵌入式软件的特点是运行在嵌入式系统中,并受到硬件限制、资源限制以及实时性要求的约束。
因此,嵌入式软件测试需要特别的关注点和方法。
下面是一些关键的步骤和技巧,以保证嵌入式软件开发测试的质量。
1.理解需求和软件架构:在进行嵌入式软件测试之前,必须对软件系统的需求和架构有充分的理解。
这将有助于测试人员了解系统的功能和性能要求,从而制定相应的测试策略和计划。
2.制定详细的测试计划:测试计划是一个指导测试活动的重要文档。
它应该明确规定测试的范围、目标、方法、资源和时间等方面的内容。
测试计划还应该包括测试的策略、用例和检查点等详细信息。
3.设计和制定测试用例:测试用例是测试的基本单元,用于验证系统的各种功能和性能。
在嵌入式软件测试中,测试用例的设计和制定可能会受到资源和实时性要求的限制。
因此,测试人员应该注意测试用例的覆盖率和效率,以确保尽可能多地测试到系统中的错误。
4.搭建适当的测试环境:在进行嵌入式软件测试之前,必须搭建适当的测试环境。
这包括硬件、软件、工具和数据等方面的准备。
嵌入式系统的测试环境应尽可能接近实际使用环境,以确保测试结果的准确性和可靠性。
5.进行功能测试:功能测试是嵌入式软件测试的核心。
它涉及对软件的各种功能进行验证和确认,以确保其满足需求和规范。
功能测试应包括正常情况下的功能测试和异常情况下的功能测试,以确保软件在各种情况下都能正常工作。
6.进行性能测试:性能测试是确定系统响应时间、吞吐量和资源利用率等方面的测试。
在嵌入式软件测试中,性能测试可能针对处理速度、内存占用和能耗等方面进行。
性能测试应尽可能接近实际使用情况,以确保软件在实际运行时能够满足性能要求。
7.进行安全测试:安全测试是确保嵌入式系统的安全性和可靠性的关键测试。
在进行安全测试时,测试人员应注意系统的漏洞和错误,以及可能的攻击和破坏方式。
嵌入式系统接口转换计算机软件测试平台研制

32技 术特 点 . 接口 转换计 算机 软件第三方配置项测试平 台建设 除了能够实 现与实装设备上一致 的所有 网络通讯 、 口通, 接 还包 括 以下几个 技术特点 : () 发外 围模拟器 , 1 开 使各模拟器功能更加全面 , 可以模拟实装 设备上无法实现 的接 E 、 l边界 、 安全性等异常状态的测试激励 , 来验
系统 与串 口通讯设备之 间的信息 交换 ; )s 4 2 ( R 一 2 串行通讯接12 4 : : : I 外部接 口, 口转换 及 时统插 件通过 串 口接收 时统设 备的准秒脉 接 冲。 针对 接 口转换计算机软件第 三方测评需要 , 建设接 口转换计算 机软件测 试平台 , 对被 测软件 的功能 、 性能、 口、 界、 接 边 强度 、 安全 性等 方面 开展 配置项测试 。 试平台的研制包括被测件运行环境 、 测 外 围 通 讯 环 境 、 试 管 理 环 境 和 辅 助 环 境 四 个 主 要 组 成 部 分 的 建 测
软件设计与开发
嵌入式系统接 口转换计算机软件测试平 台研制
金 维 佳
( 海航 天 电子技 术研 究所 上 海 2 1 0 ) 上 0 19
摘要 : 嵌入 式 系统 的 专 用程度 和 可 靠性要 求高 , 用的测 试 方 法不 能对其 进 行有 效 和 完善 的测 试 。 常 本文 分析 了嵌入 式 系统接 口转换 计算机 软 件 测 试要 求 , 制 了第 三 方 配 置 项测 试 独 立 的 测试 平 台 , 研 包括 测 试 平 台 的主 要 功 能 、 术 特 点 、 台结 构 和组 成 、 技 平 以及 平 台的校 验 测试 , 并 在 该 平 台上 完成 了接 口转 换 计 算机 软件 的 第三 方 配置 项测 试 实验 , 证该 平 台具 有很 好 的针 对 性和 适 用性 。 验 关键词 : 口转 换计 算机 软件 软件 测 试 嵌入 式 系统 接 中 图分 类号 : P 9 T 3 文献标识 码 : A 文章编 号 : 0 79 1 ( 0 10 . 1 80 1 0 —4 62 1 )90 5 .2
嵌入式系统软件测试及测试案例开发

嵌入式系统软件测试及测试案例开发测试是传统软件开发的最后一步。
整个软件开发过程,需要收集要求、进行高层次的设计、详细设计、创建代码、进行部分单元测试,然后集成,最后才开始最终测试。
最佳的开发实践应包含代码检查这个步骤。
然而代码检查一般只能找出70%的系统错误,因此完美的测试环节绝对必不可少。
测试就像个复式记帐系统,可以确保将缺陷扼杀在最终推出的产品之前。
在所有其它的工程实践中,测试都被视为基本环节。
比如,在美国,每一座联邦政府出资修建的桥都必须经过大量的风洞测试。
而在软件领域,测试并没有很受重视。
尽管测试是所有工程实践准则的关键部分,但编写测试程序却感觉是在浪费时间。
好在嵌入式系统设计界内的许多领域已经将测试作为其工作的核心部分,他们认识到将这个关键步骤放在项目末期极不明智,因而主张同步地编写测试程序和应用程序。
嵌入式系统软件测试在诸多方面都与应用软件测试一样。
不过,应用测试与嵌入式系统测试之间还是存在一些重要差异。
嵌入式开发人员一般会用到基于硬件的测试工具,而这类工具通常不会用于应用开发过程中。
此外,嵌入式系统一般都有些独一无二的特性,这些特性应该在测试计划中得以体现。
本文将介绍测试和测试案例开发的基础知识,并指出整个嵌入式系统测试工作的特有细节。
何时测试以及如何测试从图1可以看出,在可行的条件下,测试应尽早展开。
一般来讲,最早的测试是由最初的开发人员进行的模块或单元测试。
遗憾的是,开发人员大多对如何建构一整套测试例程以进行测试所知不足。
由于精心设计的测试例程通常直到集成测试时才能使用,因此许多在单元测试过程中就能找出的缺陷直到集成测试时才会被发现。
比如,硅谷的一家大型网络设备厂商为找出其软件集成问题的关键原因,进行了一项研究。
这家厂商发现,在项目集成阶段找出的缺陷中,有70%是由在集成之前从没被执行过的程序所产生的。
图1:改正问题的成本。
单元测试:开发人员在单独进行模块级测试时一般是编写存根代码(stub code)取代余下的系统软硬件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007,43(15)1引言目前,软件测试的理论和方法应用于普通个人计算机和大型机中已经非常成熟,这主要得益于它们的硬件资源比较丰富,而且内部结构和外部接口高度统一,并且有强大的操作系统支持。
相对而言,嵌入式系统由于受自身内存不丰富,外设资源少,体系标准不统一,没有操作系统,或者难以获得操作系统足够支持等因素的制约,嵌入式软件的测试必须高度依赖于自身的调试平台,而往往这样的调试平台不足以进行全面的软件测试。
通用嵌入式系统软件测试平台(以下简称通用测试平台)通过仿真的手段,在PC机上模拟各种嵌入式系统,让嵌入式系统软件在模拟的环境中运行,并且在通用测试平台的控制下进行各种测试,从而能将成熟的软件测试方法应用于嵌入式系统软件中,有效地提高嵌入式系统软件的可靠性和开发效率、缩短产品的开发周期。
本文讨论的通用测试平台仅针对基于32位ARMCPU内核的各种嵌入式系统。
通用测试平台必须高度可配置,可由用户根据实际的嵌入式系统,配置不同的模拟目标,并且真实反映实际的硬件外设资源;更为重要的是,通用测试平台必须提供完善的平台与被测软件交互的接口,通过这些接口,用户能方便地实现和使用各种软件测试方法;而且具备可靠的记录手段,将测试结果保存下来进行后续分析;同时还应该具有良好的结构和人机界面,方便扩充模拟目标和二次开发。
本文将围绕上述要求阐述通用嵌入式系统软件测试平台的整体框架设计,并介绍与之配合使用的工具链。
2通用嵌入式系统软件测试模拟环境2.1嵌入式系统软件模拟测试方法本文介绍的通用测试平台运用了全数字仿真技术,在PC机上模拟整个嵌入式硬件系统,不但包括核心CPU,而且将外围各种器件,如串口、定时器、实时时钟、通用I/O等,进行数字化仿真。
嵌入式软件无需,或者稍加改动就能在这个仿真环境下运行。
在这个封闭的黑盒子中,嵌入式软件如同在真正硬件上被执行,通过仿真模型内建的测试接口导出或发送测试数据,驱动被测软件运行,进而验证软件测试结构,从而实现对嵌入式系统软件动态的封闭测试。
2.2嵌入式系统软件测试环境与功能通用测试平台为嵌入式软件测试的自动化提供了必要的支持,这些支持分别体现在测试过程的两个阶段:编译插装和测试运行。
在测试开始前,使用通用测试平台专用的工具链,将被测软件和测试用例、测试方法进行整体插装和编译。
在测试运行过程中,要求通用测试平台能够对测试脚本中的测试任务进行管理和实时的调度,组织被测系统运行所需要的输入条件,并提供人工干预界面,实现测试中人机模型之间以及与被测系统之间的数据交互,并实时地收集从被测系统返回的结果数据用于实时显示和事后的数据分析等。
通用嵌入式系统软件测试平台的设计沈永清,徐中伟SHENYong-qing,XUZhong-wei同济大学通信工程系,上海200331DepartmentofCommunicationEngineering,TongjiUniversity,Shanghai200331,ChinaSHENYong-qing,XUZhong-wei.Designofgeneralsimulationtestplatformforembeddedsystemsoftware.ComputerEngineeringandApplications,2007,43(15):83-85.Abstract:Simulationtestisavaluablewaythatcanimprovethequalityandreliabilityofsoftware;generalsimulationtestplatformisasetofsoftwaresystemrunningonpersonalcomputer,viausingmodulesofARMCPUbehaviorandperipheralhardwaresimulatorandatestingcontroller,whichsupporttestingdifferentembeddedsoftwarewithoutanychanginginsource.Thispaperfocusesonthearchitectureofageneralsimulationtestplatformandthedesignofsimulator,testingmanagerandspecialtoolsforthisplatform,thenputsforwardanimplementationmoduleforthetestingmanagerindetail.Keywords:embeddedsoftware;softwaretest;embeddedsystemsimulation;testingenvironment;testmanagement摘要:仿真测试是嵌入式软件系统测试阶段的一种有效测试方法,探讨了通过在PC机上仿真模拟ARM嵌入式系统,对嵌入式系统软件进行仿真测试的通用测试平台的设计。
该平台可以在不做大幅度修改的情况下对不同的嵌入式系统软件进行各种测试。
重点介绍了仿真模拟器、测试管理器和测试平台专用工具链的设计,提出了一种测试管理器的实现模型,并进行了详细的描述。
关键词:嵌入式软件;软件测试;嵌入式系统仿真;测试环境;测试管理文章编号:1002-8331(2007)15-0083-03文献标识码:A中图分类号:TP311作者简介:沈永清(1978-),男,在读硕士研究生,主要研究方向:铁路软件安全测试,计算机通信网;徐中伟(1964-),男,教授,博士生导师,主要研究方向:铁路软件安全测试与安全评估,测试自动化。
ComputerEngineeringandApplications计算机工程与应用832007,43(15)ComputerEngineeringandApplications计算机工程与应用为了满足模拟测试环境的各种功能需求,通用测试平台提供的功能包括核心的CPU模拟、各种外设硬件的模拟、用户接口、测试用例和结果记录管理,见图1。
整体系统框架采用分层设计思想划分为三层:测试服务层,仿真核心层,作业层。
整个测试平台和被测软件可以运行在同一台计算机中,而且对测试环境和条件要求不高,可快速得到测试结果,非常适合需要经常进行嵌入式系统软件测试的应用。
仿真核心层是模拟硬件运行的软件实现,通过它可以在PC上运行其它架构的程序。
CPU模拟器,外设模拟器都是该层的子模块。
仿真核心层可以比喻作测试平台的心脏。
作业层是被测程序与仿真核心交互的桥梁,通过作业层提供的服务,仿真核心能连续自动地执行被测程序,它实现了两个核心功能———对程序的装载和连接。
测试服务层是测试平台为了满足用户的测试要求而提供的一系列系统服务的集合,其中包括命令行用户界面、数据的实时收集、数据的显示以及测试方法与测试用例的管理等测试服务,这些服务都是设计测试管理器需要实现的功能。
因此,测试服务层可以比喻作测试平台的大脑。
以下着重介绍通用测试平台的体系结构和模块设计。
3通用嵌入式系统软件测试平台的体系结构鉴于上面的分析,可以采用分层系统的体系结构设计通用测试平台。
层次体系结构有助于实现对软件功能的分解,把软件的功能分解为子任务组,其中把每个子任务组置于一个特定的抽象层次上。
下面对两个核心部件:仿真模拟器和测试管理器的体系结构作进一步讨论。
3.1仿真模拟器的设计仿真模拟器之所以是测试平台的核心,是因为它实现了由软件模拟的包括CPU和外设的最小硬件系统,被测软件在仿真模拟器制造出的虚拟环境运行中。
这是进行各种测试的基础。
仿真模拟器从总体上可划分为3个层次:(1)符号处理模块,主要处理执行文件的头信息,解释执行文件中内嵌的调试器的调试信息,对符号表的管理,对源代码表达式的解析,定位源代码中的语句位置和机器码的位置关系等。
(2)目标控制模块,主要完成执行控制(如中断程序的执行,设置中断条件等),程序栈结构分析,对具体目标硬件的控制(如本地调试、远程调试和模拟调试的控制)。
这一部分实现了对运行于测试平台的软件的控制,为测试的开展提供了强有力的支持。
(3)目标模拟模块,这一部分是仿真模拟器的核心。
它的功能是模拟嵌入式计算机系统中的主要硬件(包括CPU、内存、通用I/O和各种硬件外设等)的执行,对执行文件的机器指令进行解释,并模拟执行每一条机器指令,产生相应的硬件响应等。
其中,目标模拟模块是整个仿真模拟器中最重要的一个部分。
它包括3个子模块:处理器模拟宏模块、内存模拟模块和I/O模拟宏模块。
图2展示了目标模拟模块模拟的硬件逻辑结构图。
通用测试平台的目标模拟模块从功能上可分为如下几大模块:(1)配置选项解析和初始化模块:在模拟硬件开始前,控制各种模拟硬件的初始化、解析配置文件的选项行、根据各种硬件的选项,完成各种配置。
(2)处理器模拟宏模块:主要完成与处理器体系结构相关的模拟,可细分为CPU指令模拟执行模块、MMU/Cache模拟模块、CoPocessor(协处理器)模拟模块。
(3)CPU指令模拟执行模块:主要任务是完成指令度去,指令译码,指令执行的工作;如果CPU状态发生变化,调整指令和各种寄存器的值;在指令执行前,调用I/O模拟模块提供的接口驱动模拟各种外设的行为。
(4)MMU/Cache模拟模块:本模块负责模拟体系结构相关的各种内存管理单元和缓存的行为。
其中主要分为与具体CPU型号无关的MMU/Cache子模块,和与具体CPU型号相关的子模块两部分。
(5)CoPocessor模拟模块:其主要任务是完成各种协处理器的初始化;执行各种协处理器的指令。
实际上CoPocessor模块主要为MMU/Cache模块提供支持。
(6)I/O模拟宏模块:本模块包含各种逻辑性为各异的外设模拟,主要包括系统I/O,网络芯片等模拟模块。
(7)系统I/O模拟模块:其主要任务包括根据配置文件对I/O和外设初始化;完成各种外部I/O设备的模拟(如时钟计数器,产生中断等);进行各种特定CPU和外设的I/O寄存器的读写。
(8)网络芯片模拟模块:主要是完成8019AS网络芯片的模拟工作,包括模拟8019AS的控制逻辑、虚拟网络输入输出接口处理。
(9)MEMORY模拟模块:它的主要任务包括根据配置文件进行内存初始化,并加载二进制文件,进行RAM/ROM读写的模拟。
由图2看出,仿真核心层通过一种类似层次结构的模型管理和控制各个子功能模块并结成整体,虚拟出一个相对完整的嵌入式系统硬件架构,从而构建了通用测试平台的基础部分。
3.2测试管理器的设计测试管理器在仿真核心层的支持下,全面接管与测试相关的工作,其位置在于测试服务层,也是该层最主要的组成部分。
对于测试管理器,有如下几个要求:第一,必须保证测试过程中842007,43(15)被测软件的行为不受测试过程的影响,即稳健性要求;第二,尽可能提供有效且比较丰富的测试过程,可同时支持面向功能和面向程序内部逻辑两种不同的测试方法,并且允许进行指令级别的测试,即全面性要求;第三,让测试人员能方便地管理,使用和操作这些测试方法,而且能及时记录和保存测试结果,即便捷性要求;第四,开发人员不必为进行测试付出额外的工作,全部测试过程对于被测软件和开发者来说都应该是透明的,即独立性要求;第五,各种测试方法是以灵活的方式组织的,可以修改原有的测试方法,并且能方便地添加新的测试方法和新的测试算法,即可扩展性要求。