常用嵌入式软件白盒测试工具介绍

本文详细介绍了多个常用的嵌入式软件白盒测试工具,包括它们的生产厂商、功能特色、价格信息及获取途径,为嵌入式开发和测试人员提供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  
常用嵌入式软件白盒测试工具介绍
Author: Tony      来源:http://blog.youkuaiyun.com/vincetest
一、        VcTester
  •   生产厂商
  • 简介
  • 功能特色
VcTester共享版本的功能特色如下:
1.      脚本化测试驱动
VcTester使用 CSE脚本语言编写测试用例,CSE语言风格与C语言接近,简单易用,很容易上手。编写CSE脚本可读取全局变量、给变量赋值、调用函数等。
2.      脚本桩 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
被测目标机运行后, VcTester允许用户定义一个脚本函数,给被测C函数打桩,使运行中脚本函数替代C函数。脚本桩函数中可编写特定的测试处理,或返回特定数值用于测试。
3.      在线测试
运行目标测试程序后,在线设计用例、运行用例,并根据测试结果改进或添加用例,持续在线的进行测试。 VcTester这一特性使单元测试过程更加简捷明了,所见即所得,操作过程更富人性化。
4.      即时调测
VcTester配合 VC中的调试程序,可支持目标代码单步调试,用户可借助VC设置断点,进行单步跟踪,同时,在测试用例设计过程中,测试驱动与脚本桩都可以选中部分或全部来执行。被测代码调试与测试脚本调试都是在线进行,可以即时的交叉着调试。
5.      测试工程管理
支持直观的树状测试用例管理,支持单用例、单测试集,或多用例、多测试集批量执行,支持命令行启动全工程自动测试。
VcTester共享版定位于个体测试应用,商用版则定位于企业级应用,为适应团队运作及产品质量保证活动而增加相应功能,商用版具有如下特色:
1.      支持符合第4代白盒测试方法的测试评估体系
商用版提供 LICC与LDCC两种代码覆盖率统计,对测试设计程度也提供评估,评估结果可以在线、直观的方式显示,还支持测试报告自动生成。共享版本没有这些功能。
2.      调测一体,支持将调试操作自动转化成测试脚本
商用版的检视器支持调试操作转脚本,该功能可以促进大家养成自发测试的习惯,摆脱不自觉的被动测试状态,检视器还支持更强大的脚本桩功能,如条件桩、 PreCheck与PostCheck定义等。共享版没有这些功能。
3.      提供集成化的工作平台,可大幅提高开发效率
商用版的源码与测试用例在同一个 IDE平台编辑、维护,以相同形式同时支持测试脚本与源码的一体化调试,集成界面支持设置断点,进行单步跟踪。共享版本没有单步调试功能。
VcTester提供出色的 IDE编辑器,编辑功能强大,支持提示输入、全文查找与替换、函数调用关系分析,定义与引用跳转、在线查看各行调用覆盖情况。共享版本没有函数调用关系分析与在线查看调用覆盖的功能。
共享版本与商用版本都支持外部工具集成,如工程构建集成、与版本机自动 CheckIn与CheckOut集成。
4.      支持完善的测试消息构造与解析
商用版提供用户数据 UDT编辑器,可快速构造测试数据。共享版无此功能。商用版还提供通用消息编辑器、消息解析器,可以自定义消息模板。该功能特别适合通信协议测试,其消息解析器与编辑器还可以免费集成到用户产品或相关IT工具上,借助本功能,用户可以将VcTester工具延伸到协议测试、功能测试等领域。共享版本不提供这些功能。
5.      支持测试设计重构
当被测代码有大幅调整,经过一次或多次重构时,商用版支持快捷的测试设计重构,该功能可确保持续集成的操作过程不因代码重构而断链。共享版没有这个功能。
商用版较完整的支持 “第4代白盒测试方法”所要求的功能,共享版则有不少欠缺。另外,商用版的测试脚本完全兼容共享版的脚本,用户可以拿共享版评估或试用,在购得商用版本使用权后,所有用例都能无缝的升级到商用版。
  • 价格
共享版免费 ,商用版本价格参见其官方网站http://www.eztester.com
  • 相关网站
  • 获取方式
网上下载地址: http://www.eztester.com
二、        CodeTest
  • 生产厂商
METROWERKS【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  • 简介
CODETEST 全球第一台专为嵌入式系统软件测试而设计的工具套件,CODETEST为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及存储体的动态分配等提供了一个实时在线的高效率解决方案。CODETEST还是一个可共享的网络工具,它将给整个开发和测试团队带来高品质的测试手段。
  • 功能特色
