CodeTEST嵌入式软件测试系统简介
- 格式:ppt
- 大小:268.00 KB
- 文档页数:1
CodeTEST(R)一、当前RTOS开发的现状: 下图来自Venture Development Corp.的一分资料,说明RTOS在研发上的花费越 来越多。
据Remi H. Gourgonjo, Philips 软件工程师的研究, 消费类电子产品中使用的代码数量每两年就翻一翻(包括日常项目例如汽车动力系 统,电视类,电信等),软件的质量对产品最终质量的影响起到决定性的作用。
来自业界的资料表明,在一个产品的时间花费上,分析占2%,设计占5%,编程调试 占20%,测试占20%,维护测试占6%,维护调试占7%,其他的维护工作占40%(资料 来源: Electronic Business; Pittiglio, Rabin, Todd, & McGrath IBM Guide Study, Ovum)。
COTS 嵌入式软件开发/RTOS 工具2000 单位:百万美圆 1500 1000 500 0 1997 1998 1999 2000 2001 2002来自INTEL的David Baker - Intel (软件设计工程师)分析表明嵌入式软件工程师 与硬件工程师相比是八比一",这个比例看来以后还会更高,现在推向市场的时间更 短,产品尽快上市的压力,要求减少了测试和集成中可用的时间。
而由于测试的不充 分,开发模式恶不合理导致各种各样的问题在市场上经常传出。
典型的是商务飞机坠 毁、反导弹防卫系统无法工作、核反应堆发生核泄露、运送卫星的火箭在空中爆炸、 导弹追踪卫星报告了错误的方位金融在线事务处理系统瘫痪、电话交换网络瘫痪、电 话系统崩溃,丢失了五千万次呼叫、电脑控制机场行李运送系统出现故障,行李延迟 交付或乱成一团、更多的电路板,更多的软件,更加复杂!!! 同时测试技术自身面临技术升级的问题,出现各种各样的困难,软件的测试不 如硬件板卡测试普遍测试工作缺乏可度量的管理手段、软件的功能性测试不够完善, 需要新的方法的补充、嵌入式系统代码量日益增多,测试难度增加;系统越复杂,大 量的重用现象,导致测试越复杂,风险越大,投入也越来越高。
嵌入式软件自动化测试系统研究摘要:在软件测试过程中,有许多重复的、非创造性的工作。
在此背景下,自动测试系统(ATS)以其节省人力、缩短测试时间、提高测试效率和提高测试稳定性等优点,在软件测试中越来越突出。
本文对嵌入式软件自动测试系统进行了深入的研究,并对促进我国自动化测试系统的发展和进步提出了建议。
关键字:软件;自动化;测试系统引言目前,嵌入式软件自动化测试系统在军用和民用领域的应用越来越广泛,其作用也越来越重要。
推动嵌入式软件自动化测试系统的发展,对推动军用和民用领域软件发展进步,具有非常重要的作用。
所以,必须要加强对嵌入式软件自动化测试系统的研究,为我国社会经济发展建设提供重要的推动力量。
1、嵌入式软件自动化测试系统简析嵌入式软件自动化测试系统的应用原理是利用测试脚本,对嵌入式软件的运行进行自动化控制,同时对数据进行收集和分析并最终形成相关测试报告,得出科学准确的测试结果。
分布式架构的嵌入式软件自动化测试平台,这种结构便于对系统进行扩展和升级。
该系统结构主要包括两部分,即测试开发管理主机和目标仿真机,两者之间的通讯方式采用的是以太网通信,而目标机与目标机之间的通信方式则采用1394B通信。
2、测试硬件系统的通用性2.1测试总线在嵌入式软件自动化测试系统中,测试总线是非常重要的组成部分,担负着至关重要的作用。
测试总线的主要功能是对测试数据进行传送,同时还能够传送控制指令,是嵌入式软件自动化测试系统中的中枢神经。
随着计算机技术的不断发展以及对各个领域的深入渗透,自动化测试领域的总线技术也取得了极大的进步。
其主要发展历程经历了通用接口总线、VXI、PXI以及基于LAN接口面向仪器的扩展等几个阶段。
通用接口总线简称为GPIB,其主要组成部分包括标准接口、母线、计算机和仪器仪表等等。
这种总线技术的优点是能够利用计算机对仪器进行有效的操作和控制,代替传统人工操作,初步实现了自动化测试。
但缺点是对装置的数量具有严格的限制,不能够过15台,而且电缆长度也不能超过20米。
CodeTEST嵌入式软件在线测试与分析工具在嵌入式系统开发中的应用CodeTEST, 嵌入式, 软件, 系统, 工具CodeTEST, 嵌入式, 软件, 系统, 工具随着嵌入式技术的发展,嵌入式应用的不断增长以及嵌入式系统复杂性不断提高,要求嵌入式软件的规模和复杂性也不断提高,嵌入式软件的质量和开发周期对产品的最终质量和上市时间起到决定性的影响,嵌入式软件的开发、分析与测试成为了研究的热点。
针对这一变化,本文提出了一种为嵌入式软件的开发、分析与测试特别设计的一种测试方法。
嵌入式软件分析与测试的重要性随着计算机硬件技术的进步和元件质量逐步提高,元件的集成量也大大增加,从而使嵌入式设备的硬件性能得到了极大的提高;与此同时,通过采用成熟的商用操作系统,使系统运行在一个高性能的、可靠的软件平台上,为实现各种大型的复杂的应用打下了良好的基础。
面对系统复杂性的增加,自然需要功能强大、性能稳定的应用软件与之相适应。
所以,在嵌入系统开发中软件的代码量也越来越大,电子类产品的代码量以每两年就翻一翻的速度增长。
同时,系统又要求应用也要精简高效、稳定可靠,使软件的开发在整个系统开发中所占的时间也越来越长,软件的质量对产品的最终质量起到了决定性的作用。
但是事实上由于软件的开发缺乏科学的管理手段,开发的软件得不到很好的测试与分析,所编写的程序没有得到有效的测试就交付给用户使用。
那些没有运行过的代码带着潜在的危险交付到客户手中,经常会给用户带来巨大的经济损失、为产品供应商带来信誉上的损失,在一些特殊的领域甚至会危及人的生命安全。
综上所述,随着嵌入式系统的发展,我们迫切需要一种工具能够在软件开发的单板阶段、集成阶段、系统阶段等各阶段对嵌入式系统的软件进行实时在线的测试与分析,以保证系统的性能和可靠性。
市面上流行的测试工具大致分为纯软件的测试工具和纯硬件的测试工具(如逻辑分析仪和仿真器等),下面我们从原理上分析使用传统的测试工具对嵌入式软件进行分析和测试的优缺点。
嵌入式软件测试基础知识测试是传统软件开发的最后一步。
整个软件开发过程,需要收集要求、进行高层次的设计、详细设计、创建代码、进行部分单元测试,然后集成,最后才开始最终测试。
最佳的开发实践应包含代码检查这个步骤。
然而代码检查一般只能找出70%的系统错误,因此完美的测试环节绝对必不可少。
测试就像个复式记帐系统,可以确保将缺陷扼杀在最终推出的产品之前。
在所有其它的工程实践中,测试都被视为基本环节。
比如,在美国,每一座联邦政府出资修建的桥都必须经过大量的风洞测试。
而在软件领域,测试并没有很受重视。
尽管测试是所有工程实践准则的关键部分,但编写测试程序却感觉是在浪费时间。
好在嵌入式系统设计界内的许多领域已经将测试作为其工作的核心部分,他们认识到将这个关键步骤放在项目末期极不明智,因而主张同步地编写测试程序和应用程序。
嵌入式系统软件测试在诸多方面都与应用软件测试一样。
不过,应用测试与嵌入式系统测试之间还是存在一些重要差异。
嵌入式开发人员一般会用到基于硬件的测试工具,而这类工具通常不会用于应用开发过程中。
此外,嵌入式系统一般都有些独一无二的特性,这些特性应该在测试计划中得以体现。
本文将介绍测试和测试案例开发的基础知识,并指出整个嵌入式系统测试工作的特有细节。
何时测试以及如何测试从图1可以看出,在可行的条件下,测试应尽早展开。
一般来讲,最早的测试是由最初的开发人员进行的模块或单元测试。
遗憾的是,开发人员大多对如何建构一整套测试例程以进行测试所知不足。
由于精心设计的测试例程通常直到集成测试时才能使用,因此许多在单元测试过程中就能找出的缺陷直到集成测试时才会被发现。
比如,硅谷的一家大型网络设备厂商为找出其软件集成问题的关键原因,进行了一项研究。
这家厂商发现,在项目集成阶段找出的缺陷中,有70%是由在集成之前从没被执行过的程序所产生的。
2012-3-16 11:05:05 上传下载附件 (9.94 KB)图1:改正问题的成本。
CodeTest1.CodeTest 概述CodeTest 是嵌入式系统测试工具,同时也能做嵌入式部分模块测试。
要求:目标板和操作系统能正确运行2.CodeTest 的4 大功能(1)性能分析:CodeTEST 能同时对128000 个函数和1000 个任务同时进行性能分析,可以精确的得出每个函数或任务执行的最大时间、最小时间和平均时间,精确度达到50ns;能够精确的显示各函数或任务之间的调用情况,帮助你发现系统瓶颈、优化系统和提升你的系统性能。
(2)测试覆盖率分析:CODETEST 提供程序总体概况,函数级代码以及源级覆盖趋势等多种模式来观测软件地覆盖情况。
由于CODETEST 是一种完全地交互式工具,测试者可以在对系统进行操作地同时追踪覆盖情况。
并可以在实时的系统环境下,进行SC、DC 和MC/DC 级别的代码覆盖率测试,帮助测试工程师掌握当前的代码测试覆盖情况,指导测试用例的编写,加速测试进程和产品风险评估过程。
(3)动态内存分配分析:在CODETEST 诞生之前,动态地存储器分配情况是难以追踪观测的。
CODETEST的分析能够显示有多少字节的存储器被分配给了程序的哪一个函数。
这样就不难发现那些函数占用了较多的存储空间,那些函数没有释放相应的存储空间。
测试者甚至还可以观察到存储体分配情况随着程序运行动态的增加和减少,即CODETEST 可以统计出所有的内存的分配情况。
随着程序的运行,CODETEST 能够指出20 多种内存分配的错误。
例如:CodeTEST 可以捕捉“释放空指针(freeing a null pointer)”一样常见的程序错误,报告发生错误的函数和代码行帮,助你尽早发现动态内纯泄漏,而无需到系统崩溃时。
(4)执行追踪分析(TRACE):CODETEST 可以按源程序,控制流以及高级模式来追踪嵌入式软件。
提供400K 的追踪缓冲空间,最大追踪深度可达150 万条源级程序,其中高级追踪模式显示的是RTOS 的事件和函数的进入退出,给测试者一个程序流程的大框图;控制流追踪增加了可执行函数中每一条分支语句的显示;源级追踪则又增加了对被执行的全部语句的显示。
关于嵌入式软件系统测试策略和方案设计详解软硬件结合的嵌入式系统正越来越多地应用到我们常见的仪器设备中,嵌入式领域目标系统的应用系统也日趋复杂,开发技术日新月异。
同时,随着硬件技术发展的日趋稳定,而软件故障却日益突显,由此软件的重要性已逐渐引起人们的重视,越来越多的研究人员认识到嵌入式系统,优化其测试技术已势在必行,研究出合适的嵌入式软件系统测试方法,正是本课题的意义所在。
嵌入式系统介绍及软件特点嵌入式系统简介嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,是专为应用系统量身打造、是对功能、可靠性、成本、体积、功耗有严格要求的专用的计算机系统。
嵌入式系统一般指非PC类标配系统,它也包括硬件和软件两部分。
硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。
软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为,而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式系统软件特点分析嵌入式系统开发有其自身的特点。
一般先进行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。
硬件平台测试通过后,应用软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。
嵌入式系统的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。
一般来说,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界面是不清晰的,根据需要甚至混编在一起。
这主要是由于嵌入式系统中软件对硬件的依赖性造成的。
基于嵌入式软件对硬件的依赖性,其要求软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性,而底层程序和应用程序界限的不清晰又增加了测试的难度。
测试时只有确认嵌入式系统平台及底层程序是正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。
一、嵌入式系统与嵌入式操作系统1、嵌入式系统嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的;适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。
嵌人式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌人式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结台在一起,它的升级换代也是和具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性;一般都固化在只读存储器中或间存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。
2、嵌入式操作系统嵌入式操作系统EOS(Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。
EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制。
协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
目前,已推出一些应用比较成功的EOS产品系列。
随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。
嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。
EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:(1)可装卸性。
开放性、可伸缩性的体系结构。
(2)强实时性。
EOS实时性一般较强,可用于各种设备控制当中。
(3)统一的接口。
提供各种设备驱动接日。
(4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。
(5)提供强大的网络功能,支持TCP门P协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。