提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2015-12-08 13:42:50.000|阅读 1296 次
概述:关于Parasoft C / C ++test的嵌入式单元测试实践,本文主要介绍了单元测试的准备工作。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
既然单元测试是如此重要,那为什么不是每一个项目都做了呢?可能是因为即使是简单的测试案例也需要一定的工作量。
回想一下前文讲到的简单的例子。首先,函数的自变量不一定是简单类型。它们也可能是复杂的,所以需要初始化以便于测试。第二,被测功能不一定返回简单类型,也可能是外部变量。最后,“foo”函数可能调用另外一个“goo”。这就好比,硬件传感器/文件/数据库/网络接口/ USB端口接收GUI的用户输入,这会因为分离而不能正常运作。
要为这个特别的“foo”准备一个有用的单元测试用例需要大量的工作。要使所测试功能的所有变量初始化正确,存根/驱动器不可以调用函数(例如“goo”),也不能只能后置条件校验,等等。最后是准备一个美观的报告展示测试执行结果,还有执行过程中涉及的线/陈述或分支。这些资料需要一直保存。
你会觉得这些工作量很大,而且事实上也是。这就是有些软件项目没有进行单元测试的最主要的原因。
在嵌入式软件开发的背景下,单元测试是一个更大的挑战。一方面,它很简单,因为只使用C语言——当使用C ++时,它仅是其中一个简化的子集。另一方面,单元测试用例需要部署在目标板上,或在模拟器上。代码要和所有的测试用例、测试数据一起转移到目标板上,然后执行。最后,试验结果必须收集并传送回主机,以方便进行分析。这些准备工作增加了嵌入式软件进行单元测试的花费。本文我们不使用这样的方法,而是探讨一种更实用的方法。
让我们考虑简化的ASR (Acceleration Slip Regulation) 系统,它运行在Keil评估板MVBSTM32E上。必须强调的是,我们提出这样的系统是为了说明一个概念:ASR不是真实存在的软件。
在示例系统中,前轮有两个速度探测监视器。如果一个轮子开始旋转而另一个减慢,则系统假定车轮打滑。接着,系统启动前轮刹车,以便扭矩直接通过前轮轴降低速度。ASR系统工作的真实详情,请参考维基百科。
简化的ASR由MDK-ARM建成并通过ULINK Pro部署。它附着在一个汽车模型上运行。该汽车模型装有速度传感器板,并可以模拟滑移条件。如下图。
想了解这些系统是如何工作的,请点击视屏观看。
你们注意到视屏中,当一个车轮上升时,它就失去了抓地力并获得整个扭矩。你可以看到系统如何启动车轮的刹车,使扭矩传递到另一个轮子上。
为了准备ASR的单元测试,我们需要:
完成了这些步骤,我们就可以开始测试的具体工作了。
购买最新正版授权Parasoft赠送Macbook!""
慧都年终盛典火爆开启,一年仅一次的最强促销,破冰钜惠不容错过(12.01~12.31)!!优惠详情点击查看>>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