基本的CODETEST 系统包括以下四个模块:
1.       性能分析
CODETEST 能够同时对多达32000个函数进行非采样性测试,精确计算出每个函数或任务(基于RTOS下)的执行时间或间隔,并能够列出其最大和最小的执行时间。对于每两个函数或任务之间的调用也能够计数,从而确认出其中失败的调用。CODETEST的性能分析功能也能够为嵌入式应用程序的优化提供依据,使软件工程师可以有针对性地优化某些关键性地函数或模块,以及改善整个软件地总体性能。 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
2.       测试覆盖分析
CODETEST 提供程序总体概况,函数级代码以及源级覆盖趋势等多种模式来观测软件地覆盖情况。由于CODETEST是一种完全地交互式工具,测试者可以在对系统进行操作地同时追踪覆盖情况。
CODETEST 覆盖率信息包括程序实际执行的所有内容,而不是采样的结果,它以不同颜色区分运行和未运行的代码,CODETEST可以跟踪超过一百万个分支点,特别适用于测试大型嵌入式软件。
CODETEST 还能够生成一个融合多种测试结果地综合性报告,以使测试者看到整套测试地总体效果。
3.       动态存储器分配分析
在CODETEST诞生之前,动态地存储器分配情况是难以追踪观测的。CODETEST的分析能够显示有多少字节的存储器被分配给了程序的哪一个函数。这样就不难发现那些函数占用了较多的存储空间,那些函数没有释放相应的存储空间。测试者甚至还可以观察到存储体分配情况随着程序运行动态的增加和减少,即CODETEST可以统计出所有的内存的分配情况。随着程序的运行,CODETEST能够指出存储体分配的错误,测试者可以同时看到其对应的源程序内容。
4.       执行追踪分析(TRACE)
CODETEST 可以按源程序,控制流以及高级模式来追踪嵌入式软件。最大追踪深度可达150万条源级程序,其中高级追踪模式显示的是RTOS的事件和函数的进入退出,给测试者一个程序流程的大框图;控制流追踪增加了可执行函数中每一条分支语句的显示;源级追踪则又增加了对被执行的全部语句的显示。在以上三种模式下,均会显示详细的内存分配情况,包括在那个代码文件的那一行,那一个函数调用了内存的分配或释放函数,被分配的内存的大小和指针,被释放的内存的指针,出现的内存错误。
  • 价格
不详
  •   相关网站
不详
  • 获取方式
国内深圳市华唐科技有限公司代理
三、        RTRT(Rational Test RealTime)
  • 生产厂商
IBM Rational
  • 简介
IBM Rational Test RealTime帮助开发人员创建测试脚本、执行测试用例和生成测试报告,并提供对被测代码进行静态分析和运行时分析功能。利用该工具,开发人员可以大大提高测试的效率。
  • 功能特色
1.      代码静态分析,功能测试和运行时分析相集成。 
2.      代码编辑、测试和调试相集成。 
3.      Test RealTime 通过分析源代码,自动生成测试驱动(Test Driver)和桩(Test Stub)模版。开发人员只需要在该测试脚本的基础上指定测试输入数据、期望输出数据以及打桩函数的逻辑。 
4.      测试执行后自动生成测试报告和各种运行时报告。测试报告展示通过或失败的测试用例,而运行时分析报告包括代码覆盖分析报告,内存分析报告、性能分析报告和执行追踪报告。
5.      通过Target Deployment Port技术同时支持开发机和目标机的测试。
  • 价格
不详
  • 相关网站
  • 获取方式
不详
四、        CppUnit
  • 生产厂商
开源测试工具 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  • 简介
CppUnit是一个用C++语言实现的单元测试框架,属于XUnit系列中的一员。它的第一个版本是Michael Feathers由JUnit移植而来,目前的版本为1.10.2,源代码可通过网址 http://sourceforge.net/projects/cppunit下载得到。该库目前受到GNU LGPL(Lesser General Public License)的保护。
  • 功能特色
1.      提供测试用例设计框架
2.      提供测试时常用的公共函数比如setUp ()、tearDown()、CPPUNIT_ASSERT等
3.      用被测代码C++/C编写测试代码
4.      将测试报告写入Log文件
  • 价格
开源工具免费获取
  • 相关网站
  • 获取方式
五、        Cantata++
  • 生产厂商
IPL 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  •   简介
Cantata/Cantata++是面向源代码的测试分析工具,贯穿于整个软件开发过程,包括代码评审、单元测试、集成测试、系统测试、及软件维护等阶段。
  • 功能特色
1.      静态分析
允许用户加强代码的标准,评估软件的复杂度和可维护性。
2.      动态测试
验证软件需求,为测试的说明、执行、归档、重用和重复动态测试提供一个形式上的框架。通过测试产生一个完整的诊断和质量确认的报告。提供大量的覆盖率分析:语句覆盖、条件分支覆盖、数据值覆盖、 MC/DC和用户自定义标准。
3.      软件执行
测试程序是否满足需求
4.      数据检查
检查用户定义的类型
5.      测试脚本
根据用户定义的 Test Case Definition自动生成
6.      自动打桩
使用桩模块模拟被测模块的函数调用。用户可以传递参数给桩模块,并设置桩模块的返回参数
7.      时间工具
检测软件的执行时间
8.      Cantata 支持C,Cantata++支持C++
  • 价格
不详 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  •   相关网站
不详
  • 获取方式
      不详
六、        C++Test
  • 生产厂商
Parasoft
  • 简介
C++Test是一个功能强大的自动化 C/C++单元级测试工具,可以自动测试任何C/C++函数、类,自动生成测试用例、测试驱动函数或桩函数,在自动化的环境下极其容易快速的将单元级的测试覆盖率达到100%。
  • 功能特色
1.      即时测试类/函数
2.      支持极端编程模式下的代码测试
3.      自动建立类/函数的测试驱动程序和桩调用
4.      自动建立和执行类/函数的测试用例
5.      提供快速加入和执行说明和功能性测试的框架
6.      执行自动回归测试
7.      执行部件测试(COM)
  • 价格
不详 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  • 相关网站
  • 获取方式
不详
七、        PureCoverage
  • 生产厂商
Rational
  • 简介
PureCoverage是一个面向 VC, VB或者Java开发的测试覆盖程度检测
工具, 它可以自动检测你的测试完整性和那些无法达到的部分. 作为一个质
量控制工程, 可以使用PureCoverage在每一个测试阶段生产详尽的测试
覆盖程度报告.
  • 功能特色
1.      即时代码测试百分比显示
2.      未测试, 测试不完整的函数, 过程或者方法的状态表示
3.      在源代码中定位未测试的特定代码行
4.      为执行效率最大化定制数据采集
5.      为所需要的焦点细节定制显示方式
6.      从一个程序的多个执行合成数据覆盖度
7.      和其他团队成员共享覆盖数据或者产生报表
8.      在开发环境当中使用PureCoverage集成实施检测代码覆盖程度(Visual Stadio, VB5+)
  • 价格
       不详
  • 相关网站
       不详 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  •   获取方式
不详
八、        VectorCast
  • 生产厂商
Vector Software
  • 简介
VectorCAST产品扫描你的 Ada, C/C++和嵌入式C++ (EC++)源代码,自动生成测试代码来为主机和嵌入式环境构造可执行的测试架构。使用VectorCAST测试系统,你的部件仿真模型可以经常保持更新。只需要几分钟的时间,它就可以建造起一个独立单个软件部件所需的测试环境。它还提供构造和运行测试范例和生成提供关于实际结果与预测结果之间的统计信息所需的报告的部件.
  • 功能特色
VectorCAST 由下面 6个集成的部件组成:
1.      环境生成器
2.      测试范例生成器
3.      运行控制器
4.      报告生成器
5.      动态分析-代码覆盖率
6.      静态分析-代码完整性和基础路径
  • 价格
不详
  • 相关网站
不详
  • 获取方式
不详 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
九、        Logiscope
  • 生产厂商
Telelogic
  •   简介
Telelogic Logiscope™ 是一种软件质量保证 (QA) 工具,它可以通过自动进行代码检查和对容易出错的模块的鉴定与检测来帮助扩大测试范围,从而达到保证质量和完成软件测试的目的。可自定义的软件测试功能可帮助您在软件开发过程中及早发现缺陷,这样您就可以做到按时交付,将费用控制在预算内,同时又可以提高软件质量。 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  • 功能特色
1.      软件质量分析
2.      代码规范性检测
3.      测试覆盖率统计
4.      Logiscope 可以对多种语言实现的代码进行分析,比如C、C++、Java、Ada等等.
  • 价格
不详 【文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
  • 相关网站
  • 获取方式
北京奥索汉泰科技有限公司代理
欢迎转载此文,转载时请注明文章来源:文斯测试技术研究中心 http://blog.youkuaiyun.com/vincetest
<think>好的,我需要回答用户关于嵌入式环境白盒测试框架的问题。首先,用户可能想了解有哪些常用的框架,以及它们的特点和应用场景。我需要确保回答结构清晰,分点说明,同时符合系统级指令中的格式要求。 首先,我应该回忆一下常见的嵌入式白盒测试工具。比如Cantata、VectorCAST、Parasoft C/C++test这些商业工具,还有开源的Unity、CppUTest、Google Test等。需要区分商业和开源工具,并说明各自的特点。 接下来,需要注意用户提到的是“嵌入式环境”,所以需要强调这些框架在嵌入式系统中的适用性,比如支持交叉编译、低资源占用、实时性等。可能还需要提到一些特定于嵌入式系统的测试挑战,如硬件依赖、内存限制等。 另外,要确保使用正确的LaTeX格式。比如数学公式或变量时用$...$,但在这个问题中可能涉及较少,不过如果有版本号或技术术语中的数字,可能需要用,比如支持C99/$C99$标准?不过可能不需要太多数学公式,但要保持结构清晰。 然后,需要组织内容,可能分为商业工具和开源工具两大类,每个类别下列举几个框架,并简要说明其特点、适用场景、优缺点。比如: 1. 商业工具 - Cantata: 针对C/C++,支持静态分析和动态测试,集成开发环境,适合高安全标准项目。 - VectorCAST: 自动化测试,支持多种嵌入式平台,持续集成。 - Parasoft C/C++test: 代码分析、单元测试,支持MISRA等标准。 2. 开源工具 - Unity + Ceedling: 轻量级,适合资源受限环境,与CMock集成。 - CppUTest: C/C++,简洁,适合小型嵌入式系统。 - Google Test (GTest): 需要一定适配,适合较复杂系统。 还要考虑嵌入式测试的特殊需求,比如交叉编译、模拟硬件、实时性测试,可能补充一些测试方法或框架如何应对这些挑战。 需要验证信息的准确性,比如VectorCAST是否确实支持嵌入式平台,Cantata是否支持静态分析等。如果有不确定的地方,可能需要查阅资料确认,但根据现有知识回答。 最后,总结选择框架时的考虑因素,比如项目需求、资源限制、合规要求等,帮助用户根据实际情况做出选择。 确保语言口语化,避免使用过于专业的术语而不解释,但因为是技术框架介绍,适当术语是必要的,需保持平衡。同时,按照系统指令使用中文,不使用Markdown,分点用数字和项目符号,正确应用LaTeX格式(虽然这个问题可能较少用到数学公式,但如果有变量或代码部分,可能需要用等宽或引用,但系统指令中没有提到代码块,所以可能用文字描述即可)。</think>嵌入式环境的白盒测试框架需要针对资源受限、硬件依赖性强等特点设计,通常分为**商业工具**和**开源工具**两大类。以下是常见的框架及其特点: --- ### **一、商业工具** 1. **Cantata** - **特点**:专为C/C++嵌入式系统设计,支持静态代码分析、动态单元测试和覆盖率分析,集成IDE插件(如Eclipse)。 - **适用场景**:航空、汽车等高安全标准领域(如$DO-178C$、$IEC 61508$合规)。 - **优势**:自动化生成测试桩(Stub),支持复杂硬件模拟。 2. **VectorCAST** - **特点**:自动化测试用例生成,支持交叉编译(如ARM、PowerPC等),兼容持续集成(CI/CD)。 - **适用场景**:汽车电子(AUTOSAR)、工业控制系统。 - **优势**:提供代码覆盖率报告(语句/分支/MCDC),支持多平台联调。 3. **Parasoft C/C++test** - **特点**:结合静态分析(如MISRA C/C++规则检查)与动态测试,支持自定义测试脚本。 - **适用场景**:医疗设备、通信嵌入式系统。 - **优势**:深度集成硬件仿真器(如QEMU)。 --- ### **二、开源工具** 1. **Unity + Ceedling** - **特点**:轻量级测试框架(纯C语言),与CMock配合可模拟依赖函数。 - **适用场景**:资源受限的MCU开发(如STM32、AVR)。 - **示例代码**: ```c TEST_ASSERT_EQUAL_INT(42, calculate_result()); // Unity断言示例 ``` 2. **CppUTest** - **特点**:C/C++兼容,强调简洁性,支持内存泄漏检测。 - **适用场景**:小型嵌入式Linux或RTOS项目。 - **局限**:需手动编写测试桩,适合低复杂度模块。 3. **Google Test (GTest)** - **特点**:功能强大,支持参数化测试和死亡测试(Crash检测)。 - **适用场景**:基于Linux的嵌入式系统(如树莓派)。 - **适配要求**:需移植到目标平台,可能需修改编译链。 --- ### **三、选择建议** 1. **资源限制**:MCU内存有限时,优先选轻量级工具(如Unity)。 2. **合规需求**:医疗/汽车领域需商业工具(如VectorCAST)满足认证标准。 3. **硬件依赖**:利用QEMU或硬件在环(HIL)模拟器降低测试成本。 例如,若项目需满足$ISO 26262$标准,推荐**VectorCAST**;若为开源裸机项目,**Unity+Ceedling**更具性价比。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值